Testowanie bezpieczeństwa

Z Wikipedii, wolnej encyklopedii

Testowanie bezpieczeństwa – proces mający na celu ujawnienie luk w mechanizmach bezpieczeństwa systemu informatycznego, które chronią dane i zachowują funkcjonalność zgodnie z przeznaczeniem[1]. Ze względu na logiczne ograniczenia testów bezpieczeństwa, przejście procesu testowania bezpieczeństwa nie oznacza, że nie ma żadnych usterek lub że system odpowiednio spełnia wymagania bezpieczeństwa.

Typowe wymagania dotyczące bezpieczeństwa mogą obejmować określone elementy poufności, integralności, uwierzytelniania, dostępności, autoryzacji i niezaprzeczalności[2]. Rzeczywiste testowane wymagania bezpieczeństwa zależą od wymagań bezpieczeństwa wdrożonych przez system. Testowanie bezpieczeństwa jako termin ma wiele różnych znaczeń i można je wytłumaczyć na wiele różnych sposobów. W związku z tym Taksonomia Bezpieczeństwa pomaga nam zrozumieć te różne podejścia i znaczenia, zapewniając podstawowy poziom do pracy.

Poufność[edytuj | edytuj kod]

  • Środek bezpieczeństwa, który chroni przed ujawnieniem informacji stronom innym niż zamierzony odbiorca, nie jest bynajmniej jedynym sposobem zapewnienia bezpieczeństwa.

Integralność[edytuj | edytuj kod]

Integralność informacji odnosi się do ochrony informacji przed modyfikacją przez nieupoważnione osoby

  • Środek mający na celu umożliwienie odbiorcy stwierdzenie, że informacje dostarczane przez system są poprawne.
  • Schematy integralności często wykorzystują niektóre z tych samych podstawowych technologii co schematy poufności, ale zwykle obejmują one dodawanie informacji do komunikacji, aby stworzyć podstawę algorytmicznego sprawdzenia, a nie kodowanie całej komunikacji.
  • Aby sprawdzić, czy prawidłowe informacje są przesyłane z jednej aplikacji do drugiej.

Poświadczenie[edytuj | edytuj kod]

Może to obejmować potwierdzenie tożsamości osoby, śledzenie pochodzenia artefaktu, upewnienie się, że produkt jest taki, jak podaje jego opakowanie i etykieta, lub zapewnienie, że program komputerowy jest zaufany.

Autoryzacja[edytuj | edytuj kod]

  • Proces określania, czy żądający jest uprawniony do otrzymania usługi lub wykonania operacji.
  • Kontrola dostępu jest przykładem autoryzacji.

Dostępność[edytuj | edytuj kod]

  • Zapewnienie, że usługi informacyjne i komunikacyjne będą gotowe do użycia, gdy będzie to oczekiwane.
  • Informacje muszą być dostępne dla upoważnionych osób, kiedy tego potrzebują.

Niezaprzeczalność[edytuj | edytuj kod]

  • W odniesieniu do bezpieczeństwa cyfrowego, niezaprzeczalność oznacza zapewnienie, że przesłana wiadomość została wysłana i odebrana przez strony twierdzące, że wysłały i otrzymały wiadomość. Niezaprzeczalność to sposób na zagwarantowanie, że nadawca wiadomości nie może później zaprzeczyć wysłaniu wiadomości i że odbiorca nie może zaprzeczyć, że otrzymał wiadomość.

Taksonomia[edytuj | edytuj kod]

Typowe terminy używane do dostarczania testów bezpieczeństwa:

  • Wykrywanie – celem tego etapu jest identyfikacja systemów objętych zakresem i wykorzystywanych usług. Jego celem nie jest wykrywanie luk w zabezpieczeniach, ale wykrywanie wersji może podświetlić przestarzałe wersje oprogramowania/oprogramowania sprzętowego, a tym samym wskazać potencjalne luki w zabezpieczeniach.
  • Skanowanie luk w zabezpieczeniach – po etapie wykrywania wyszukuje znane problemy z bezpieczeństwem przy użyciu zautomatyzowanych narzędzi dopasowujących warunki do znanych luk w zabezpieczeniach. Zgłoszony poziom ryzyka jest ustawiany automatycznie przez narzędzie bez ręcznej weryfikacji lub interpretacji przez dostawcę testów. Można to uzupełnić skanowaniem opartym na poświadczeniach, które ma na celu usunięcie niektórych typowych fałszywych alarmów przy użyciu dostarczonych poświadczeń do uwierzytelnienia w usłudze (takiej jak lokalne konta systemu Windows).
  • Ocena luk w zabezpieczeniach – wykorzystuje wykrywanie i skanowanie luk w zabezpieczeniach, aby zidentyfikować luki w zabezpieczeniach i umieszcza wyniki w kontekście testowanego środowiska. Przykładem może być usunięcie z raportu powszechnych fałszywych alarmów i podjęcie decyzji o poziomach ryzyka, które należy zastosować do każdego wyniku raportu, aby poprawić zrozumienie biznesu i kontekst.
  • Ocena bezpieczeństwa – stanowi rozwinięcie oceny podatności poprzez dodanie ręcznej weryfikacji w celu potwierdzenia luki w zabezpieczeniach, ale nie obejmuje wykorzystania podatności w celu uzyskania dalszego dostępu. Weryfikacja może mieć formę autoryzowanego dostępu do systemu w celu potwierdzenia ustawień systemowych i obejmować badanie dzienników, odpowiedzi systemu, komunikatów o błędach, kodów itp. Celem oceny bezpieczeństwa jest uzyskanie szerokiego zakresu testowanych systemów, ale nie stopnia zagrożenia, do którego może doprowadzić określona luka.
  • Test penetracyjny – symuluje atak złośliwej strony. Bazuje na poprzednich etapach i obejmuje wykorzystanie znalezionych luk w celu uzyskania dalszego dostępu. Zastosowanie tego podejścia pozwoli na zrozumienie zdolności osoby atakującej do uzyskania dostępu do poufnych informacji, wpłynięcia na integralność danych lub dostępność usługi oraz odpowiednich skutków. Do każdego testu podchodzi się z wykorzystaniem spójnej i kompletnej metodologii w sposób, który pozwala testerowi na wykorzystanie swoich umiejętności rozwiązywania problemów, danych wyjściowych z szeregu narzędzi oraz własnej wiedzy na temat sieci i systemów w celu znalezienia podatności, które nie mogłyby zostać zidentyfikowane przez zautomatyzowane narzędzia. Podejście to uwzględnia głębokość ataku w porównaniu do podejścia opartego na ocenie bezpieczeństwa, które uwzględnia szerszy zakres.
  • Audyt bezpieczeństwa – wywołane przez funkcję audytu/ryzyka w celu przyjrzenia się konkretnej kontroli lub kwestii zgodności. Charakteryzując się wąskim zakresem, ten rodzaj zaangażowania może wykorzystywać którekolwiek z wcześniej omówionych podejść. (ocena podatności, ocena bezpieczeństwa, test penetracyjny).
  • Przegląd bezpieczeństwa – weryfikacja, czy przemysłowe lub wewnętrzne standardy bezpieczeństwa zostały zastosowane do komponentów systemu lub produktu. Zazwyczaj jest to realizowane poprzez analizę luk i wykorzystanie przeglądów budowy/kodu lub poprzez przegląd dokumentów projektowych i diagramów architektury. Ta czynność nie wykorzystuje żadnego z wcześniejszych podejść (ocena podatności, ocena bezpieczeństwa, test penetracyjny, audyt bezpieczeństwa).

Narzędzia[edytuj | edytuj kod]

  • CSA – analiza bezpieczeństwa kontenerów i infrastruktury
  • DAST – dynamiczne testowanie bezpieczeństwa aplikacji
  • DLP – zapobieganie utracie danych
  • IAST – interaktywne testowanie bezpieczeństwa aplikacji
  • IDS / IPS – Wykrywanie włamań i/lub zapobieganie włamaniom
  • OSS – skanowanie oprogramowania typu Open Source
  • RASP – samoochrona aplikacji w czasie rzeczywistym
  • SAST – statyczne testowanie bezpieczeństwa aplikacji
  • SCA – analiza składu oprogramowania
  • WAF – zapora aplikacji sieci Web

Przypisy[edytuj | edytuj kod]

  1. M Martellini, & Malizia, A. (2017). Cyber and chemical, biological, radiological, nuclear, explosives challenges : threats and counter efforts. Springer.
  2. „Introduction to Information Security” US-CERT https://www.us-cert.gov/security-publications/introduction-information-security.