OWASP AppSensor – opis mechanizmu

OWASP AppSensor – opis mechanizmu

owasp-opis
Źródło

OWASP

OWASP (Open Web Application Security Project) jest to organizacja non-profit mająca na celu analizę zagadnień związanych z bezpieczeństwem aplikacji i opracowywanie rozwiązań, które byłyby użyteczne zarówno dla organizacji jak i dla pojedynczych twórców oprogramowania. Organizacja ta działa otwarcie, a wszystkie materiały są darmowe i ogólnodostępne. Nie jest ona także związna z żadnym dostawcą oprogramowania i pozwala na niezależność w tym zakresie. Jej główną siłą napędową jest społeczność ludzi zainteresowanych tematem bezpieczeństwa. Tworzą oni narzędzia wspomagające zabezpieczanie i testowanie zabezpieczeń systemów komputerowych. Znane projekty to:

  • OWASP Zed Attack Proxy – narzędzie do automatycznego testowania bezpieczeństwa systemów
  • OWASP Top Ten – lista największych zagrożeń dla aplikacji webowych wraz z metodami zapobiegania im
  • OWASP OWTF – narzędzie do automatyzacji testów penetracyjnych

Wybór AppSensor

Od pewnego czasu interesuję się tematem bezpieczeństwa i dzięki temu trafiłem na ogranizację OWASP. Jest ona nastawiona w dość dużym stopniu na środowisko Java. Tak więc pisząc w .NET mogę korzystać z gotowych narzędzi OWASP, zaś korzystanie z bibliotek jest już dla mnie niemożliwe. Istnieją czasem porty bibliotek na platformę .NET, jednak nie są one dopasowane do tego środowiska. Projekt AppSensor zainteresował mnie swoją prostotą i możliwościami, które są z nim związane. Dlatego też postanowiłem zająć się jego implementacją dopasowaną dla webowych mechanizmów .NET w szczególności do WebAPI, ale z możliwością samodzielnego dostosowania do dowolnego frameworku np. Nancy czy ServiceStack.

AppSensor

Pomysł biblioteki AppSensor polega na tym, że w środowisku produkcyjnym aplikacja cały czas przetwarza różnego rodzaju informacje i akcje. Dzięki umieszczeniu wewnątrz kodu aplikacji odpowiednich punktów detekcji podejrzanych zachowań, jesteśmy w stanie na bieżąco, niemalże w czasie rzeczywistym, reagować na pojawiające się zagrożenia. W klasycznym podejściu ataki wykrywamy i blokujemy głównie na wejściu do aplikacji. Umożliwia nam to wykrycie podejrzanych zachowań takich jak wysłanie niepoprawnych ciągów znaków w requestach HTTP, co może sygnalizować próbę użycia np. SQL Injection. Nie biorą one jednak pod uwagę kontekstu w jakim wykonywane są te zapytania. System wykrywania, znając kontekst biznesowy konkretnego zapytania, jest w stanie wykryć więcej nadużyć, z większą trafnością. Jest na przykład w stanie wykryć zbyt częste próby logowania do aplikacji lub próby naruszenia uprawnień.

Podsumowując możemy powiedzieć, że AppSensor obejmuje wykrywanie nadużyć i reagowanie na zagrożenia:

  • zależne od kontekstu,
  • specyficzne dla danej aplikacji,
  • dynamicznie,
  • reagując w czasie rzeczywistym,
  • z możliwością adaptacji zasad reakcji.

Zasada działania

Cały mechanizm jest zasadniczo prosty w użyciu i składa się z trzech kroków:

  1. Detekcja – rozpoznanie nietypowego zachowania.
  2. Identyfikacja próby ataku – ocenienie czy wykryte zachowanie jest poza zakresem dopuszczalnych akcji użytkownika za pomocą interfejsu lub API.
  3. Reakcja – zastosowanie środka informującego lub zapobiegającego dalszym nadużyciom.

Identyfikacja ataku bazuje na prostym założeniu, że w większości aplikacji użytkowych, zbiór akcji dopuszczalnych jest rozłączny ze zbiorem akcji będących zagrożniem.

application_use

Kluczem jest więc odpowiednie odseparowanie tych 2 rodzajów zachowań. W podstawowej wersji tego mechanizmu można skorzystać z gotowego zbioru najpopularniejszych punktów detekcji zagrozeń https://www.owasp.org/index.php/AppSensor_DetectionPoints.

Bardzo dobrze przemówiło do mnie porównanie aplikacji z systemem wczesnego wykrywania zagrożeń i bez niego do banku zabezpieczonego i zarządzanego jak niektóre projekty informatyczne.

bank_safe
bank_unsafe

Źródło: https://www.owasp.org/images/0/06/Defend_Yourself-Integrating_Real_Time_Defenses_into_Online_Applications-Michael_Coates.pdf