Gospodarka w pogoni za API vs bezpieczeństwo firm

    Ireneusz Wiśniewski, dyrektor zarządzający F5 Poland
    Ireneusz Wiśniewski, dyrektor zarządzający F5 Poland

    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