eAuditor V9 AI

Bezpieczeństwo systemu

Sprawdź,

jak wiele zabezpieczeń wpływających na bezpieczeństwo użytkowania posiada system eAuditor V9 AI


Testy podatności

Mając na uwadze bardzo szerokie zastosowanie systemu eAuditor we wszystkich sektorach gospodarki oraz możliwy duży wpływ działania systemu na infrastrukturę IT przeprowadzono testy bezpieczeństwa systemu. Testy będą w przyszłości powtarzane i dotyczą wszystkich linii produktowych BTC.

Bezpieczeństwo w systemach do zarządzania infrastrukturą IT jest kluczowym elementem z uwagi na możliwości ingerencji tych systemów w infrastrukturę IT

Zakres testów bezpieczeństwa

Zakres testów obejmował weryfikację bezpieczeństwa systemu eAuditor V9 AI:

  • Modelowanie zagrożeń,
  • Testy penetracyjne aplikacji web oraz REST API,
  • Testy bezpieczeństwa aplikacji typu “Thick client” (agenta).

Komponenty poddane testom:

  • Aplikacja web “eAuditor”,
  • Agent,
  • REST API wykorzystywane przez agentów.

W ramach testów przeprowadzono łącznie 126 testów podatności. W przypadku wystąpienia podatności zostały one przeanalizowane i usunięte.

Modelowanie zagrożeń

Modelowanie zagrożeń to proces, w którym zostały zidentyfikowane potencjalne zagrożenia, sklasyfikowane oraz nadano im priorytety.

Chcesz dowiedzieć się więcej o bezpieczeństwie IT?

Sprawdź naszą stronę!

Testy penetracyjne aplikacji web oraz REST API

Testy penetracyjne są podstawowym procesem oceny bezpieczeństwa, który pozwala na ocenę technicznego poziomu bezpieczeństwa sieci oraz usług, jako całości. Oprócz aspektu technicznego bezpieczeństwa poprawnie wykonane testy penetracyjne mogą również zobrazować skuteczność działania procesów w obrębie organizacji – np. odpowiedzieć na pytanie, czy wdrożony proces aktualizacji systemów działa poprawnie i jest skuteczny oraz zobrazować skuteczność reagowania organizacji na incydenty informatyczne. Testy penetracyjne mają na celu ocenę środowiska informatycznego pod kątem znanych, a także nieznanych („0day”) podatności, które narażają bezpieczeństwo przetwarzanych przez organizację informacji.

W procesie testowania aplikacji webowych wykorzystano standard OWASP ASVS (Application Security Verification Standard).

Standard OWASP ASVS (Application Security Verification Standard) definiuje najlepsze praktyki w zakresie testowania aplikacji i mechanizmów ochronnych aplikacji typu web. Zastosowanie standardu OWASP ASVS na pozwoliło m.in. na weryfikację następnych typów podatności:

  • Ataki typu „injection” – np. SQL injection, XML injection, code injection, command injection,
  • Zarządzanie uwierzytelnieniem oraz autoryzacją,
  • Ataki typu Cross-Site Scripting (XSS) – Reflected, Stored, DOM-based,
  • Niebezpieczne bezpośrednie odwołania do obiektów zlokalizowanych na serwerach,
  • Błędy konfiguracyjne mające bezpośredni wpływ na bezpieczeństwo,
  • Dostępność wrażliwych danych bez uwierzytelnienia/autoryzacji,
  • Ochrona kanału transmisyjnego (konfiguracja SSL/TLS, czy też innych wykorzystywanych protokołów),
  • Możliwość obejścia autoryzacji, czy też podatność na ataki „Local/Remote File Inclusion”,
  • Cross-Site Request Forgery,
  • Podatność komponentów systemowych (np. błędy w serwerze WWW, czy też uruchomionych modułach),
  • „Open Redirection”.

Dodatkowo do testów API REST wykorzystano kontrole zebrane w ramach dokumentu OWASP REST Security Chear Sheet dostępnego pod adresem:

https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html

 

Ocena aplikacji typu „Thick client”

Testy bezpieczeństwa aplikacji typu „gruby klient” miały na celu ocenę bezpieczeństwa aplikacji pod kątem znanych, a także nieznanych („0-day”) podatności, które narażają bezpieczeństwo przetwarzanych za jej pomocą informacji.

Ocenie poddawane zostały następujące aspekty:

  • Publicznie znane podatności w oprogramowaniu oraz wykorzystywanych bibliotekach,
  • Logika biznesowa aplikacji,
  • Architektura rozwiązania,
  • Bezpieczeństwo danych przechowywanych na stacji z zainstalowanym klientem – np. klucze szyfrujące, dane uwierzytelniające, wrażliwe informacje i inne,
  • Sposób komunikacji z serwerem – w tym zapewnienie odpowiedniego uwierzytelnienia klientów oraz autoryzacji operacji,
  • Bezpieczeństwo komunikacji z serwerem – zapewnienie poufności oraz integralności przesyłanych danych,
  • Podatności przepełnień na stercie oraz stosie – “Stack Overflow”/“Heap Overflow”,
  • Podatności związanie z nieprawidłowym oszacowaniem zakresu wartości przyjmowanych zmiennych (“Integer Overflow”),
  • Nieprawidłowe przekazywanie argumentów do funkcji operujących na ciągach znaków (“Format String”),
  • Błędy wynikające z niekompatybilności typów (“Type Confusion”),
  • Bezpieczeństwo procesów/zasobów aplikacji – np. dane uwierzytelniające w pamięci procesu, uprawnienia procesu, bezpieczeństwo wykorzystywanych zasobów (pamięć współdzielona, „pipes”, czy też inne mechanizmy IPC), czy też uprawnienia do wykorzystywanych plików,
  • Podatność na ataki typu „DLL hijacking”,
  • Uprawnienia dla usług („services”) aplikacji,
  • Prawidłowe wykorzystanie kryptografii w ramach aplikacji.

Badanie kodu źródłowego

Nie prowadzono badania kodu źródłowego.

Wykorzystane narzędzia

W ramach analizy tego typu oprogramowania wykorzystano m.in. następujące narzędzia:

  • IDA Professional oraz Hex-Rays Decompiler – dezasemblacja oraz dekompilacja kodu w celu dokładnego zrozumienia funkcjonalności aplikacji, czy też przeglądu aplikacji pod kątem błędów programistycznych,
  • Burp Suite Professional – jako narzędzie do analizy ruchu HTTP/HTTPS, gdy tego typu komunikacja jest wykorzystywana przez aplikację,
  • Wireshark – w celu analizy ruchu sieciowego,
  • WinDbg – debugger na platformę Windows – kontrola aplikacji podczas testowania, a także kontrola wykorzystywanej pamięci/obiektów w trakcie szczegółowej analizy,
  • GDB – debugger na platformę Linux – kontrola aplikacji podczas testowania, a także kontrola wykorzystywanej pamięci/obiektów w trakcie szczegółowej analizy,
  • Narzędzia do kontroli dostępów do plików/obiektów systemowych – np. Process Monitor (narzędzie Windows Sysinternals).

Klasyfikacja podatności

Common Vulnerability Scoring System (CVSS)

W celu dokładnego oszacowania ryzyka jakie wykryta podatność niesie za sobą zespół pentesterów opierł się na systemie Common Vulnerability Scoring System (CVSS). Skutkuje to możliwością precyzyjnego, liczbowego odzwierciedlenia ryzyka zidentyfikowanej podatności wraz z ukazaniem wyniku w formie reprezentacji opisowej (ryzyko – niskie, średnie, wysokie, krytyczne).

Wynik bazowy składa się z następujących elementów:

  • Wektor ataku (Attack Vector/AV) – odzwierciedla kontekst, w którym możliwe jest wykorzystanie podatności:
    • Sieć (Network/N) – element podatny na ataki związany jest ze stosem sieci/podatność może być wykorzystana zdalnie,
    • Sąsiadujący (Adjacent/A) – atak musi zostać przeprowadzony z tej samej współdzielonej sieci fizycznej (np. Bluetooth/IEEE 802.11), logicznej (np. lokalnej podsieci IP) lub ograniczonej w specjalny sposób domeny administracyjnej,
    • Lokalny (Local/L) – atak możliwy do przeprowadzenia lokalnie np. przy pomocy komend wydawanych lokalnie na klawiaturze, bądź też zdalnie przy pomocy uwierzytelnionej sesji SSH,
    • Fizyczny (Physical/P) – atak wymaga od napastnika bezpośredniej (fizycznej) interakcji z urządzeniem,
  • Złożoność ataku (Attack Complexity/AC) – opisuje warunki, na które atakujący nie ma wpływu, a które są konieczne w celu wykorzystania podatności:
    • Niska (Low/L) – atakujący może spodziewać się powtarzalnego sukcesu podczas wykorzystania podatnego elementu,
    • Wysoka (High/H) – udany atak zależy od warunków, na które atakujący nie ma wpływu, np. konieczność obejścia zaawansowanych mechanizmów bezpieczeństwa przed samym wykorzystaniem podatności.
  • Wymagane przywileje (Privileges Required/PR) – ukazuje poziom uprawnień, jakie atakujący musi posiadać, aby wykorzystać podatność:
    • Brak (None/N) – atak można przeprowadzić bez uwierzytelnienia,
    • Niskie (Low/L) – w celu wykorzystania podatności wymagane są podstawowe uprawnienia, które normalnie mają wpływ tylko na ustawienia i dane konkretnego użytkownika,
    • Wysokie (High/H) – atak wymaga uprawnień, które zapewniają znaczącą (np. administracyjną) kontrolę nad wrażliwym komponentem, umożliwiając dostęp do ustawień i plików w całym komponencie.
  • Wymagana interakcja użytkownika (User Interaction/UI) – uwzględnia wymagania dotyczące interakcji człowieka (np. użytkownika aplikacji) w procesie przeprowadzania ataku:
    • Brak (None/N) – atak może być przeprowadzony bez interakcji ze strony ofiary,
    • Wymagana (Required/R) – powodzenie ataku uzależnione jest od konkretnej interakcji ofiary.
  • Zakres (Scope/S) – określa czy podatna część systemu ma wpływ na inne, wykraczające poza jego zakres bezpieczeństwa, dodatkowe elementy:
    • Bez zmian (Unchanged/U) – wykorzystywana luka może mieć wpływ tylko na zasoby zarządzane przez ten sam organ bezpieczeństwa,
    • Zmieniony (Changed/C) – wykorzystywana podatność może mieć wpływ na zasoby wykraczające poza zakres bezpieczeństwa, którym zarządza organ bezpieczeństwa w odniesieniu do elementu podatnego na dane zagrożenie.
  • Poufność (Confidentiality/C) – określa wpływ skutecznego wykorzystania podatności na poufności przetwarzanych danych:
    • Brak (None/N) – nie występuje utrata poufności w ramach podatnego elementu,
    • Niska (Low/L) – istnieje pewna utrata poufności, jednak ujawnienie informacji nie powoduje bezpośredniej, poważnej straty dla dotkniętego nią elementu,
    • Wysoka (High/H) – następuje całkowita utrata poufności, w wyniku czego wszystkie zasoby w ramach dotkniętego komponentu mogą zostać ujawnione,
  • Integralność (Integrity/I) – określa wpływ skutecznego wykorzystania podatności na integralność przetwarzanych danych:
    • Brak (None/N) – nie występuje utrata integralności systemu,
    • Niska (Low/L) – modyfikacja danych przez atakującego jest możliwa w ograniczonym zakresie,
    • Wysoka (High/H) – następuje całkowita utrata integralności systemu.

Zwiększ bezpieczeństwo - stosuj uwierzytelnianie dwuskładnikowe

Uwierzytelnianie dwuskładnikowe

Uwierzytelnianie dwuskładnikowe w systemie eAuditor umożliwia dodatkowe zabezpieczenie poświadczeń użytkownika podczas procesu logowania. Skutkuje to wprowadzeniem dodatkowej warstwy uwierzytelniającej określanej jako ePass. Dzięki temu oprócz standardowego sposobu logowania (podanie elementu dostępu, jakim jest login i hasło), które potwierdza poświadczenia użytkownika przez system dla kont lokalnych lub AD DS/LDAP dla kont domenowych, wymagana jest autoryzacja fizycznym zabezpieczeniem sprzętowym.

Jak przebiega konfiguracja uwierzytelniania za pomocą kluczy?

Konfiguracja uwierzytelniania za pomocą kluczy odbywa się w sposób domyślny i wykorzystuje protokół HTTP (niezaszyfrowane przesyłanie danych dla sieci internetowej).

Dodatkowo do uwierzytelniania dwuskładnikowego wymagane jest skonfigurowanie szyfrowanej komunikacji HTTPS.

Wsparcie techniczne

Administratorzy IT w ramach implementacji otrzymują pełne wsparcie w zakresie generowania certyfikatu oraz konfigurowania Apache Tomcat 8.5 lub nowszych.

Masz pytania dotyczące bezpieczeństwa systemu?

Odpowiemy na każde z nich!

Zwiększ bezpieczeństwo poprzez zastosowanie tokenów

Weryfikacja dwuetapowa z użyciem klucza bezpieczeństwa

System umożliwia wykorzystanie sprzętowego zabezpieczenia do dwuetapowego uwierzytelnienia i autoryzacji kont użytkowników.

Zabezpieczenie sprzętowe pozwala na dodatkowe zabezpieczenie systemu przed niepowołanym dostępem.

Jak korzystać z dwuskładnikowego uwierzytelniania

Domyślna konfiguracja systemu wykorzystuje protokół HTTP (transmisja danych nie jest szyfrowana).

W celu wykorzystania dwuskładnikowego uwierzytelnienia wymagane jest skonfigurowanie szyfrowanej komunikacji – HTTPS.

Tworzenie darmowego certyfikatu

W przypadku braku komercyjnego certyfikatu istnieje możliwość wygenerowania darmowej wersji.

Aby wygenerować darmowy certyfikat należy:

  1. Uruchomić CMD (jako administrator),
  2. Przejść do katalogu „bin” w miejscu, w którym zostało zainstalowane środowisko uruchomieniowe (JVM) np.: C:\Program Files\Java\jre1.8.0_91\bin
  3. Wykonać w CMD następujące polecenie: keytool.exe -genkey -alias tomcat -keyalg RSA -validity 3650 -keystore C:\tomcat.jks
  4. Należy wprowadzić wszystkie wymagane parametry (nazwa, hasło itd.),
  5. Po wygenerowaniu certyfikatu należy przejść do usług systemu Windows i wyłączyć usługę odpowiedzialną za apache tomcat,
  6. Po zatrzymaniu usługi należy przejść do katalogu apache tomcat > RODO > CONF
  7. Następnie należy otworzyć plik „serwer.xml”
  8. W pliku należy usunąć następujący connector:
connectionTimeout="20000"
redirectPort="8443" />
  1. Następnie należy dodać nowy connector:
clientAuth="false" 
sslProtocol="TLS" 
keystoreFile="C:\tomcat.jks" 
keystorePass="WPROWADZONEHASŁO" 
connectionTimeout="20000" 
redirectPort="8443" />
  1. Po zmianach w konfiguracji należy uruchomić usługę Apache Tomcat

Konfiguracja Apache Tomcat 8.5 – ePass

W celu wykorzystania dwuskładnikowego uwierzytelniania konieczna jest dodatkowa konfiguracja Apache Tomcat.

Konfiguracja należy zmienić w pliku server.xml (podobnie jak w punkcie wyżej)

maxThreads="300" SSLEnabled="true"
acceptCount="300"
maxPostSize="-1">

myCA2.crt jest certyfikatem służącym do podpisywania i weryfikacji certyfikatów klienta.

Certyfikat myCA2.crt należy wygenerować przy pomocy openssl następującymi poleceniami:

openssl genrsa -des3 -out myCA2.key 4096

Konfiguracja konsoli

System pozwala na określenie, którzy użytkownicy mają wykorzystywać uwierzytelnienie dwuskładnikowe. Konfiguracja odbywa się w oknie odpowiedzialnym za modyfikacje/dodawanie nowego użytkownika.

NAZWA CERT. – nazwa certyfikatu (pole CN). Wypełniamy w przypadku, gdy chcemy przypisać certyfikat, który nie był utworzony dla tego loginu.

WYMAGANY CERT. – jeśli jest zaznaczony, to na tego użytkownika można się zalogować tylko przy użyciu certyfikatu.

USB Token – Specyfikacja tokenu

Wspierane systemy operacyjne

  • 32bit and 64bit Windows XP SP3, Server2003 , Vista, Server2008, 7
  • 32bit and 64bit Linux
  • MAC OS X
  • Oprogramowanie ‘middleware’
  • Microsoft Windows MiniDriver
  • Windows middleware for Windows CSP
  • biblioteka PKCS#11 dla Windows, Linux, MAC

Standardy

  • magazyn certyfikatów X.509 v3, SSL v3, IPSec, ISO 7816 1-4 8 9 12, CCID

Funkcje kryptograficzne

  • Generowanie pary kluczy (wewnątrz klucza)
  • Podpis elektroniczny I weryfikacja podpisu (wewnątrz klucza)
  • Szyfrowanie i deszyfrowanie Danych (wewnątrz klucza)
  • Algorytmy kryptograficzne
  • RSA 512/1024/RSA 2048 bit
  • ECDSA 192/256 bit (*)
  • DES/3DES
  • AES 128/192/256 bit
  • SHA-1 / SHA-256

(*) Klucz dostępny w 2 wariantach do wyboru:

  1. API kryptograficzne: Microsoft Crypto API (CAPI), Cryptography API: Next Generation (CNG)

2) Microsoft Smart Card MiniDrive:  PKCS#11, PC/SC

Procesor

  • 16 bit smart card chip (Common Criteria EAL 5+ certified)

Pamięć

  • 64KB (EEPROM)

Trwałość pamięci

  • Przynajmniej 500,000 cykli zapis/odczyt
  • Ponad 10 lat

Podłączenie

  • USB 2.0, złącze typu A

Zużycie energii

  • Mniej niż 250mW

Temperatura pracy

  • 0 do +70 stopni

Temperatura przechowywania

  • -20 do +85 stopni

Wilgotność

  • 0% do 100% bez kondensacji

Zapoznaj się z wydarzeniami online!

Zwiększ bezpieczeństwo autoryzacji poprzez potwierdzenie e-mailem

Weryfikacja dwuetapowa z użyciem email

System pozwala na ustawienie dwuskładnikowego logowania do konsoli administracyjnej.

Kod jest generowany każdorazowo dla każdego użytkownika objętego dwuskładnikowym logowaniem. Logowanie dwuskładnikowe może zostać przypisane do wszystkich lub tylko do konkretnych użytkowników systemu.

Aby przypisać użytkownikowi obowiązek logowania dwuetapowego należy:

  • Przejść do widoku Ustawienia > Administratorzy.
  • Następnie wybrać użytkownika, któremu zostanie ustawiony tryb logowania dwuskładnikowego.
  • Kliknąć ikonę oznaczoną symbolem koła zębatego (modyfikuj).
  • Zaznaczyć opcję LOGOWANIE DWUETAPOWE Z KODEM NA MAILA.

Zatwierdzić zmiany przyciskiem OK.

Logowanie dwuskładnikowe (2FA)

Aby zmodyfikować zasady logowania dwuskładnikowego, należy:

  • Przejść do widoku ustawień administratora.
  • Kliknąć ikonę śrubki po prawej stronie na górze tabeli widoku.
  • Kliknąć Ustawienia Logowania.
  • Zaznaczyć możliwość logowania dwuskładnikowego.
  • Kliknąć Szczegóły.
  • Ustawić logowanie:
    • Ważność kodu [minuty] – jak długo po wysłaniu kod jest ważny.
    • czas między kolejnymi e-mailami [sekundy] – ile czasu musi upłynąć do tego, by można było wysłać kolejny email.
    • Temat – temat emaila z kodem.
    • Treść – treść emaila z kodem.

Należy pamiętać o ustawieniu serwera SMTP, aby system mógł wysyłać powiadomienia o kodzie.

Wykorzystaj możliwości konfiguracji podstawowej systemu w celu zwiększenia bezpieczeństwa

Bezpieczna konfiguracja systemu eAuditor

Połączenie klient – serwer (eAuditor, HV DLP)

Komunikacja odbywa się z wykorzystaniem TLS 1.3.

eSerwer i eAgent posiadają certyfikaty SSL (4096 bitowe).

Konfiguracja aplikacji

Konfiguracja aplikacji jest możliwa poprzez edycję pliku config.properties

Definiowanie adresów AD DS

Dopuszczalne adresy serwerów, które mogą być wykorzystane w imporcie z AD.

Ustawienie [] wyłączy możliwość importu z AD.

props.activedirectory.allowedservers = ["172.16.115.17"]

Definiowanie ścieżki do kopii zapasowej

Dopuszczalne ścieżki do kopii zapasowej.

Ustawienie [] wyłączy możliwość wykonywania backupu.

props.dbbackup.allowedpaths = ["c:/btc/backup-db/ehelpdesk*"]

Definiowanie ścieżki do importu danych

Ustawienie [] wyłączy możliwość importu danych z pliku.

props.imports.allowedpaths = ["c:/btc/import/*"]

Definiowanie ścieżki do zapisu raportów

Ustawienie [] wyłączy możliwość zapisu raportów.

props.reportssend.allowedpaths = ["c:/btc/reports/*"]

Definiowanie serwera do importu danych

Ustawienie [] wyłączy możliwość importu danych z pliku.

props.imports.allowedservers = ["127.0.0.1","172.16.115.251"]

Dopuszczalne serwery w nagłówku „Host”

props.headerhost.allowedservers = ["172.16.115.251:8543","dbr-hvdlpdev:8543"]

Dopuszczalne serwery w nagłówku „Origin”

Dopuszczalne serwery SMTP.

Ustawienie [] wyłączy możliwość wysyłki wiadomości email.

props.headeroriginhost.allowedservers = ["172.16.115.251:8543","dbr-hvdlpdev:8543"]
props.smtp.allowedservers = ["127.0.0.1"]

Jesteś zainteresowany systemem eAuditor?

Pobierz naszą darmową wersję demo!