Istotność podatności w testach penetracyjnych aplikacji webowych – CVSS
Przypisanie istotności podatności jest istotnym elementem przy opisywaniu podatności w raporcie. Pomaga to organizacji zrozumieć, jak poważna jest dana podatność, i umożliwia priorytetyzację działań naprawczych. Oczywiste jest, że większość organizacji skoncentruje się na podatnościach o wysokiej istotności, zamiast na średnich lub niskich.
Przypisanie istotności można przeprowadzić na podstawie „odczucia” testera penetracyjnego o tym, jak niebezpieczna jest dana podatność, lub w bardziej zorganizowany i ustandaryzowany sposób.
Pierwsza metoda podlega interpretacji. Ta sama podatność może mieć przypisaną różną istotność w zależności od tego, kto ją odkrył.
Druga metoda daje znacznie mniej miejsca na interpretację, dlatego to podejście opiszę w tym artykule.
!To trzeci z sześciu artykułów w serii „Raport z testów penetracyjnych aplikacji webowych”. Jeśli nie czytałeś poprzedniego, możesz go znaleźć pod tytułem: „Jak powinien wyglądać dobry executive summary w raporcie z testów penetracyjnych?”. Dowiesz się, czego oczekiwać od sekcji executive summary w raporcie z testów penetracyjnych.
Aby przypisać istotność w Zigrin Security, używamy standardu Common Vulnerability Scoring System (CVSS). Pierwsza wersja tego standardu została wprowadzona w 2005 roku. Obecnie, od 2022 roku, najnowsza wersja to 3.1, i to właśnie ta wersja będzie omawiana w tym artykule.
Aby szybko zrozumieć aspekty CVSS, stworzyliśmy następującą ściągawkę:

Przede wszystkim, w przypadku CVSS, podatność otrzymuje przypisaną istotność, a nie ryzyko (więcej na ten temat w kolejnych artykułach). Istotności przypisywane są na podstawie obliczonego wyniku i przedstawiają się następująco:
Krytyczna 10,0 – 9,0
Wysoka 8,9 – 7,0
Średnia 6,9 – 4,0
Niska 3,9 – 1,0
Brak – 0
Na przykład, jeśli podatność uzyska wynik 7,1, jej istotność będzie wysoka.
Istnieją trzy główne sposoby obliczania wyniku: Base Score (wynik podstawowy), Temporal Score (wynik czasowy) i Environmental Score (wynik środowiskowy). Najczęściej wykorzystywany jest wynik podstawowy, dlatego skupię się na nim.
Aby obliczyć wynik podstawowy, tester penetracyjny musi wziąć pod uwagę osiem czynników:

Triada CIA
Trzy główne czynniki CVSS (po prawej stronie zrzutu ekranu powyżej) przedstawiają wpływ podatności z użyciem triady CIA:
- Poufność
- Integralność
- Dostępność
Pozwala to na oddzielne rozróżnienie wpływu na każdy z tych aspektów, gdzie tester penetracyjny musi wybrać wartości: Brak, Niski lub Wysoki dla wszystkich części triady CIA.
Na przykład, jeśli podatność pozwala na kradzież ograniczonych danych, to Poufność będzie oceniona na Niski, a Integralność i Dostępność będą miały ocenę Brak.
Z drugiej strony, jeśli podatność pozwala na modyfikację wszystkich danych w bazie danych oraz uszkodzenie aplikacji, czyniąc ją niedostępną dla użytkowników, to Poufność będzie oceniona na Brak, a Integralność i Dostępność na Wysoki.
Istnieje wiele kombinacji tych czynników w zależności od wpływu podatności.
Wektor ataku
Przejdźmy teraz do lewej strony zrzutu ekranu. Wektor ataku wyjaśnia, gdzie atakujący musi się znajdować, aby móc wykorzystać podatność.
W aplikacjach webowych większość podatności ma przypisany wektor ataku typu „Sieć” w systemie CVSS. Wynika to z faktu, że aplikacje webowe są zazwyczaj dostępne zarówno przez wewnętrzną sieć, jak i przez Internet. Oznacza to, że atakujący potrzebuje jedynie dostępu do sieci, aby uzyskać dostęp do aplikacji.
Wektor ataku sąsiedniego to sytuacja, w której wykorzystanie podatności wymaga, aby atakujący znajdował się w określonej logicznej podsieci, fizycznej sieci (takiej jak Bluetooth) lub uprzywilejowanej strefie, jak sieć administracyjna połączona przez VPN.
Wektor ataku lokalnego w CVSS występuje wtedy, gdy atakujący musi mieć dostęp do maszyny, na której znajduje się podatność, aby ją wykorzystać. Zwykle są to podatności eskalacji uprawnień w systemach Windows, Linux i innych, ale nie tylko.
Wektor ataku fizycznego ma miejsce, gdy atakujący musi mieć fizyczny dostęp do maszyny, na której znajduje się podatny komponent. Dobrym przykładem jest tablet znajdujący się w poczekalni Twojej firmy, na którym istnieje podatność, którą można wykorzystać.
Złożoność ataku
Złożoność ataku odzwierciedla czynniki zewnętrzne, na które atakujący nie ma wpływu, a które muszą wystąpić, aby podatność mogła zostać wykorzystana. Może to oznaczać niestandardową konfigurację lub inną podatność, która musi istnieć i zostać wykorzystana.
Wymagane uprawnienia
Ten czynnik CVSS opisuje, jakie uprawnienia musi mieć atakujący, aby móc wykorzystać podatność. Jeśli podatność może zostać wykorzystana tylko przez administratorów, wtedy przypisuje się jej wysoki poziom, dla zwykłych użytkowników niski, a dla niezautoryzowanych gości — brak (None).

CEO, Cybersecurity Expert
Jeśli chcesz przeprowadzić test penetracyjny typu white box swojej aplikacji webowej, zostaw swój adres e-mail, a skontaktuję się z Tobą.
Umów się na rozmowę ze mną
Interakcja z użytkownikiem
Czynnik Interakcja z użytkownikiem w CVSS opisuje, czy inni użytkownicy muszą podjąć jakąś akcję w aplikacji, która umożliwi atakującemu wykorzystanie podatności. Typowym przykładem jest podatność XSS, w której ofiara musi przynajmniej otworzyć konkretną stronę lub kliknąć w link.
Zakres
Ostatni czynnik CVSS 3.1, opisany w tym artykule, to Zakres, który często bywa trudny do zrozumienia. Zakres jest przypisany jako Zmieniony w sytuacjach, gdy podatność występuje w jednym komponencie, ale może wpłynąć na inny komponent. Przykładem takiej sytuacji jest podatność typu injection, gdzie atakujący zyskuje dostęp do systemu operacyjnego podatnego komponentu. W tym przypadku podatnym komponentem jest aplikacja webowa, a komponentem, na który ma wpływ podatność, jest system operacyjny i wewnętrzna sieć.
Innym przykładem są podatności XSS, w których podatnym komponentem jest aplikacja webowa, a komponentem, który jest narażony na wpływ, jest przeglądarka użytkownika.
Gdy podatny komponent jest taki sam jak komponent, na który wpływa podatność, Zakres CVSS powinien być ustawiony na Niezmieniony. Przykładem „niezmienionego zakresu” byłoby obejście uwierzytelniania w aplikacji webowej. Komponentem podatnym jest funkcjonalność uwierzytelniania aplikacji, a komponentem, który jest narażony, jest sama aplikacja.
Wektor CVSS
Wszystkie te czynniki są częścią podstawowej oceny CVSS, która odzwierciedla istotność podatności. Związane są z nimi pewne równania matematyczne, ale nie będę wchodził w szczegóły, ponieważ nie są one konieczne do zrozumienia tego systemu oceny.
Ten system może wydawać się skomplikowany i przytłaczający, ale pokażę Ci prosty sposób, jak zrozumieć wynik, kiedy zobaczysz go w raporcie z testów penetracyjnych lub jak obliczyć istotność, gdy znajdziesz podatność.
Gdy firma używa CVSS do oceny wyników testu penetracyjnego, prawdopodobnie zobaczysz dziwaczny tekst obok każdego wyniku, coś takiego jak:
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:H
Jest to skrót wszystkich czynników, które opisałem powyżej. Można zobaczyć wersję CVSS, która została użyta do obliczenia wyniku, oraz same czynniki. Na przykład, AV:N oznacza Wektor Ataku przypisany jako Brak (None), AC:L oznacza Złożoność Ataku przypisaną jako Niska (Low), i tak dalej.
Nie musisz zapamiętywać tego wszystkiego. Najlepszym sposobem, aby zobaczyć dokładne czynniki, jest skorzystanie z kalkulatora online udostępnionego przez organizację FIRST.
Po prostu otwórz kalkulator i wprowadź skrót CVSS w taki sposób, jak w poniższym URL:
Zobaczysz przejrzysty sposób wizualizacji wszystkich czynników podatności wraz z końcowym wynikiem i istotnością.
Teraz możesz lepiej zrozumieć, jak obliczono istotność podczas testu penetracyjnego Twojej aplikacji webowej.
Dodatkowe zasoby
Dodatkowe artykuły na temat systemu oceny istotności podatności CVSS można znaleźć poniżej:
- Common Vulnerability Scoring System SIG – https://www.first.org/cvss/
- Kalkulator CVSS 3.1 – https://www.first.org/cvss/calculator/3.1
- Bieżąca dystrybucja punktacji CVSS dla wszystkich podatności z przypisanym CVE – https://www.cvedetails.com/cvss-score-distribution.php
! W kolejnym artykule opiszę, jakie są kluczowe elementy sekcji opisującej wyniki w raporcie z testów penetracyjnych.

Czy artykuł jest pomocny? Podziel się nim ze swoimi znajomymi.