Gospodarka w pogoni za API vs bezpieczeństwo firm

Bartosz Martyka
Bartosz Martyka - Redaktor naczelny Brandsit
4 min

Interfejsy programistyczne aplikacji (API) pozwalają organizacjom korzystać z funkcjonalności udostępnianych przez daną aplikację w innej aplikacji. Umożliwia to firmom korzystanie z dostępnych już zasobów, bez konieczności budowania aplikacji od zera. API przekształca modele biznesowe, bezpośrednio generuje przychody, dlatego jego potencjał i skala zastosowania gwałtownie rośnie. Cyberprzestępcy już to wykorzystują.

W 2015 r., przychody generowane przez API stanowiły w koszyku gigantów takich jak eBay i Salesforce odpowiednio 60% i 50%[1]. W tym samym roku, na forum społeczności API portalu programmableweb.com zarejestrowanych było 12 tys. użytkowników, których liczba w 2019 r. niemal się podwoiła.

2019 Application Protection Report, opracowany przez F5 Labs, wskazuje, że naruszenia odnotowane w ostatnim roku koncentrowały się na dużych platformach ze znaczną liczbą interfejsów API i aplikacjach mobilnych zależnych od kilku takich interfejsów. Każde wykryte naruszenie było wynikiem źle skonfigurowanej kontroli dostępu. Szeroko otwarte API – czyli zbyt szerokie uprawnienia stanowią więc jedno z największych zagrożeń dla biznesu.

Biznes ma niską świadomość skali potencjalnych zagrożeń. Tymczasem obserwujemy niepokojący trend – programiści ułatwiający sobie pracę używają dróg na skróty. Dowodzi tego badanie North Carolina State University. Wykazało, że w serwisie internetowym dla projektów programistycznych GitHub, który udostępnia darmowy hosting programów open source i prywatnych repozytoriów wykryto ponad 100 tys. repozytoriów kodów zawierających tokeny API oraz klucze kryptograficzne w postaci tekstu otwartego, do którego jest możliwy dostęp z zewnątrz[2]. Dzięki łatwemu dostępowi do tych zasobów, cyberprzestępcom udaje się pozyskać informacje w ramach całej infrastruktury aplikacji! Dlatego wywołania API, czyli próby połączeń są podatne na ataki przez iniekcję szkodliwego kodu, łamanie haseł i kluczy kryptograficznych oraz szpiegowanie sesji.

Dobre praktyki API dla bezpieczeństwa biznesu:

Pełna wiedza – należy dowiedzieć się, gdzie dokładnie w organizacji wykorzystywane są interfejsy API, jakie mają funkcje w operacjach. Warto prowadzić pogłębione wywiady z zespołami ds. rozwoju i operacyjnymi, uzyskać szczegółowe informacje i przygotować oceny ryzyka.

- Advertisement -

Uwierzytelnianie – Raport F5 na temat stanu usług aplikacji w 2019 r. wykazał, że 25% ankietowanych organizacji nie korzysta z uwierzytelniania API. 38% stwierdziło, że robiło to „przez pewien czas”, a 37% „przez większość czasu”. To duży problem. Istnieją różne formy uwierzytelniania API i przed podjęciem wyboru zaleca się podejście uwzględniające potencjalne ryzyko. Dane uwierzytelniające są kluczem dostępu do zasobów całej organizacji i powinny być przechowywane w bezpieczny sposób. Może to być kombinacja użytkownik/hasło (dla komputerów lub użytkowników) lub kluczy API (które są uproszczonymi ciągami uwierzytelniania o określonych konkretnych zastosowaniach).

Autoryzacja – interfejsy API nie powinny przekazywać do aplikacji  nieautoryzowanych lub nieprzefiltrowanych danych wejściowych, ponieważ tworzy to ścieżkę do ataków metodą injection[3]. Dostępy do interfejsu API trzeba traktować zgodnie z zasadą minimalizacji uprawnień. Kontrola dostępu oparta na rolach jest najlepszym rozwiązaniem. Możliwe jest również zdefiniowanie konkretnych sekwencji działań, które odpowiadają konkretnemu przypadkowi użycia interfejsu API.

Rejestrowanie połączeń API – konieczne jest rejestrowanie i monitorowanie wszystkich połączeń. Dobrą praktyką jest również rejestrowanie zasobów, które są obsługiwane przez interfejsy API.

Szyfrowanie – coraz częściej szyfrujemy ruch użytkowników w Internecie, a przecież ruch poprzez interfejsy API niczym się nie różni. Szyfrowanie i weryfikowanie certyfikatów w tym obszarze powinno być obligatoryjne.

Wdrożenie narzędzi bezpieczeństwa API – warto zapoznać się z dostępnymi na rynku rozwiązaniami. Wśród nich można wymienić korzystanie  serwerów proxy lub zapory sieciowej rozpoznającej API celem sprawdzania, weryfikowania i ograniczania żądania dostępu. Niektóre usługi bezpieczeństwa API mogą analizować klienta źródłowego i próbować ustalić, czy żądanie jest uzasadnione czy złośliwe.

Nieustanne testowanie – systematyczne przeprowadzanie testów jest niezbędne dla aktualizacji zabezpieczeń. Dobrym rozwiązaniem może być również wyznaczenie nagrody za wykrywanie błędów interfejsu API (bug bounty) i zaangażowanie w ten sposób proaktywnych specjalistów ds. cyberbezpieczeństwa.

Autor: Ireneusz Wiśniewski, dyrektor zarządzający F5 Poland
[1] https://hbr.org/2015/01/the-strategic-value-of-apis
[2] https://www.zdnet.com/article/over-100000-github-repos-have-leaked-api-or-cryptographic-keys/
[3] https://www.f5.com/labs/articles/threat-intelligence/application-protection-report-2019–episode-3–web-injection-attacks
Udostępnij
Leave a comment

Dodaj komentarz

- REKLAMA -