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ą.
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.
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.
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