Tak jak związane z bezpieczeństwem luki programistyczne istnieją w oprogramowaniu takim jak Microsoft Windows i Linux, aplikacje napisane do obsługi stron internetowych (znane jako aplikacje internetowe) mogą cierpieć z powodu wielu luk w zabezpieczeniach, od tych, które pozwalają zdalnym atakującym na modyfikowanie danych, takich jak ceny produktów sprzedawanych w witrynach internetowych e-biznesowych tym, które, jeśli są prawidłowo wykorzystywane, umożliwiają zdalnym atakującym uzyskanie pełnego dostępu do serwerów obsługujących podatne witryny sieci Web. Ze względu na szeroki zakres technologii wykorzystywanych do tworzenia aplikacji internetowych, istnieje wiele różnic między technikami, w których przeciwnik może wykorzystywać podobne wady w różnych aplikacjach internetowych wykorzystujących różne technologie.
Technika różnicująca
Istnieje wiele czynników różnicujących między sposobami wykorzystania błędów aplikacji sieci Web a poziomem trudności związanym z odpowiednią techniką ataku. Poziomy trudności związane z technikami eksploatacji aplikacji sieci Web odnoszą się do różnych semantyki języka, w którym aplikacja jest napisana, oraz wszelkich innych technologii, takich jak serwery baz danych, z których korzysta aplikacja internetowa. Przykładem tego, jak taki element wyróżniający mógłby istnieć, jest przypadek, w którym w aplikacji sieci Web istnieje błąd typu iniekcyjnego języka SQL (Structured Query Language). Błędy SQL injection pozwalają atakującemu na wykonanie dowolnych zapytań do baz danych na serwerach baz danych, na których działa wiele aplikacji internetowych (takich jak aplikacje elektronicznego koszyka na zakupy). Na potrzeby tego przykładu rozważmy dwa przypadki. W pierwszym, baza danych połączona z podatną na ataki aplikacją internetową jest obsługiwana przez SQL Server 2000 firmy Microsoft, na którym zastosowano wszystkie dostępne aktualizacje zabezpieczeń firmy Microsoft. W drugim przypadku ta sama aplikacja internetowa jest połączona z serwerem bazy danych MySQL, na którym zastosowano również wszystkie najnowsze poprawki zabezpieczeń. W pierwszej kolejności nasz przeciwnik jest w stanie wykorzystać lukę w iniekcji SQL, wykonując polecenia na hoście, na którym działa serwer MS SQL, i ostatecznie uzyskując Telnet (zdalna administracja), jak powłoka w systemie, za pomocą funkcji wbudowanej w Microsoft SQL serwer umożliwiający wykonywanie poleceń systemowych. W drugim przypadku nasz przeciwnik nie może znaleźć żadnej równoważnej funkcji na serwerze MySQL i jest zmuszony zużywać dodatkowe zasoby, aby znaleźć lukę w serwerze MySQL, która umożliwia wykonywanie poleceń systemowych. Ponieważ przeciwnik nie posiada umiejętności wymaganych do znalezienia i wykorzystania w sumie nowej luki w serwerze bazy danych MySQL, kosztuje to przeciwnika pięć dni czasu przyjaciela (któremu jest teraz winien przysługę) i potencjalnie utratę informacje dotyczące wcześniej niepublikowanej luki w MySQL w przypadku wykrycia jego ataku. Ten przykład pokazuje wariantowy poziom umiejętności wymagany do wykorzystania tej samej wady w aplikatorze sieciowym z różnymi technikami wymaganymi ze względu na różne technologie wykorzystywane przez aplikacje internetowe. Tabela ilustruje, w jaki sposób możemy ocenić poziomy umiejętności wymagane do osiągnięcia celu poprzez wykorzystanie luk w aplikacjach internetowych, które wykorzystują różne technologie.
Wady aplikacji internetowej: publiczne: prywatne
Zastrzeżona penetracja aplikacji: 3 5
Wstrzyknięcie SQL
Penetracja aplikacji typu open source: 3 5
Wstrzyknięcie SQL
Zastrzeżona penetracja aplikacji: 2 4
Wstrzyknięcie dowolnego kodu
Penetracja aplikacji typu open source: 2 4
Wstrzyknięcie dowolnego kodu
Zastrzeżona penetracja aplikacji: 3 5
Wykonywanie poleceń systemu operacyjnego przy użyciu języka SQL
Iniekcja (MS SQL)
Zastrzeżona penetracja aplikacji: 3 5
Wykonywanie poleceń systemu operacyjnego przy użyciu języka SQL
Wstrzyknięcie (Sybase)
Zastrzeżona penetracja aplikacji: 4 6
Tylko wtrysk SQL (MS SQL)
Zastrzeżona penetracja aplikacji: 6 8
Tylko wtrysk SQL (IBM DB2)
Zastrzeżona penetracja aplikacji: 6 8
Tylko wstrzyknięcie SQL (Oracle)
Dodatkowe przykłady punktacji ataku
Poniżej dodatkowo pokazan sposoby oceny ataku na podstawie poziomu umiejętności wymaganego do wykorzystania (aw przypadku kolumny Private, znalezienia) wad, w zależności od używanej technologii i charakteru wady. Pamiętaj, że aby uzyskać wynik, sukces jest zawsze prawdziwy!
Exploity oprogramowania użytkownika Land: publiczne: prywatne
Eskalacja uprawnień lokalnych (Linux 2.4) 3 6
Zdalna eksploatacja demona (Linux 2.4) 4 8
Eksploatacja za pośrednictwem programu Mass Rooter (Linux 2.4) 1 3
Exploity oprogramowania jądra: publicznye: prywatne
Zdalna masa przepełnienia przestrzeni jądra 1 3
(Linux 2.4)
Zdalne przepełnienie przestrzeni jądra
(Linux 2.4) 5 9
Przepełnienie lokalnego jądra
(Linux 2.4) 3 6
Ostrzeżenia: Maskarada zachowań ataków
Jednym z zastrzeżeń związanych z oceną przeciwnika za pomocą technik i narzędzi używanych w ataku jest to, że bardziej zaawansowany przeciwnik może celowo udawać niewykwalifikowanego przeciwnika w nadziei, że zwabi tych odpowiedzialnych za obronę celu w fałszywe poczucie bezpieczeństwo, wykorzystując dobrze znany fakt, że wśród wielu administratorów systemów istnieje tendencja do oceniania
ich cyberprzestępcy jako niezdolni do włamania się do ich systemów. Drugim powodem, dla którego przeciwnik udaje mniej wprawnego napastnika, jest zakamuflowanie prawdziwego ataku w ramach dużej liczby ataków, rzekomo wykonanego przez wysoce niewykwalifikowanego przeciwnika. Dobra wiadomość jest taka, że w każdym przypadku, nawet jeśli atak jest zamaskowany przez duża liczba ataków „pozorowanych” ze strony rzekomo niewykwalifikowanych przeciwników, użycie kilku dobrze rozmieszczonych IDS powinno zapewnić, że prawdziwy atak ma duże szanse na zarejestrowanie. W przypadku, gdy przeciwnik próbował zamaskować atak innymi działaniami, prawie zawsze tak się dzieje, ponieważ wierzy, że bez tych środków atak zostałby natychmiast zauważony. że takie działanie służy spowolnieniu procesu wykrywania – w końcu przetwarzanie 10 000 wierszy plików dziennika wykrywania włamań zajmuje o wiele więcej czasu niż 10 wierszy.
Podsumowanie
Przedstawiliśmy kilka kluczowych zasad oceniania ataku na podstawie danych, które są powszechnie dostępne po wystąpieniu incydentu. Należy zauważyć, że narzędzia i techniki ataku opisane w tym rozdziale to tylko wierzchołek góry lodowej. Osoby, których zadaniem jest scharakteryzowanie cyberprzestępców na etapie analizy incydentów, są zachęcane do kreatywności, wykorzystując dostępne dane dotyczące ataku, jednocześnie odwołując się do przeszłości. do zasad charakteryzacji przedstawionych w tym rozdziale. W następnym rozdziale zbadamy, w jaki sposób możemy wykorzystać przedstawioną dotychczas teorię do scharakteryzowania tych, którzy stanowią zagrożenie dla naszych najcenniejszych aktywów – zbliżając się o krok do prawdziwego „poznania wroga”.