A1: 2017-Injection
Ataki typu injection to między innymi SQL, NoSQL, OS i LDAP. Występują, gdy niezaufane dane są wysyłane do interpretera jako część polecenia lub zapytania. Wrogie dane atakującego mogą skłonić tłumacza do wykonania niezamierzonych poleceń lub uzyskania dostępu do danych bez odpowiedniej autoryzacji.
A2: Uszkodzenie autoryzacji
Funkcje aplikacji związane z uwierzytelnianiem i zarządzaniem sesjami są często wdrażane niepoprawnie. Pozwala ot atakującym na złamanie haseł, kluczy lub tokenów sesji lub wykorzystanie innych wad implementacji do tymczasowego lub stałego przejęcia tożsamości innych użytkowników.
A3: Wrażliwe dane
Wiele aplikacji internetowych i interfejsów API nie chroni odpowiednio poufnych danych, takich jak finanse, dane zdrowotne i PII. Atakujący mogą kraść lub modyfikować takie słabo chronione dane, aby prowadzić oszustwa związane z kartami kredytowymi, kradzieżą tożsamości lub innymi przestępstwami. Wrażliwe dane mogą zostać wykradzione kiedy pozbawione są dodatkowej ochrony, takiej jak szyfrowanie w przechowywaniu lub w przesyle i wymagają specjalnych środków ostrożności podczas przesyłania do i z przeglądarki.
A4: Jednostki zewnętrzne XML (XXE)
Wiele starszych lub źle skonfigurowanych procesorów XML korzysta z odwołania do encji zewnętrznych w dokumentach XML. Jednostki zewnętrzne mogą być używane do ujawniania plików wewnętrznych za pomocą procedury obsługi plików URI, wewnętrznych obsługi plików, wewnętrznego skanowania portów, zdalnego wykonywania kodu i ataków typu „odmowa usługi”.
A5: Niepoprawna kontrola dostępu
Ograniczenia dotyczące uprawnień uwierzytelnionych użytkowników często nie są odpowiednio obsługiwane. Atakujący mogą wykorzystać te wady, aby uzyskać nieautoryzowany dostęp do funkcji i / lub danych, takich jak dostęp do kont innych użytkowników, wyświetlanie poufnych plików, modyfikowanie danych innych użytkowników, zmiana praw dostępu itp.
A7: Cross-Site Scripting (XSS)
Nieprawidłowa konfiguracja zabezpieczeń jest najczęściej spotykanym problemem. Jest to zwykle wynikiem niezabezpieczonych konfiguracji domyślnych, konfiguracji niekompletnych lub ad hocowych, dostępnej pamięci masowej w chmurze, nieprawidłowo skonfigurowanych nagłówków HTTP i komunikatów o błędach zawierających poufne informacje. Wszystkie systemy operacyjne, frameworki, biblioteki i aplikacje muszą być bezpiecznie skonfigurowane, ale muszą zostać również aktualizowane na bieżąco.
Podatności XSS występują zawsze, gdy aplikacja zawiera niezaufane dane bez prawidłowej weryfikacji lub obsługi, lub gdy aktualizuje istniejącą stronę internetową danymi dostarczonymi przez użytkownika za pomocą interfejsu API przeglądarki (tworzenie HTML lub JavaScript). XSS umożliwia atakującym wykonywanie skryptów w przeglądarce ofiary. Mogą one przejmować sesje użytkowników, niszczyć strony lub przekierowywać użytkownika do złośliwych stron.
A8: Niezabezpieczna deserializacja
Niezabezpieczona deserializacja może prowadzić do zdalnego wykonania kodu. Ta podatność może być również użyta do przeprowadzania ataków powtórek, ataków typu injection i ataków „eskalacji” uprawnień.
A9: Korzystanie ze składników o znanych lukach
Komponenty, takie jak biblioteki, frameworki i inne moduły oprogramowania, działają z tymi samymi uprawnieniami, co aplikacja. Jeśli wykorzystywany zostanie zagrożony element, taki atak może doprowadzić do poważnej utratę danych lub przejęcie serwera. Aplikacje i interfejsy API wykorzystujące komponenty o znanych lukach mogą osłabić ochronę aplikacji i umożliwić różne ataki.
A10: Niewystarczające rejestrowanie i monitorowanie
Niewystarczająca rejestracja i monitorowanie, w połączeniu z brakującą lub nieefektywną integracją z reakcją na incydent, pozwala atakującym na atakowanie systemów, propagowanie się na inne systemy i manipulowanie, wyodrębnianie lub niszczenie danych. Większość analiz naruszeń wskazuje, że czas na wykrycie naruszenia sięga ponad 200 dni. Często wykrywany jest przez podmioty zewnętrzne, a nie wewnętrzne procesy lub monitorowanie.