Chcesz poprawić poziom cyberbezpieczeństwa w swojej infrastrukturze IT? Jak znaleźć źródła informacji w temacie podatności? W tym celu powstały rankingi najbardziej powszechnych zagrożeń w cyberprzestrzeni w zakresie bezpieczeństwa sieci oraz aplikacji. Twórcami najbardziej popularnych z nich są OWASP (Open Web Application Security Project) oraz CWE (Common Weakness Enumeration). Instytucje te tworzą i regularnie aktualizują listy zawierające najbardziej krytyczne luki w zabezpieczeniach.
Chociaż OWASP Top 10 oraz SANS Top 25 są różnymi rankingami, wiele wylistowanych w nich luk pokrywa się.
Co to jest OWASP TOP 10?
OWASP Top 10 to lista najpowszechniejszych i najbardziej krytycznych podatności dla aplikacji webowych. Ranking opracowywany jest przez ekspertów z Open Web Application Security Project, poprzez ocenę ryzyka obejmującą wykrywalność słabych punktów systemu i jest on aktualizowany regularnie. Dzięki temu, wiernie odzwierciedla najnowsze zagrożenia i luki w zabezpieczeniach sieci.
Jaka jest aktualna wersja OWASP Top 10?
Aktualna wersja rankingu OWASP Top 10 pochodzi z września 2021 roku i obejmuje następujące podatności:
A01:2021 – Broken Access Control
Błędy tego typu zwykle prowadzą do nieautoryzowanego ujawnienia informacji, ich modyfikacji, naruszenia, zniszczenia lub kradzieży danych i związane są z sytuacjami, w których użytkownicy mają możliwość działania poza zamierzonymi uprawnieniami.
Do tego typu scenariuszy należą m.in.:
- Naruszenie zasady najmniejszego uprzywilejowania, według której dostęp do zasobów powinien być przyznawany wyłącznie określonym użytkownikom
- Omijanie kontroli dostępu poprzez modyfikację adresu URL – manipulowanie parametrami
- Niekontrolowana eskalacja uprawnień
- Manipulacje metadanymi, takimi jak tokeny kontroli dostępu JSON Web Token lub pliki cookie
A02:2021 – Cryptographic Failures – Błędy szyfrowania danych
Luki te związane są z zaniedbaniem procesu zarządzania kluczami kryptograficznymi, ich rotacją, odpowiednim generowaniem oraz przechowywaniem danych poufnych w niezaszyfrowanej postaci.
A03:2021 – Injection – Błędy wstrzyknięcia
Błędy tego typu powstają podczas przesłania specjalnie spreparowanych danych do interpretera, jako części zapytania lub polecenia, w celu wywołania przez osobę atakującą własnych zapytań (SQL, OS shell, LDAP). Może to spowodować dostęp do poufnych informacji lub nieautoryzowanych działań w systemie.
A04:2021 – Insecure Design
Kategoria ta koncentruje się na zagrożeniach związanych z wadami projektowymi i związana jest z brakiem odpowiedniego profilowania ryzyka w trakcie powstawania nowego projektu, a tym samym brakiem określenia, jaki poziom bezpieczeństwa jest wymagany.
A05:2021 – Security Misconfiguration – „błędna konfiguracja zabezpieczeń”
Do tego typu błędów możemy zaliczyć zaniedbywanie zmiany domyślnych haseł oraz ustawień, które często nie zapewniają żadnego bezpieczeństwa. Wszelkie konfiguracje powinny zostać jasno zdefiniowane zgodnie z wytycznymi bezpieczeństwa, zaimplementowane oraz odpowiednio utrzymywane.
A06:2021 – Vulnerable and Outdated Components
Twój system może być zagrożony, jeśli budujące go komponenty (system operacyjny, serwer WWW, aplikacje, systemy zarządzania bazą danych, biblioteki) są nieaktualne, a nowe, aktualizowane elementy systemu nie są testowane pod kątem zgodności i bezpieczeństwa.
A07:2021 – Identification and Authentication Failures – “błędy uwierzytelniania i autoryzacji”
Podatności te występują w przypadku błędów implementacyjnych w funkcjach związanych z uwierzytelnianiem oraz autoryzacją. Umożliwia to hakerom ujawnienie haseł oraz kluczy. W praktyce system jest podatny na ataki, gdy zezwala na domyśle, słabe i powszechne hasła („123456”, „admin”) i wykorzystuje niezabezpieczone procesy odzyskiwania zapomnianych poświadczeń. Niepoprawną praktyką, która również może prowadzić do naruszenia danych logowania jest przechowywanie haseł w postaci zwykłego, niezaszyfrowanego tekstu.
A08:2021 – Software and Data Integrity Failures
Błędy związane z tą kategorią mogą być konsekwencją obecności w firmowych systemach wtyczek, bibliotek oraz modułów pochodzących z niezaufanych źródeł. To te elementy systemu są najbardziej narażone na awarie czy brak integralności.
A09:2021 – Security Logging and Monitoring Failures
Monitorowanie oraz gromadzenie logów działań użytkowników jest kluczowe w kwestii wykrywania naruszeń i cyberzagrożeń. Błędy z tej kategorii obejmują scenariusze, w których:
- zaniedbuje się proces zbierania logów,
- działania użytkowników nie są monitorowane pod kątem podejrzanej aktywności,
- nie jest przewidziane rozwiązanie alarmujące o potencjalnych atakach.
A10:2021 – Server-Side Request Forgery
Błędy z tej kategorii występują zawsze, gdy aplikacja internetowa pobiera zdalny zasób bez weryfikacji poprawności adresu URL podanego przez użytkownika. Takie działania mogą pozwolić atakującemu zmusić do wysłania spreparowanego żądania do nieautoryzowanego miejsca, nawet jeśli wdrożona jest ochrona w postaci firewallu lub VPN.
Czym jest CWE/SANS Top 25?
CWE/SANS Top 25 to lista najniebezpieczniejszych błędów programistycznych zidentyfikowanych przez Instytut SANS – organizację zajmującą się szkoleniami i badaniami w zakresie cyberbezpieczeństwa. Lista ta jest regularnie aktualizowana i oparta jest na inwazyjności błędów, a także dostępności narzędzi oraz technik wykrywania i zapobiegania im. Obejmuje luki w wielu systemach i aplikacjach, systemach operacyjnych, bazach danych oraz serwerach WWW. Luki te mogą prowadzić do poważnych konsekwencji – kradzieży danych, całkowitego przejęcia aplikacji lub uniemożliwienia pracy. Ranking CWE/SANS Top 25 ma na celu pomóc organizacjom w ustaleniu priorytetów działań na rzecz zabezpieczenia systemów i sieci.
Co zawiera lista CWE/SANS Top 25?
Aktualnie lista ta zawiera następujące podatności i błędy oprogramowania:
- CWE-787 Out-of-bounds Write – zapis danych poza zamierzonym buforem
- CWE-79 Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’) – nieprawidłowa neutralizacja informacji używanych jako dane wyjściowe na stronach internetowych i udostępnianych użytkownikom
- CWE-89 Improper Neutralization of Special Elements used in an SQL Command (‘SQL Injection’) – błędy wstrzyknięcia
- CWE-20 Improper Input Validation – błędy weryfikacji bezpieczeństwa danych wejściowych
- CWE-125 Out-of-bounds Read – odczyt danych poza zamierzonym buforem
- CWE-78 Improper Neutralization of Special Elements used in an OS Command (‘OS Command Injection’)
- CWE-416 Use After Free – nieprawidłowe wykorzystanie pamięci dynamicznej podczas działania programu
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory (‘Path Traversal’) – oprogramowanie nie neutralizuje odpowiednio nadprogramowych elementów w ścieżce
- CWE-352 Cross-Site Request Forgery (CSRF) – atak zmuszający użytkownika do wykonania niechcianych działań w aplikacji internetowej
- CWE-434 Unrestricted Upload of File with Dangerous Typ – błędy wynikające z możliwości przesyłania plików o niestandardowych typach
- CWE-476 NULL Pointer Deference – awaria aplikacji lub zakończenie jej działania wywołana wskaźnikiem o wartości null
- CWE-502 Deserialization of Untrusted Data – aplikacja deserializuje niezaufane dane bez weryfikacji poprawności wyników
- CWE-190 Integer Overflow or Wraparound
- CWE-287 Improper Authentication – błędy autoryzacji oraz uwierzytelniania
- CWE-798 Use of Hard-coded Credentials
- CWE-862 Missing Authorization – błędy autoryzacji
- CWE-77 Improper Neutralization of Special Elements used in a Command (‘Command Injection’) – niepoprawna neutralizacja elementów, które mogłyby zmodyfikować polecenie wysyłane do komponentu podrzędnego
- CWE-306 Missing Authentication for Critical Function – błędy autoryzacji dla krytycznych funkcji
- CWE-119 Improper Restriction of Operations within the Bounds of a Memory Buffer – błędy wynikające z niewystaczającego ograniczenia w buforze pamięci
- CWE-276 Incorrect Default Permissions – nieprawidłowe uprawnienia domyślne
- CWE-918 Server-Side Request Forgery (SSRF) – fałszowanie żądań po stronie serwera
- CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization (‘Race Condition’)
- CWE-400 Uncontrolled Resource Consumption – niekontrolowane zużycie zasobów
- CWE-611 Improper Restriction of XML External Entity Reference
- CWE-94 Improper Control of Generation of Code (‘Code Injection’)
OWASP Top 10 vs CWE/SANS Top 25 – Którym rankingiem warto się kierować?
Oba rankingi należy traktować na równi. Jeden z nich nie jest lepszy od drugiego. Listy te zostały opracowane, aby pomóc programistom i specjalistom ds. bezpieczeństwa w firmach skupić się na najpowszechniejszych i najbardziej krytycznych zagrożeniach. Najlepszym pomysłem będzie podążanie za obiema listami, ponieważ mimo że niektóre podatności pokrywają się, rankingi OWASP Top 10 oraz CWE/SANS Top 25 uzupełniają się.
Potrzebujesz konsultacji w temacie cyberbezpieczeństwa?
Napisz do nas korzystając z formularza na stronie. Jesteśmy przekonani, że skuteczna ochrona jest możliwa bez obniżania wydajności firmowych komputerów oraz kosztownych inwestycji w infrastrukturę działy IT. Pomożemy Ci zabezpieczyć Twoje zasoby.