Listę 10 najpopularniejszych podatności
1. Broken Access Control
Nieprawidłowa kontrola dostępu to słabość, dzięki której atakujący uzyskują dostęp do kont użytkowników. Haker podszywa się tutaj pod użytkownika lub administratora w systemie i uzyskuje dostęp do danych oraz wrażliwych plików. Źle skonfigurowana kontrola dostępu może umożliwić atakującemu zmiany na przykład w panelu administracyjnym, panelu sterowania strony internetowej, dostępie przez FTP / SFTP / SSH.
Tej luce można zaradzić na następujące sposoby:
Wdrożyć interaktywne rozwiązanie do testowania bezpieczeństwa aplikacji w celu wykrywania fałszerstw między witrynami lub niezabezpieczonego przechowywania poufnych danych
Przeprowadzić testy penetracyjne w celu uzupełnienia działań IAST
Usunąć konta, które nie są już aktywne
Przeprowadzać regularne audyty i kontrole dostępu
Używać właściwej metody zarządzania sesją i zarządzania dostępem
2. Cryptographic Failures
Błędy kryptograficzne występują, gdy przechowywane lub przesyłane dane są w jakiś sposób zagrożone i możliwe do odczytania.
Oszustwa związane z kartami kredytowymi lub kradzież tożsamości są często wynikiem błędów kryptograficznych. Takie problemy występują, gdy dane są przesyłane w postaci jawnego tekstu lub używane są przestarzałe algorytmy szyfrujące. Niepoprawne zarządzanie kluczami i techniki rotacji również bywają odpowiedzialne za tego typu luki.
Rozwiązania mające na celu usunięcie tej podatności są następujące:
Wyłączyć autouzupełnianie w formularzach, które zbierają dane
Zmniejszyć rozmiar obszaru powierzchni danych
Korzystać z szyfrowania danych podczas przesyłania i przechowywania
Korzystać z najbardziej zaawansowanych metod szyfrowania
Dezaktywować buforowanie w formularzach zbierających dane
3. Injection
Luki w zabezpieczeniach polegające na wstrzykiwaniu odnoszą się do wstrzykiwania wrogich danych do interpretera za pośrednictwem SQL, OS, NoSQL lub LDAP. Ataki wstrzykujące oszukują silnik przetwarzania kodu, aby skłonił aplikację do wygenerowania niezamierzonych poleceń lub wykazał zachowania, dla których aplikacja nie została pierwotnie zaprojektowana. Aplikacje przyjmujące parametry jako dane wejściowe są podatne na ataki iniekcyjne. Aby zapobiec takim atakom, można zastosować następujące podejścia:
Dołączyć narzędzia SAST i IAST do strumienia CI/CD
Oddzielić polecenia od danych, aby uniknąć niepotrzebnego wykonywania poleceń wynikającego z narażenia na ataki
Używać zapytań sparametryzowanych
Używać bezpiecznego API zamiast eliminatora
Zastosować sprawdzanie poprawności po stronie serwera i system do wykrywania włamań, aby identyfikować podejrzane zachowania po stronie klienta
4. Insecure Design
Odnosi się to do wszystkich wad związanych ze złym projektem technicznym aplikacji. Ta kategoria obejmuje modelowanie zagrożeń, bezpieczne wzorce projektowe i architektury referencyjne.
Rozwiązania dotyczące zwiększenia bezpieczeństwa w tym zakresie:
Zastosować bezpieczny, kontrolowany cykl rozwoju produktu
Stworzyć bibliotekę gotowych do użycia bezpiecznych wzorców projektowych
Zintegrować kontrole wiarygodności na każdym poziomie aplikacji
Wdrożyć modelowanie zagrożeń na potrzeby kluczowego uwierzytelniania, kontroli dostępu, logiki biznesowej i przepływów kluczy
Ograniczyć zużycie zasobów użytkowników i usług
5. Security Misconfiguration
Błędna konfiguracja zabezpieczeń wśród 10 największych luk w zabezpieczeniach jest luką najczęstszą. Akceptowanie niezabezpieczonych ustawień domyślnych, niekompletnych konfiguracji, rozwlekłych komunikatów o błędach zawierających poufne informacje oraz źle skonfigurowanych odbiorców HTTP są odpowiedzialne za błędną konfigurację zabezpieczeń.
Rozwiązania dotyczące błędnej konfiguracji zabezpieczeń:
Korzystać z szablonów zgodnych z zasadami bezpieczeństwa organizacji
Używać architektury aplikacji podzielonej na segmenty, aby zmniejszyć ryzyko
Wyeliminować nieużywane funkcje i usługi
Przeprowadzać ciągłe monitorowanie zasobów chmury, serwerów i aplikacji w celu wykrycia błędnych konfiguracji zabezpieczeń
6. Vulnerable and Outdated Components
Komponenty open source mogą zawierać luki stanowiące poważne zagrożenie dla bezpieczeństwa aplikacji. Wrażliwe komponenty są często główną przyczyną naruszenia bezpieczeństwa danych.
Rozwiązania minimalizujące ryzyko związane z wrażliwymi i przestarzałymi komponentami:
Komponenty będące częścią firmowych frameworków powinny podlegać zarządzaniu konfiguracją
Skaner aplikacji powinien być w stanie zidentyfikować wszystkie komponenty, które należy monitorować
Automatyzacja przepływu pracy związanej z zarządzaniem poprawkami
Cykliczne skanowania w oparciu o bazę danych luk w zabezpieczeniach wzbogaconą o dane analizy zagrożeń
7. Identification and Authentication Failures
Atakujący przechwytują hasła, tokeny sesji lub klucze bezpieczeństwa, gdy aplikacje nieprawidłowo wykonują funkcje związane z zarządzaniem sesją lub uwierzytelnianiem użytkownika. Prowadzi to do kradzieży tożsamości. Błędy identyfikacji i uwierzytelniania mogą również zagrażać bezpieczeństwu innych zasobów w tej samej sieci.
Rozwiązania problemów z kradzieżą tożsamości:
Zastosować uwierzytelnianie wieloskładnikowe
Użytkownicy z uprawnieniami administratora nie powinni używać poświadczeń domyślnych
Monitorować i korelować wszystkie nieudane próby logowania
Wdrożyć bezpieczny menedżer sesji i nie umieszczać identyfikatorów sesji w adresach URL
8. Software and Data Integrity Failures
Błędy w integralności oprogramowania i danych mają miejsce, gdy kod i infrastruktura nie są w stanie chronić przed naruszeniami integralności. Złośliwy kod i nieautoryzowany dostęp do kodu to zagrożenia związane z tą luką. Programy zawierające wtyczki, biblioteki lub moduły z niezaufanych źródeł są podatne na zmiany w integralności. Możliwości automatycznej aktualizacji powodują, że aktualizacje są wdrażane bez niezbędnych kontroli integralności.
Rozwiązania dotyczące problemów z oprogramowaniem i integralnością danych:
Implementacja podpisów cyfrowych, aby upewnić się, że program nie został zmanipulowany
Wdrożenie procedury przeglądu modyfikacji kodu i konfiguracji
Weryfikacja, czy biblioteki i zależności korzystają z zaufanych repozytoriów
Weryfikacja, czy strumień CI/CD obejmuje odpowiednią segregację, konfigurację i kontrolę dostępu
9. Security Logging and Monitoring Failures
Niepowodzenia w rejestrowaniu i monitorowaniu narażają aplikację na ataki. Sesje i nieudane logowania, jeśli nie są monitorowane, czynią aplikację podatną.
Rozwiązania zapobiegające błędom rejestrowania i monitorowania pod kątem bezpieczeństwa:
Przeprowadzenie testów penetracyjnych, aby przestudiować raporty i wykryć ewentualne niedociągnięcia
Tworzenie logów w formacie, który mogą z łatwością wykorzystywać rozwiązania do zarządzania i wykrywania zdarzeń
Implementacja mechanizmu ostrzegania i monitorowania w celu wykrywania podejrzanych działań
10. Server-Side Request Forgery
Jest to często wynikiem pobierania przez aplikację zdalnego zasobu bez sprawdzania poprawności adresu URL podanego przez użytkownika. Złożone architektury i coraz częstsze korzystanie z usług w chmurze doprowadziły w ostatnich latach do fałszowania żądań po stronie serwera.
Rozwiązania dotyczące fałszowania żądań po stronie serwera:
Egzekwować zasadę firewall „deny by default”.
Ustalić własność i cykl życia reguł zapory w oparciu o aplikacje
Rejestrować wszystkie zaakceptowane i zablokowane przepływy sieciowe na zaporach
Oczyścić dane wejściowe dostarczone przez klienta
Zapewnić spójność adresów URL
A jakie są Twoje topowe podatności w roku 2022 - daj znać w komentarzach.
Źródło:
Comments