Interfejs API podatny na cyberataki

Nowoczesna technologia sprawiła, że jesteśmy połączeni z całym światem. Rozbudowana sieć jaką jest Internet sprawia, że mamy wszystko w zasięgu ręki. Wystarczy włączyć laptopa, wziąć do ręki smartfon czy tablet i możemy logować się do mediów społecznościowych, robić zakupy, rezerwować lot, logować się do konta w banku czy zagrać w ulubioną grę.

Jeszcze nigdy w historii ludzkości dostęp do informacji nie był tak prosty. W każdym miejscu i o każdej porze mamy możliwość łączenia się z Internetem. Co sprawia, że w tak szybki sposób możemy łączyć się z całym światem? Co pozwala nam na szybki przepływ informacji? 

Niedoceniony bohater

Szybki i prosty sposób komunikacji programów komputerowych i aplikacji zawdzięczamy rozwiązaniu API. Ten niedoceniony bohater to nic innego jak interfejs programistyczny aplikacji. Jest on mechanizmem, który działa pod warstwą wizualną programu lub aplikacji i sprawia, że jako użytkownicy możemy wykonać oczekiwaną przez nas interakcję. Interakcją może być logowanie, tąpnięcie lub scrollowanie. To dzięki API jest możliwa rezerwacja lotu, stolika w restauracji czy w hotelu oraz łączenie się z portalami społecznościowymi i innymi witrynami.


Czym właściwie jest API?

API czyli Application Programming Interface jest komunikatorem. Przyjmuje polecenie wykonania określonej interakcji, wysyła sygnał do systemu i wraca z żądaną odpowiedzią. API to prosty sposób komunikacji z różnymi programami z wykorzystaniem ustalonych protokołów (JSON-RPC, XML-RPC). API jest niewidoczne dla użytkownika, ponieważ znajduje się pod warstwą wizualną. Bardzo często służy do przesyłania kluczowych i wrażliwych danych

Bezpieczeństwo API

Interfejsy API znajdują się wszędzie. Są wykorzystywane przez branże z sektora e-commerce, telekomunikacyjnego oraz rozrywki. Szeroki zakres zastosowań i ogromna ilość przechowywanych danych sprawia, że API jest źródłem cennych informacji dla cyberprzestępców. 
  
Najczęściej komunikacja za pomocą API jest niewidoczna dla końcowego odbiorcy. Sprawia to, że w większości przypadków bezpieczeństwo jest zaniedbywane przez deweloperów. Ochrona interfejsu programistycznego aplikacji jest ogromnym wyzwaniem dla specjalistów ds. cyberbezpieczeństwa. Elastyczność i skalowalność API posiada również wiele luk w zabezpieczeniach. Szeroki zakres zagrożeń prowadzi do częstych ataków hakerskich na warstwę aplikacyjną. Właśnie dlatego API znalazło się na liście OWASP wśród 10 największych zagrożeń dla warstwy aplikacyjnej w 2017 roku. 

OWASP A10 - Under-protected APIs

Sektory narażone na atak

Ataki na warstwę aplikacyjną zdarzają się coraz częściej. Szczególnie narażone są nie nie branże przechowujące wrażliwe dane. Interfejs API w branży e-commerce, często dosięgają ataki typu brute-force. Ich celem jest identyfikacja loginów i przejęcie kont użytkowników, i w konsekwencji kradzież ich mienia. W tym przypadku, znacznym utrudnieniem dla wielu systemów WAF jest to, że specyfika ruchu jest podobna do tego, który generują ”złe boty”, to znaczy brak obsługi ciasteczek, ruch wychodzi z centrów danych lub brak odwołań do treści statycznych (plików graficznych, CSS oraz Javascript).

Internet Rzeczy również jest bardzo silnie skorelowany z interfejsem API. IoT udostępnia urządzenia i systemy, które pozwalają na zdalne monitorowanie i zarządzanie inteligentnymi domami. Przejęcie kontroli nad zasobami przechowującymi takie informacje może być katastrofalne w skutkach. W tym przypadku, atak na interfejs programistyczny aplikacji całkowicie odcina ludzi od zdalnej usługi zarządzania inteligentnym domem. Sposób komunikacji oparty głównie na API jest bezustannie narażony na atak. By się przed nimi chronić i zapewnić bezpieczeństwo swoim klientom, warto skorzystać z rozwiązań wykorzystujących Machine Learning. Pozwoli ono dokładnie zweryfikować poprawność działania usługi oraz zapewnić ochronę przed atakami na interfejs API.         

Podatność API na zagrożenia 

Z jednej strony mamy nowoczesne rozwiązania oparte na zaawansowanych algorytmach, a z drugiej wyzwania dla bezpieczeństwa. Złożony system API pozwala udzielać odpowiedzi niemal na każde zapytanie. Niestety dostęp do odpowiednich zabezpieczeń i testów wykrywających luki jest ograniczony. W API istnieją te same rodzaje zagrożeń, co w tradycyjnej aplikacji. Należą do nich m.in. problemy z szyfrowaniem, kontrolą dostępu, metodą uwierzytelniania czy wstrzykiwaniem błędnych konfiguracji.        

Ryzyko w interfejsie API

Największym wyzwaniem w interfejsie API jest ochrona przesyłanych danych. Cyberprzestępcy mogą naruszyć uprawnienia dostępu, przejąć sesję i ostatecznie oszukać API. Ich celem jest najczęściej przechwycenie wrażliwych danych. Hakerzy manipulują danymi przekazywanymi do API lub używają botów, które mogą być źródłem ataku DDoS.

Interfejs API jest przede wszystkim przeznaczony dla aplikacji, nie dla użytkownika końcowego. Zastosowanie przykładowo walidacji XML/JSON lub innych przekazywanych parametrów może być pomocne w testowaniu i monitorowaniu bezpieczeństwa API. Jednak złożoność interfejsu programistycznego aplikacji sprawia, że automatyzacja testów bezpieczeństwa stanowi nie lada wyzwanie. 

Ochrona warstwy aplikacyjnej

Bezpieczeństwo interfejsu API w dużej mierze zależy od zrozumienia modelu zagrożenia, a następnie zapewnienia właściwej ochrony. Przede wszystkim należy upewnić się, że posiadamy silne uwierzytelnienia dla interfejsu API, a wszystkie poświadczenia i klucze są właściwie chronione. Bardzo ważna jest również właściwa konfiguracja parserów, implementacja kontroli dostępów oraz obsługa wszelkich wyjątków. Warto wprowadzić mechanizmy limitowania liczby zapytań dla poszczególnych użytkowników (Rate limiting), ograniczyć liczbę nieudanych prób autoryzacji. Nowoczesne podejście do bezpieczeństwa obejmuje również wprowadzenie testów fuzzujących. Tak samo istotne jest monitorowanie zasobów wewnętrznych, liczby połączeń, oraz odwołań pomiędzy mikroserwisami (np. atak DDoS na platformę Netflix). 



Źródła:

Brak komentarzy :

Prześlij komentarz