OWASP 10 największych zagrożeń bezpieczeństwa | Przegląd

Spis treści

Przegląd OWASP Top 10

Co to jest OWASP?

OWASP to organizacja non-profit zajmująca się edukacją w zakresie bezpieczeństwa aplikacji internetowych. 

Materiały szkoleniowe OWASP są dostępne na ich stronie internetowej. Ich narzędzia są przydatne do poprawy bezpieczeństwa aplikacji internetowych. Obejmuje to dokumenty, narzędzia, filmy i fora.

OWASP Top 10 to lista, która podkreśla najważniejsze problemy związane z bezpieczeństwem dzisiejszych aplikacji internetowych. Zalecają, aby wszystkie firmy uwzględniały ten raport w swoich procesach w celu ograniczenia zagrożeń bezpieczeństwa. Poniżej znajduje się lista zagrożeń bezpieczeństwa uwzględnionych w raporcie OWASP Top 10 2017.

SQL Injection

Wstrzyknięcie SQL ma miejsce, gdy osoba atakująca wysyła nieodpowiednie dane do aplikacji internetowej w celu zakłócenia działania programu w aplikacji.

Przykład wstrzyknięcia SQL:

Osoba atakująca może wprowadzić zapytanie SQL do formularza wejściowego, który wymaga nazwy użytkownika w postaci zwykłego tekstu. Brak zabezpieczenia formularza wejściowego spowoduje wykonanie zapytania SQL. Ten jest skierowany jako iniekcja SQL.

Aby chronić aplikacje internetowe przed wstrzyknięciem kodu, upewnij się, że twoi programiści stosują walidację danych przesyłanych przez użytkowników. Walidacja odnosi się tutaj do odrzucenia nieprawidłowych danych wejściowych. Menedżer bazy danych może również ustawić kontrole w celu zmniejszenia ilości Informacja które mogą ujawniać się w ataku iniekcyjnym.

Aby zapobiec iniekcji SQL, OWASP zaleca przechowywanie danych oddzielnie od poleceń i zapytań. Preferowaną opcją jest użycie zabezpieczenia API aby uniemożliwić korzystanie z interpretera lub przeprowadzić migrację do narzędzi mapowania relacyjnego obiektów (ORM).

Uszkodzone uwierzytelnianie

Luki w zabezpieczeniach uwierzytelniania mogą umożliwić atakującemu dostęp do kont użytkowników i złamanie zabezpieczeń systemu przy użyciu konta administratora. Cyberprzestępca może użyć skryptu, aby wypróbować tysiące kombinacji haseł w systemie, aby zobaczyć, która działa. Po wejściu cyberprzestępcy mogą sfałszować tożsamość użytkownika, dając mu dostęp do poufnych informacji.

W aplikacjach internetowych, które umożliwiają automatyczne logowanie, istnieje luka w zabezpieczeniach związana z uszkodzonym uwierzytelnianiem. Popularnym sposobem naprawienia luk w zabezpieczeniach uwierzytelniania jest użycie uwierzytelniania wieloskładnikowego. Również limit szybkości logowania może być uwzględnionym w aplikacji internetowej, aby zapobiec atakom siłowym.

Narażenie wrażliwych danych

Jeśli aplikacje internetowe nie chronią poufnych osób atakujących, mogą uzyskać do nich dostęp i wykorzystać je dla własnych korzyści. Popularną metodą kradzieży poufnych informacji jest atak on-path. Ryzyko narażenia może być minimalne, gdy wszystkie poufne dane są szyfrowane. Twórcy stron internetowych powinni upewnić się, że żadne poufne dane nie są ujawniane w przeglądarce ani niepotrzebnie przechowywane.

Zewnętrzne jednostki XML (XEE)

Cyberprzestępca może przesłać lub dołączyć złośliwą zawartość XML, polecenia lub kod do dokumentu XML. Dzięki temu mogą przeglądać pliki w systemie plików serwera aplikacji. Po uzyskaniu dostępu mogą wchodzić w interakcje z serwerem w celu przeprowadzania ataków typu server-side request forgery (SSRF)..

Ataki podmiotów zewnętrznych XML mogą być powstrzymany przez umożliwiając aplikacjom internetowym akceptowanie mniej złożonych typów danych, takich jak JSON. Wyłączenie przetwarzania zewnętrznego podmiotu XML zmniejsza również szanse na atak XEE.

Uszkodzona kontrola dostępu

Kontrola dostępu to protokół systemowy, który ogranicza dostęp nieautoryzowanych użytkowników do poufnych informacji. Jeśli system kontroli dostępu zostanie uszkodzony, osoby atakujące mogą ominąć uwierzytelnianie. Daje im to dostęp do poufnych informacji, tak jakby mieli uprawnienia. Kontrolę dostępu można zabezpieczyć, wdrażając tokeny autoryzacyjne podczas logowania użytkownika. Przy każdym żądaniu złożonym przez użytkownika podczas uwierzytelniania, token autoryzacji z użytkownikiem jest weryfikowany, sygnalizując, że użytkownik jest upoważniony do wykonania tego żądania.

Błędna konfiguracja zabezpieczeń

Błędna konfiguracja zabezpieczeń jest częstym problemem bezpieczeństwo cybernetyczne obserwują specjaliści w aplikacjach internetowych. Dzieje się tak w wyniku źle skonfigurowanych nagłówków HTTP, uszkodzonych kontroli dostępu i wyświetlania błędów, które ujawniają informacje w aplikacji internetowej. Błędną konfigurację zabezpieczeń można poprawić, usuwając nieużywane funkcje. Powinieneś także załatać lub zaktualizować swoje pakiety oprogramowania.

Skrypty między lokacjami (XSS)

Luka w zabezpieczeniach XSS występuje, gdy osoba atakująca manipuluje interfejsem API DOM zaufanej witryny internetowej w celu wykonania złośliwego kodu w przeglądarce użytkownika. Wykonanie tego złośliwego kodu często ma miejsce, gdy użytkownik kliknie łącze, które wydaje się pochodzić z zaufanej witryny. Jeśli witryna nie jest chroniona przed luką w zabezpieczeniach XSS, może być skompromitowanym. Złośliwy kod, który jest wykonywany daje atakującemu dostęp do sesji logowania użytkowników, danych kart kredytowych i innych poufnych danych.

Aby zapobiec skryptom międzywitrynowym (XSS), upewnij się, że Twój kod HTML jest dobrze oczyszczony. To może osiągnąć przez wybór zaufanych frameworków w zależności od wybranego języka. Możesz używać języków takich jak .Net, Ruby on Rails i React JS, ponieważ pomagają one analizować i czyścić kod HTML. Traktowanie wszystkich danych od uwierzytelnionych lub nieuwierzytelnionych użytkowników jako niezaufanych może zmniejszyć ryzyko ataków XSS.

Niezabezpieczona deserializacja

Deserializacja to transformacja serializowanych danych z serwera do obiektu. Deserializacja danych jest częstym zjawiskiem w tworzeniu oprogramowania. To jest niebezpieczne, gdy data jest deserializowany z niezaufanego źródła. To może potencjalnie narażaj swoją aplikację na ataki. Niebezpieczna deserializacja ma miejsce, gdy deserializowane dane z niezaufanego źródła prowadzą do ataków DDOS, ataków na zdalne wykonanie kodu lub obejścia uwierzytelniania.

Aby uniknąć niebezpiecznej deserializacji, praktyczną zasadą jest nigdy nie ufać danym użytkownika. Każde dane wejściowe użytkownika powinny być leczonym as potencjalnie złośliwy. Unikaj deserializacji danych z niezaufanych źródeł. Upewnij się, że funkcja deserializacji do być użytym w Twojej aplikacji internetowej jest bezpieczny.

Używanie komponentów ze znanymi lukami w zabezpieczeniach

Biblioteki i frameworki znacznie przyspieszyły tworzenie aplikacji internetowych bez konieczności wymyślania koła na nowo. Zmniejsza to nadmiarowość w ocenie kodu. Umożliwiają programistom skupienie się na ważniejszych aspektach aplikacji. Jeśli atakujący odkryją exploity w tych frameworkach, zrobi to każda baza kodu korzystająca z tego frameworka być skompromitowanym.

Twórcy komponentów często oferują poprawki zabezpieczeń i aktualizacje dla bibliotek komponentów. Aby uniknąć luk w zabezpieczeniach komponentów, powinieneś nauczyć się aktualizować swoje aplikacje najnowszymi poprawkami bezpieczeństwa i aktualizacjami. Nieużywane elementy powinny zostać usuniętym z aplikacji do wycinania wektorów ataku.

Niewystarczające rejestrowanie i monitorowanie

Rejestrowanie i monitorowanie są ważne, aby pokazać działania w aplikacji internetowej. Rejestrowanie ułatwia śledzenie błędów, monitor loginy i działania użytkowników.

Niewystarczające rejestrowanie i monitorowanie występuje, gdy zdarzenia krytyczne dla bezpieczeństwa nie są rejestrowane prawidłowo. Atakujący wykorzystują to, aby przeprowadzać ataki na Twoją aplikację, zanim pojawi się jakakolwiek zauważalna reakcja.

Rejestrowanie może pomóc Twojej firmie zaoszczędzić pieniądze i czas, ponieważ mogą to zrobić Twoi programiści z łatwością znajdź błędy. To pozwala im skupić się bardziej na rozwiązywaniu błędów niż na ich wyszukiwaniu. W efekcie rejestrowanie może pomóc w utrzymaniu ciągłości działania witryn i serwerów bez żadnych przestojów.

Wnioski

Dobry kod nie jest właśnie jeśli chodzi o funkcjonalność, chodzi o zapewnienie bezpieczeństwa użytkownikom i aplikacji. Lista OWASP Top 10 to lista najbardziej krytycznych zagrożeń dla bezpieczeństwa aplikacji, która jest doskonałym darmowym źródłem dla programistów do pisania bezpiecznych aplikacji internetowych i mobilnych. Szkolenie programistów w Twoim zespole w zakresie oceny i rejestrowania ryzyka może w dłuższej perspektywie zaoszczędzić czas i pieniądze Twojego zespołu. Jeśli chcesz dowiedz się więcej o tym, jak wyszkolić swój zespół na OWASP Top 10 kliknij tutaj.