Jak sztuczna inteligencja poprawi bezpieczeństwo API

Interfejsy API stały się klejnotami koronnymi inicjatyw w zakresie cyfrowej transformacji organizacji, umożliwiając pracownikom, partnerom, klientom i innym interesariuszom dostęp do aplikacji, danych i funkcji biznesowych w całym ich cyfrowym ekosystemie. Nic więc dziwnego, że hakerzy zwiększyli fale ataków na te krytyczne zasoby przedsiębiorstwa.

Niestety wygląda na to, że problem się tylko pogorszy. Firma Gartner przewiduje, że „do 2022 r. Nadużycia interfejsu API będą najczęstszym wektorem ataków prowadzącym do naruszenia danych w korporacyjnych aplikacjach internetowych”.

Wiele przedsiębiorstw zareagowało, wdrażając rozwiązania do zarządzania interfejsami API, które zapewniają mechanizmy, takie jak uwierzytelnianie, autoryzacja i ograniczanie przepustowości. Są to niezbędne możliwości kontrolowania, kto uzyskuje dostęp do interfejsów API w całym ekosystemie API i jak często. Jednak budując swoje wewnętrzne i zewnętrzne strategie API, organizacje muszą również zająć się rozwojem bardziej wyrafinowanych ataków na API, wdrażając dynamiczne zabezpieczenia oparte na sztucznej inteligencji (AI).

W tym artykule omówiono zarządzanie interfejsami API i narzędzia bezpieczeństwa, które organizacje powinny stosować, aby zapewnić bezpieczeństwo, integralność i dostępność w swoich ekosystemach API.

Środki bezpieczeństwa oparte na regułach i zasadach

Kontrole bezpieczeństwa oparte na regułach i zasadach, które można przeprowadzać w sposób statyczny lub dynamiczny, są obowiązkowymi częściami każdego rozwiązania do zarządzania interfejsami API. Bramy API służą jako główny punkt dostępu do API i dlatego zazwyczaj obsługują egzekwowanie zasad, sprawdzając przychodzące żądania pod kątem zasad i reguł związanych z bezpieczeństwem, limitami szybkości, ograniczaniem itp. Przyjrzyjmy się bliżej statycznym i dynamicznym kontrolom bezpieczeństwa, aby zobaczyć dodatkowe wartość, którą przynoszą.

Statyczne kontrole bezpieczeństwa

Statyczne kontrole bezpieczeństwa nie zależą od liczby żądań ani żadnych wcześniejszych danych żądań, ponieważ zwykle sprawdzają poprawność danych wiadomości w oparciu o predefiniowany zestaw reguł lub zasad. Różne statyczne skany bezpieczeństwa są wykonywane w bramach, między innymi w celu blokowania iniekcji SQL, spójnych ataków analizujących, ataków na rozszerzenie jednostek i zatruwania schematów.

Tymczasem statyczne sprawdzanie zasad można zastosować między innymi do skanowania ładunku, inspekcji nagłówków i wzorców dostępu. Na przykład wstrzyknięcie SQL jest powszechnym typem ataku przeprowadzanego przy użyciu ładunków. Jeśli użytkownik wyśle ​​ładunek JSON (JavaScript Object Notation), brama interfejsu API może zweryfikować to konkretne żądanie względem wstępnie zdefiniowanego schematu JSON. Brama może również ograniczać liczbę elementów lub innych atrybutów w treści, zgodnie z wymogami ochrony przed szkodliwymi danymi lub wzorcami tekstowymi w wiadomościach.

Dynamiczne kontrole bezpieczeństwa

Dynamiczne kontrole bezpieczeństwa, w przeciwieństwie do statycznych skanów bezpieczeństwa, zawsze sprawdzają coś, co zmienia się w czasie. Zwykle wiąże się to z walidacją danych żądania za pomocą decyzji podjętych na podstawie istniejących danych. Przykłady kontroli dynamicznych obejmują sprawdzanie poprawności tokenu dostępu, wykrywanie anomalii i ograniczanie przepustowości. Te dynamiczne sprawdzenia zależą w dużym stopniu od ilości danych przesyłanych do bramy. Czasami te dynamiczne sprawdzenia występują poza bramą interfejsu API, a następnie decyzje są przekazywane do bramy. Spójrzmy na kilka przykładów.

Ograniczanie przepustowości i ograniczanie szybkości są ważne dla zmniejszenia skutków ataków, ponieważ gdy atakujący uzyskują dostęp do interfejsów API, pierwszą rzeczą, jaką robią, jest odczytanie jak największej ilości danych. Ograniczanie żądań API - czyli ograniczanie dostępu do danych - wymaga od nas liczenia żądań przychodzących w określonym przedziale czasowym. Jeśli liczba żądań przekroczy przydzieloną w tym czasie kwotę, brama może zablokować wywołania interfejsu API. Dzięki ograniczaniu prędkości możemy ograniczyć jednoczesny dostęp dozwolony dla danej usługi.

Poświadczenie

Uwierzytelnianie pomaga bramom API identyfikować każdego użytkownika, który w unikalny sposób wywołuje interfejs API. Dostępne rozwiązania bram API zazwyczaj obsługują uwierzytelnianie podstawowe, OAuth 2.0, zabezpieczenia JWT (JSON Web Token) i zabezpieczenia oparte na certyfikatach. Niektóre bramy zapewniają również warstwę uwierzytelniania, która służy do dodatkowej, szczegółowej weryfikacji uprawnień, która jest zwykle oparta na językach definicji zasad w stylu XACML (eXtensible Access Control Markup Language). Jest to ważne, gdy interfejs API zawiera wiele zasobów, które wymagają różnych poziomów kontroli dostępu dla każdego zasobu.

Ograniczenia tradycyjnego bezpieczeństwa API

Oparte na zasadach podejścia do uwierzytelniania, autoryzacji, ograniczania szybkości i dławienia są skutecznymi narzędziami, ale nadal pozostawiają szczeliny, przez które hakerzy mogą wykorzystywać interfejsy API. Warto zauważyć, że bramy API obsługują wiele usług internetowych, a interfejsy API, którymi zarządzają, są często obciążane dużą liczbą sesji. Nawet gdybyśmy przeanalizowali wszystkie te sesje przy użyciu zasad i procesów, trudno byłoby bramie sprawdzić każde żądanie bez dodatkowej mocy obliczeniowej.

Ponadto każdy interfejs API ma własny wzorzec dostępu. Tak więc prawidłowy wzorzec dostępu do jednego interfejsu API może wskazywać na złośliwą aktywność dla innego interfejsu API. Na przykład, gdy ktoś kupuje przedmioty za pośrednictwem aplikacji do zakupów online, przed dokonaniem zakupu przeprowadzi wiele wyszukiwań. Tak więc pojedynczy użytkownik wysyłający od 10 do 20 żądań do interfejsu API wyszukiwania w krótkim czasie może być uzasadnionym wzorcem dostępu do interfejsu API wyszukiwania. Jeśli jednak ten sam użytkownik wyśle ​​wiele żądań do interfejsu API zakupów, wzorzec dostępu może wskazywać na złośliwą aktywność, taką jak haker próbujący wyciągnąć jak najwięcej za pomocą skradzionej karty kredytowej. Dlatego każdy wzorzec dostępu do interfejsu API musi zostać przeanalizowany osobno, aby określić poprawną odpowiedź.

Kolejnym czynnikiem jest to, że znaczna liczba ataków ma miejsce wewnętrznie. Tutaj użytkownicy z prawidłowymi poświadczeniami i dostępem do systemów wykorzystują swoją zdolność do atakowania tych systemów. Funkcje uwierzytelniania i autoryzacji oparte na zasadach nie mają na celu zapobiegania tego rodzaju atakom. 

Nawet gdybyśmy mogli zastosować więcej reguł i zasad do bramy API w celu ochrony przed opisanymi tutaj atakami, dodatkowe obciążenie bramy API byłoby nie do przyjęcia. Przedsiębiorstwa nie mogą sobie pozwolić na frustrację prawdziwych użytkowników, prosząc ich o ponoszenie opóźnień w przetwarzaniu ich bram API. Zamiast tego bramy muszą przetwarzać prawidłowe żądania bez blokowania lub spowalniania wywołań interfejsu API użytkownika.

Przypadek dodania warstwy bezpieczeństwa AI

Aby wypełnić luki pozostawione przez zabezpieczenia API oparte na zasadach, nowoczesne zespoły bezpieczeństwa potrzebują zabezpieczeń API opartych na sztucznej inteligencji, które mogą wykrywać dynamiczne ataki oraz unikalne luki w zabezpieczeniach każdego interfejsu API i reagować na nie. Stosując modele AI do ciągłej inspekcji i raportowania wszystkich działań API, przedsiębiorstwa mogą automatycznie wykrywać anomalne działania API i zagrożenia w infrastrukturach API, które są pomijane w tradycyjnych metodach.

Nawet w przypadkach, gdy standardowe środki bezpieczeństwa są w stanie wykryć anomalie i zagrożenia, odkrycie może zająć miesiące. Natomiast przy użyciu gotowych modeli opartych na wzorcach dostępu użytkowników warstwa zabezpieczeń oparta na sztucznej inteligencji umożliwiłaby wykrycie niektórych ataków w czasie zbliżonym do rzeczywistego.

Co ważne, silniki AI zwykle działają poza bramami API i przekazują im swoje decyzje. Ponieważ brama API nie musi wydawać zasobów na przetwarzanie tych żądań, dodanie zabezpieczeń AI zazwyczaj nie wpływa na wydajność środowiska wykonawczego.

Integracja zabezpieczeń API opartych na zasadach i sztucznej inteligencji

Dodając zabezpieczenia oparte na sztucznej inteligencji do implementacji zarządzania API, będzie istniał punkt egzekwowania bezpieczeństwa i punkt decyzyjny. Zazwyczaj jednostki te są niezależne ze względu na wymaganą dużą moc obliczeniową, ale opóźnienie nie powinno mieć wpływu na ich wydajność.

Brama API przechwytuje żądania API i stosuje różne zasady. Powiązany z nim jest punkt egzekwowania zabezpieczeń, który opisuje atrybuty każdego żądania (wywołania API) do punktu decyzyjnego, żąda decyzji dotyczącej bezpieczeństwa, a następnie wymusza tę decyzję w bramie. Punkt decyzyjny, zasilany przez sztuczną inteligencję, nieustannie uczy się zachowania każdego wzorca dostępu API, wykrywa nietypowe zachowania i oznacza różne atrybuty żądania.

Powinna istnieć opcja dodawania zasad do punktu decyzyjnego w razie potrzeby i wywoływania tych zasad - które mogą się różnić w zależności od interfejsu API - w okresie uczenia się. Wszelkie zasady powinny zostać zdefiniowane przez zespół ds. Bezpieczeństwa po dokładnym poznaniu potencjalnych luk w zabezpieczeniach każdego interfejsu API, który planują ujawnić. Jednak nawet bez wsparcia ze strony polityk zewnętrznych, adaptacyjna, oparta na sztucznej inteligencji technologia punktów decyzyjnych i punktów egzekwowania ostatecznie nauczy się i zapobiegnie niektórym złożonym atakom, których nie możemy wykryć za pomocą zasad.

Kolejną zaletą posiadania dwóch oddzielnych komponentów punktu egzekwowania zabezpieczeń i punktu decyzyjnego jest możliwość integracji z istniejącymi rozwiązaniami do zarządzania interfejsami API. Proste ulepszenie interfejsu użytkownika i niestandardowe rozszerzenie mogą zintegrować punkt egzekwowania bezpieczeństwa z wydawcą interfejsu API i bramą. W interfejsie użytkownika wydawca interfejsu API może wybrać, czy włączyć zabezpieczenia AI dla opublikowanego interfejsu API, wraz z wszelkimi potrzebnymi specjalnymi zasadami. Rozszerzony punkt wymuszania bezpieczeństwa publikowałby atrybuty żądania w punkcie decyzyjnym i ograniczał dostęp do API zgodnie z odpowiedzią punktu decyzyjnego.

Jednak publikowanie zdarzeń w punkcie decyzyjnym i ograniczanie dostępu na podstawie jego odpowiedzi zajmie trochę czasu i będzie w dużym stopniu zależeć od sieci. Dlatego najlepiej jest zaimplementować go asynchronicznie za pomocą mechanizmu buforowania. Wpłynie to nieco na dokładność, ale biorąc pod uwagę wydajność bramy, dodanie warstwy bezpieczeństwa AI w minimalnym stopniu wpłynie na ogólne opóźnienie.

Wyzwania warstwy bezpieczeństwa oparte na sztucznej inteligencji

Oczywiście korzyści nie są pozbawione kosztów. Chociaż warstwa bezpieczeństwa oparta na sztucznej inteligencji oferuje dodatkowy poziom ochrony API, stwarza pewne wyzwania, z którymi zespoły bezpieczeństwa będą musiały się zmierzyć.

  • Dodatkowe obciążenie . Dodatkowa warstwa zabezpieczeń sztucznej inteligencji zwiększa obciążenie przepływu wiadomości. Dlatego rozwiązania mediacyjne powinny być wystarczająco inteligentne, aby obsługiwać gromadzenie i publikowanie informacji poza głównym przepływem mediacji.
  • Fałszywe pozytywy . Duża liczba fałszywych alarmów będzie wymagać dodatkowej oceny przez specjalistów ds. Bezpieczeństwa. Jednak dzięki niektórym zaawansowanym algorytmom sztucznej inteligencji możemy zmniejszyć liczbę wyzwalanych fałszywych alarmów.
  • Brak zaufania . Ludzie czują się nieswojo, gdy nie rozumieją, w jaki sposób podjęto decyzję. Pulpity nawigacyjne i alerty mogą pomóc użytkownikom w wizualizacji czynników stojących za decyzją. Na przykład, jeśli alert wyraźnie stwierdza, że ​​użytkownik został zablokowany w celu uzyskania dostępu do systemu z nietypową szybkością ponad 1000 razy w ciągu minuty, ludzie mogą zrozumieć i zaufać decyzji systemu.
  • Luka w danych . Większość rozwiązań opartych na sztucznej inteligencji i uczeniu maszynowym opiera się na ogromnych ilościach danych, które często są wrażliwe i osobiste. W rezultacie rozwiązania te mogą stać się podatne na naruszenia danych i kradzież tożsamości. Przestrzeganie RODO Unii Europejskiej (ogólne rozporządzenie o ochronie danych) pomaga zmniejszyć to ryzyko, ale nie eliminuje go całkowicie.
  • Oznaczone ograniczenia danych . Najpotężniejsze systemy sztucznej inteligencji są szkolone w ramach nadzorowanego uczenia się, które wymaga oznaczonych danych zorganizowanych tak, aby były zrozumiałe dla maszyn. Ale dane oznaczone etykietami mają swoje ograniczenia, a przyszłe automatyczne tworzenie coraz trudniejszych algorytmów tylko zaostrzy problem.
  • Błędne dane . Skuteczność systemu SI zależy od danych, na podstawie których jest szkolony. Zbyt często złe dane są powiązane z uprzedzeniami etnicznymi, społecznymi, płciowymi lub rasowymi, które mogą wpływać na kluczowe decyzje dotyczące indywidualnych użytkowników.

Biorąc pod uwagę krytyczną rolę interfejsów API w dzisiejszych przedsiębiorstwach, coraz częściej stają się one celem hakerów i złośliwych użytkowników. Mechanizmy oparte na zasadach, takie jak uwierzytelnianie, autoryzacja, skanowanie ładunku, walidacja schematów, ograniczanie przepustowości i ograniczanie szybkości, to podstawowe wymagania niezbędne do wdrożenia skutecznej strategii bezpieczeństwa interfejsu API. Jednak tylko poprzez dodanie modeli sztucznej inteligencji w celu ciągłego sprawdzania i raportowania całej aktywności API przedsiębiorstwa będą chronione przed najbardziej wyrafinowanymi atakami bezpieczeństwa, jakie pojawiają się obecnie.

Sanjeewa Malalgoda jest architektem oprogramowania i zastępcą dyrektora inżynierii w WSO2, gdzie kieruje rozwojem WSO2 API Manager. Lakshitha Gunasekara jest inżynierem oprogramowania w zespole WSO2 API Manager. 

-

New Tech Forum to miejsce, w którym można badać i omawiać pojawiające się technologie dla przedsiębiorstw na niespotykaną dotąd skalę i dogłębnie. Wybór jest subiektywny, oparty na naszym wyborze technologii, które uważamy za ważne i najbardziej interesujące dla czytelników. nie przyjmuje marketingowych materiałów reklamowych do publikacji i zastrzega sobie prawo do edycji wszystkich przesłanych treści. Wszelkie zapytania należy kierować na  adres [email protected] .