W cyberbezpieczeństwie, OWASP Top Ten jest kluczową strukturą, która pomaga organizacjom zrozumieć najczęściej występujące obecnie podatności aplikacji webowych.
Zapoznaj się z naszym przewodnikiem, aby dowiedzieć się więcej o problemach, których należy być świadomym i jak zmniejszyć ryzyko ataków na aplikacje webowe.
Czym jest OWASP Top 10?
Uznany przez programistów i specjalistów ds. bezpieczeństwa na całym świecie, OWASP Top Ten przedstawia kluczowe podatności, które wpływają na bezpieczeństwo aplikacji webowych. Został on stworzony przez Open Web Application Security Project (OWASP), fundację non-profit, która wspiera organizacje w celu poprawy bezpieczeństwa ich aplikacji internetowych. Po raz pierwszy opublikowany w 2003 roku, Top 10 jest aktualizowany co trzy lata, a OWASP obecnie przyjmuje zgłoszenia, aby pomóc w opracowaniu kolejnej iteracji ram.
Top 10 OWASP zapewnia jasną hierarchię najbardziej powszechnych problemów bezpieczeństwa aplikacji internetowych, umożliwiając organizacjom identyfikację i zajęcie się nimi zgodnie z częstością występowania, potencjalnym wpływem, metodą wykorzystania przez atakujących oraz łatwością lub trudnością wykrycia. Poniżej znajduje się lista dziesięciu najczęstszych zagrożeń bezpieczeństwa aplikacji internetowych zidentyfikowanych przez OWASP.
Wady iniekcyjne
Wady iniekcyjne, takie jak wstrzyknięcia SQL, NoSQL, OS i LDAP występują, gdy niezaufane dane są wysyłane do programu jako część polecenia lub zapytania. Dzięki temu wrogie dane pochodzące od atakującego mogą podstępnie zmusić program do wykonania niezamierzonych poleceń, takich jak udostępnienie danych bez odpowiedniej autoryzacji.
Z uwagi na fakt, że są łatwe do nauczenia się i wykonania, wstrzyknięcia SQL są jedną z najczęstszych technik wykorzystywanych do atakowania aplikacji internetowych. Ostatnie badania wykazały, że ataki SQL injection stanowią ponad 65% ataków internetowych.
Dawnym przykładem wykorzystania błędu wstrzyknięcia jest atak na firmę Dave, zajmującą się bankowością mobilną, który doprowadził do umieszczenia w dark webie danych około 7,5 miliona jej klientów.
Waydev, platforma analityczna, która współpracowała z firmą, wykorzystała skompromitowane tokeny GitHub i GitLab OAuth. Uważa się, że hakerzy włamali się do platformy Waydev i ukradli tokeny z wewnętrznej bazy danych za pomocą ślepej luki SQL injection. Hakerzy następnie wykorzystali tokeny, aby uzyskać dostęp do Dave’a i innych firm.
Złamane uwierzytelnianie
Złamane uwierzytelnianie to każdy problem bezpieczeństwa, który wpływa na mechanizm logowania w aplikacji. Uszkodzone uwierzytelnianie daje atakującym swobodę kompromitowania haseł użytkowników i tokenów sesji lub wykorzystywania błędów w implementacji. Może to pozostawić systemy podatne na ataki brute force, w których atakujący używają zautomatyzowanych narzędzi do łamania haseł do kont użytkowników.
Narażenie na atak wrażliwych danych
Dane, takie jak informacje o kartach kredytowych użytkowników i tokenach sesji, są powszechnie narażone w aplikacjach internetowych i interfejsach API, umożliwiając atakującym ich kradzież w celu kradzieży tożsamości i innych przestępstw. Aby zapobiec narażeniu tych i innych wrażliwych danych, należy je chronić za pomocą szyfrowania (zarówno w tranzycie, jak i w spoczynku) oraz upewnić się, że nie ma żadnych błędów w logice aplikacji, które mogłyby umożliwić nieautoryzowany dostęp.
W 2016 r. hakerzy ukradli dane osobowe 57 milionów klientów i kierowców firmy Uber, wykorzystując lukę, która umożliwiła im obejście dwuskładnikowego uwierzytelniania. Oprócz zatajenia naruszenia przez ponad rok, firma dokonała tajnej płatności w wysokości 75 000 funtów na rzecz atakujących w celu usunięcia naruszonych danych.
XML External Entities (XXE)
Bezbłędność XML External Entity jest słabością w sposobie, w jaki aplikacja przetwarza dane wejściowe XML. Pojawia się, gdy atakujący wstrzyknie XML, który zawiera odniesienie do nieautoryzowanego zewnętrznego podmiotu, a dane wejściowe zostaną przetworzone przez słabo skonfigurowany parser XML.
Błędy XXE są często wykorzystywane przez atakujących do uzyskania dodatkowych informacji technicznych o aplikacji – informacji, które są wykorzystywane do przeprowadzania ataków typu Denial-of-Service i innych. Atak miliarda śmiechów, znany również jako XML bomb, jest dobrze znanym przykładem ataku typu Denial-of-Service, który wykorzystuje luki XXE.
Brak kontroli dostępu
Zarządzanie dostępem odnosi się do procesu, poprzez który aplikacja ogranicza dostęp do danych lub funkcjonalności. Podatności typu BAC (Broken Access Control) występują, gdy ograniczenia dotyczące tego, co użytkownicy mogą robić, nie są odpowiednio egzekwowane, na przykład, gdy użytkownik z ograniczonymi uprawnieniami jest w stanie uzyskać dostęp do danych, do których powinien mieć dostęp tylko użytkownik o wysokich uprawnieniach.
Pomimo, że podatności BAC niekoniecznie muszą być wykorzystane przez złośliwego napastnika, mogą one prowadzić do poważnego naruszenia GDPR, jeśli dane jednego użytkownika zostaną nieumyślnie ujawnione innemu użytkownikowi.
Błędna konfiguracja bezpieczeństwa
Błędna konfiguracja bezpieczeństwa jest bardzo powszechnym typem podatności w aplikacjach internetowych. Używa się go do opisania niezabezpieczonych domyślnych konfiguracji, niekompletnych konfiguracji i otwartego przechowywania danych w chmurze. Nawet niewielki błąd konfiguracji, taki jak wyświetlanie zbyt wielu informacji w komunikatach o błędach, może być problematyczny.
Błędne konfiguracje bezpieczeństwa w chmurze, takie jak niezabezpieczone bazy danych i otwarte wiadra Amazon S3, są powszechne. Badania sugerują, że błędne konfiguracje chmury w 2018 i 2019 roku doprowadziły do ekspozycji 33,4 miliarda rekordów w przedsiębiorstwach na całym świecie, a koszt szacuje się na aż 3,85tn funtów.
Skryptowanie po stronie użytkownika (XSS)
Wady XSS (cross-site scripting) występują zawsze wtedy, gdy aplikacja zawiera niezaufane dane na stronie internetowej bez odpowiedniej walidacji lub gdy aplikacja aktualizuje stronę internetową za pomocą danych dostarczonych przez użytkownika, korzystając z interfejsu API przeglądarki, który może tworzyć HTML lub JavaScript. Luki XXS umożliwiają atakującym wykonanie skryptów, które mogą zostać wykorzystane do przejęcia sesji użytkownika, zniszczenia stron internetowych lub przekierowania użytkowników na złośliwe witryny.
Skryptowanie po stronie użytkownika było kiedyś znacznie większym problemem, ale obecnie znajduje się niżej na liście OWASP Top 10, ponieważ wiele frameworków aplikacji zapewnia wbudowane zabezpieczenia. Krytyczna, ale obecnie załatana luka w procesie logowania platformy wideokonferencyjnej Zoom została niedawno zidentyfikowana jako potencjalnie umożliwiająca atakującym przeprowadzenie ataku XSS.
Wynika to z faktu, że platforma internetowa Zoom, Zoom.us, nie oczyszczała nazwy użytkownika w sfederowanym procesie logowania, umożliwiając atakującym wykonanie dowolnego skryptu JavaScript w przeglądarce ofiary. Odbiorca zostałby zmanipulowany do kliknięcia na złośliwy link wysłany za pośrednictwem wiadomości phishingowej, dając atakującym takie same uprawnienia jak ofierze w zakresie dostępu i zmiany ustawień użytkownika.
Niezabezpieczona deserializacja
W programowaniu, serializacja to przekształcenie obiektu w strumień bajtów w celu zapisania lub przesłania go do pamięci, pliku lub bazy danych. Deserializacja jest odwrotnością tego procesu, przekształcając bajty z powrotem w obiekt, aby można go było przenieść lub przesłać. Ten typ luki może wystąpić, gdy aplikacje wykonują deserializację na danych, które nie są zaufane, w tym danych wysłanych przez atakującego do aplikacji.
Na początku tego roku firma Cisco, produkująca sprzęt sieciowy, musiała szybko opracować poprawkę do krytycznego błędu zdalnego wykonania kodu (RCE) w swoim rozwiązaniu do zarządzania interakcją z klientem, Unified Contact Center Express (CCX). Dziura ta była spowodowana przez interfejs zdalnego zarządzania Java produktu, który nie zapewniał bezpiecznej deserializacji treści dostarczanych przez użytkownika. Oznaczało to, że napastnik mógł wysłać złośliwy serializowany obiekt Java do konkretnego użytkownika na zaatakowanym systemie. W przypadku pomyślnego wykonania, mogło to doprowadzić do wykonania dowolnego kodu jako użytkownik root na zaatakowanym urządzeniu.
Używanie komponentów ze znanymi lukami
Aplikacje i interfejsy API wykorzystujące komponenty ze znanymi lukami mogą osłabić obronę aplikacji i zapewnić napastnikom punkt wejścia. Łagodzenie takich podatności polega na aktualizowaniu wszystkich komponentów używanych przez aplikacje internetowe. Powinno to obejmować system operacyjny serwera WWW oraz biblioteki firm trzecich używane jako część bazy kodowej aplikacji.
Przykładem wykorzystania tej luki jest luka w Citrix Netscaler, CVE-2020-19781, która pozwala atakującym na przejęcie kontroli nad urządzeniem i przejście do wewnętrznej sieci organizacji. Luka ta doprowadziła do wielu incydentów z oprogramowaniem ransomware i umożliwiła kartelom wyłudzenie milionów dolarów od ofiar.
Niewystarczające logowanie & monitorowanie
Niewystarczające logowanie i monitorowanie, w połączeniu z brakiem lub nieskuteczną reakcją na incydenty, to kolejne potencjalnie poważne ryzyko, które może prowadzić do przeoczenia poważnych naruszeń lub podjęcia działań zbyt późno. Nieznane wykorzystanie podatności może pozwolić atakującym na utrzymanie trwałości, przejście do innych systemów oraz manipulowanie, ekstrakcję i niszczenie danych.
Aby zminimalizować ryzyko bezpieczeństwa, zaleca się, aby dane aplikacji internetowych, w tym telemetria z zapór sieciowych, były centralnie monitorowane przy użyciu najnowszej technologii monitorowania sieci i punktów końcowych. Formalne procedury reagowania na incydenty, w tym automatyzacja playbooków, są również wysoce zalecane, aby pomóc w skróceniu czasu reakcji na ataki.
Zmniejszanie ryzyka związanego z bezpieczeństwem aplikacji webowych
Jak podkreśla OWASP Top Ten, aplikacje webowe są potencjalnie podatne na szeroki zakres słabości. Sprawdzenie każdej podatności podczas procesu tworzenia aplikacji jest bardzo ważne.
Bezpieczeństwo aplikacji webowych może być uwzględnione już na samym początku procesu tworzenia poprzez przyjęcie podejścia Security by Design. Organizacjom zaleca się również regularne zlecanie formalnych, niezależnych testów penetracyjnych aplikacji webowych w celu zidentyfikowania i zajęcia się nowymi podatnościami, które mogły zostać przeoczone.
Testy penetracyjne OWASP od Redscan
Testy aplikacji webowych są jedną z wielu usług oceny bezpieczeństwa, które oferujemy w Redscan. Nasi etyczni hakerzy kompleksowo testują podatności aplikacji internetowych, w tym te wymienione w aktualnym Top 10 OWASP, i zapewniają wsparcie, aby pomóc w ich szybkim i skutecznym usunięciu.
Na koniec każdego testu penetracyjnego OWASP dostarczamy szczegółowy raport przedstawiający poziom ryzyka i porady dotyczące środków zaradczych wymaganych do szybkiego i skutecznego usunięcia tych zagrożeń.
Nasi testerzy ściśle współpracują z klientem, aby zrozumieć jego aplikację i pomóc w określeniu wymagań. Nasz akredytowany przez CREST proces przeprowadzania testów pen jest realizowany zgodnie z najwyższymi standardami prawnymi, etycznymi i technicznymi, a także z najlepszymi praktykami w kluczowych obszarach, takich jak przygotowanie & scopingu, wykonanie zadania, dostawa techniczna i ochrona danych.
Zdobądź szybką wycenę