Retrospektywa
Skala, skład i struktura cyberzagrożeń dla aplikacji szybko ewoluują. Przez długie lata użytkownicy uzyskiwali dostęp do aplikacji internetowych za pomocą popularnych przeglądarek. W każdej chwili konieczne było wsparcie 2-5 przeglądarek internetowych, a zestaw standardów rozwoju i testowania aplikacji webowych był dość ograniczony. Na przykład, prawie wszystkie bazy danych były budowane przy użyciu SQL. Niestety, po krótkim czasie hakerzy nauczyli się wykorzystywać aplikacje internetowe do kradzieży, usuwania lub modyfikacji danych. Uzyskiwali nielegalny dostęp i nadużywali możliwości aplikacji, stosując różnorodne techniki, w tym oszustwa użytkowników aplikacji, wstrzykiwanie i zdalne uruchamianie kodu. Wkrótce na rynku pojawiły się komercyjne środki ochrony aplikacji internetowych, nazwane Web Application Firewalls (WAF), a społeczeństwo zareagowało stworzeniem otwartego projektu zapewniającego bezpieczeństwo aplikacji internetowych, Open Web Application Security Project (OWASP), mającego na celu określenie i utrzymanie standardów oraz metodologii tworzenia bezpiecznych aplikacji.
Podstawowa ochrona aplikacji
jest punktem wyjścia do zapewnienia ochrony aplikacji i zawiera wykaz najniebezpieczniejszych zagrożeń oraz nieprawidłowych konfiguracji, które mogą prowadzić do podatności aplikacji, a także taktyki wykrywania i odpierania ataków. OWASP Top 10 jest uznawanym standardem w branży cyberbezpieczeństwa aplikacji na całym świecie i definiuje podstawową listę funkcji, które powinien posiadać system ochrony aplikacji internetowych (WAF).
Ponadto funkcjonalność WAF powinna uwzględniać inne powszechne ataki na aplikacje internetowe, w tym ataki typu cross-site request forgery (CSRF), kliknięcia (Clickjacking), skrobanie stron internetowych (web scraping) oraz zdalne lub lokalne włączenie plików (RFI/LFI).
Zagrożenia i wyzwania w zapewnieniu bezpieczeństwa nowoczesnych aplikacji
Obecnie nie wszystkie aplikacje są dostępne w wersji sieciowej. Istnieją aplikacje chmurowe, aplikacje mobilne, interfejsy API, a w najnowszych architekturach nawet indywidualne funkcje oprogramowania. Wszystkie te typy aplikacji muszą być synchronizowane i kontrolowane, ponieważ tworzą, zmieniają i przetwarzają nasze dane. Wraz z pojawieniem się nowych technologii i paradygmatów pojawiają się nowe trudności i zadania na wszystkich etapach cyklu życia aplikacji. Obejmuje to integrację rozwoju i eksploatacji (DevOps), kontenery, Internet Rzeczy (IoT), narzędzia z otwartym kodem źródłowym, interfejsy API i inne.
Rozproszone rozmieszczenie aplikacji i różnorodność technologii stwarzają złożone i skomplikowane zadania nie tylko dla specjalistów ds. bezpieczeństwa informacyjnego, ale także dla producentów rozwiązań zabezpieczeń, którzy nie mogą już polegać na jednolitym podejściu. Środki ochrony aplikacji muszą uwzględniać specyfikę biznesową, aby zapobiegać błędnym alarmom i zakłóceniom jakości usług dla użytkowników.
Ostatecznym celem hakerów zazwyczaj jest kradzież danych lub zakłócenie dostępności usług. Przestępcy również zyskują przewagę w toku ewolucji technologicznej. Po pierwsze, rozwój nowych technologii tworzy więcej potencjalnych luk i podatności. Po drugie, w ich arsenale pojawia się więcej narzędzi i wiedzy do omijania tradycyjnych środków ochrony. Znacząco zwiększa to tzw. 'powierzchnię ataku' oraz podatność organizacji na nowe ryzyka. Polityki bezpieczeństwa muszą być nieustannie aktualizowane w odpowiedzi na zmiany w technologiach i aplikacjach.
W związku z tym, aplikacje muszą być chronione przed stale rosnącą różnorodnością metod i źródeł ataków, a reakcja na automatyczne ataki powinna odbywać się w czasie rzeczywistym na podstawie informowanych decyzji. W rezultacie zwiększają się koszty operacyjne i nakład pracy ręcznej w obliczu osłabionej pozycji w zakresie bezpieczeństwa.
Zadanie nr 1: Zarządzanie botami
Ponad 60% ruchu w internecie generują boty, a połowa z tego to ruch 'zły' (według danych ). Organizacje inwestują w zwiększenie przepustowości sieci, w zasadzie obsługując symulowany ruch. Dokładne rozróżnienie między rzeczywistym użytkownikami a ruchem botów, a także między „dobrymi” botami (np. roboty indeksujące i usługi porównywania cen) a „złymi” botami może prowadzić do znacznych oszczędności i poprawy jakości usług dla użytkowników.
Boty nie zamierzają ułatwiać tego zadania i mogą naśladować zachowanie rzeczywistych użytkowników, omijać CAPTCHA i inne przeszkody. Co więcej, w przypadku ataków wykorzystujących dynamiczne adresy IP, ochrona oparta na filtracji po adresie IP staje się nieskuteczna. Często wykorzystywane są narzędzia open-source (na przykład Phantom JS), które mogą realizować klientski JavaScript w celu przeprowadzania ataków typu brute-force, credential stuffing, ataków DDoS oraz automatycznych ataków botów.
Aby skutecznie zarządzać ruchem botów, wymagana jest unikalna identyfikacja jego źródła (jak odcisk palca). Ponieważ w przypadku ataku botów powstaje wiele zapisów, jego odcisk pozwala na wykrywanie podejrzanej aktywności i przyznawanie punktów, na podstawie których system ochrony aplikacji podejmuje informowaną decyzję – zablokować / zezwolić – z minimalnym wskaźnikiem fałszywych alarmów.
Zadanie nr 2: Ochrona API
Wiele aplikacji zbiera informacje i dane od usług, z którymi współpracują za pośrednictwem API. Przy przesyłaniu poufnych danych za pośrednictwem API ponad 50% organizacji nie przeprowadza ani weryfikacji, ani ochrony API w celu wykrywania cyberataków.
Przykłady zastosowania API:
- Integracja Internetu rzeczy (IoT)
- Interakcja między maszynami
- Środowiska bezserwerowe
- Aplikacje mobilne
- Aplikacje zarządzane zdarzeniami
Luki API są podobne do luk aplikacji i obejmują iniekcje, ataki protokołów, manipulacje parametrami, przekierowania oraz ataki botów. Wyodrębnione bramy API pozwalają zapewnić zgodność usług aplikacji, które komunikują się przez API. Nie zapewniają jednak pełnej bezpieczeństwa aplikacji, jak to umożliwia WAF z niezbędnymi narzędziami bezpieczeństwa, takimi jak analiza nagłówków HTTP, lista kontroli dostępu warstwy 7 (ACL), analiza i weryfikacja ładunku JSON/XML oraz ochrona przed wszelkimi lukami z listy OWASP Top 10. Osiąga się to poprzez inspekcję kluczowych wartości API za pomocą pozytywnych i negatywnych modeli.
Zadanie nr 3: Atak typu Denial of Service
Stary wektor ataków — atak typu Denial of Service (DoS) — nadal udowadnia swoją skuteczność w atakach na aplikacje. Cyberprzestępcy dysponują całym zestawem skutecznych technik zakłócania działania usług aplikacji, w tym floodami HTTP lub HTTPS, atakami „low-and-slow” (takimi jak SlowLoris, LOIC, Torshammer), atakami z wykorzystaniem dynamicznych adresów IP, przepełnieniem bufora, atakami brute-force oraz wieloma innymi. Wraz z rozwojem Internetu rzeczy i pojawieniem się botnetów IoT, ataki na aplikacje stały się głównym kierunkiem ataków DDoS. Większość WAF z monitorowaniem stanu połączeń może stawić czoła tylko ograniczonemu wolumenowi obciążenia. Mogą jednak inspekcjonować strumienie ruchu HTTP/S oraz eliminować ruch ataków i złośliwe połączenia. Po wykryciu ataku nie ma sensu ponowne przepuszczanie tego ruchu. Ponieważ przepustowość WAF do odbicia ataków jest ograniczona, konieczne jest dodatkowe rozwiązanie na perymetrze sieci do automatycznego blokowania kolejnych „złych” pakietów. W tym scenariuszu ochrony oba rozwiązania powinny mieć zdolność współpracy ze sobą w celu wymiany informacji o atakach.

Rys. 1. Organizacja kompleksowej ochrony sieci i aplikacji na przykładzie rozwiązań Radware
Zadanie nr 4: Ciągła ochrona
Aplikacje często ulegają zmianom. Metodologie opracowywania i wdrażania, takie jak ciągłość aktualizacji, oznaczają, że modyfikacje odbywają się bez ludzkiego udziału i kontroli. W takich dynamicznych warunkach trudno jest utrzymać odpowiednie zasady bezpieczeństwa bez dużej liczby fałszywych alarmów. Aplikacje mobilne są aktualizowane znacznie częściej niż aplikacje internetowe. Aplikacje stron trzecich mogą się zmieniać bez Twojej wiedzy. Niektóre organizacje dążą do uzyskania większej kontroli i wizualizacji, aby śledzić potencjalne ryzyko. Jednak nie zawsze jest to osiągalne, a niezawodna ochrona aplikacji musi wykorzystywać możliwości uczenia maszynowego do uwzględnienia i wizualizacji dostępnych zasobów, analizy potencjalnych zagrożeń, tworzenia i optymalizacji polityk bezpieczeństwa w przypadku modyfikacji aplikacji.
Wnioski
W miarę jak aplikacje odgrywają coraz ważniejszą rolę w codziennym życiu, stają się głównym celem dla hakerów. Potencjalne łupy dla przestępców i potencjalne straty dla firm są ogromne. Złożoność zadania zapewnienia bezpieczeństwa aplikacji nie może być przeceniona, biorąc pod uwagę liczbę i różnorodność aplikacji oraz zagrożeń.
Na szczęście znajdujemy się w momencie, gdy sztuczna inteligencja może nam pomóc. Algorytmy oparte na uczeniu maszynowym zapewniają adaptacyjną ochronę w czasie rzeczywistym przed najbardziej zaawansowanymi zagrożeniami cybernetycznymi skierowanymi na aplikacje. Automatycznie aktualizują również polityki bezpieczeństwa dla aplikacji internetowych, mobilnych i chmurowych — a także API — bez fałszywych alarmów.
Trudno jest dokładnie przewidzieć, jak będzie wyglądać nowe pokolenie zagrożeń cybernetycznych dla aplikacji (możliwe, że również opartych na uczeniu maszynowym). Jednak organizacje z pewnością mogą podjąć kroki w celu ochrony danych klientów, własności intelektualnej i zapewnienia dostępności usług, co przyniesie dużą korzyść dla biznesu.
Skuteczne podejścia i metody zapewnienia bezpieczeństwa aplikacji, główne typy i wektory ataków, strefy ryzyka oraz luki w cyberochronie aplikacji webowych, a także doświadczenia światowe i najlepsze praktyki przedstawione są w badaniu i raporcie Radware.”.
Źródło: habr.com
