Najważniejsze luki w zabezpieczeniach interfejsu API OATH

Najważniejsze luki w zabezpieczeniach interfejsu API OATH

Najważniejsze luki w zabezpieczeniach interfejsu API OATH: wprowadzenie

Jeśli chodzi o exploity, interfejsy API są najlepszym miejscem do rozpoczęcia. API dostęp zazwyczaj składa się z trzech części. Klienci otrzymują tokeny przez serwer autoryzacji, który działa równolegle z interfejsami API. API otrzymuje tokeny dostępu od klienta i na ich podstawie stosuje specyficzne dla domeny reguły autoryzacji. 

Nowoczesne aplikacje są podatne na różne zagrożenia. Bądź na bieżąco z najnowszymi exploitami i lukami w zabezpieczeniach; posiadanie testów porównawczych dla tych luk jest niezbędne do zapewnienia bezpieczeństwa aplikacji przed atakiem. Aplikacje innych firm w coraz większym stopniu polegają na protokole OAuth. Dzięki tej technologii użytkownicy będą mieli lepsze ogólne wrażenia z użytkowania, a także szybsze logowanie i autoryzację. Może być bezpieczniejsza niż konwencjonalna autoryzacja, ponieważ użytkownicy nie muszą ujawniać swoich danych uwierzytelniających aplikacji innej firmy, aby uzyskać dostęp do danego zasobu. Chociaż sam protokół jest bezpieczny, sposób jego implementacji może narazić Cię na atak.

Podczas projektowania i hostowania interfejsów API ten artykuł koncentruje się na typowych lukach w zabezpieczeniach protokołu OAuth oraz różnych środkach zaradczych.

Uszkodzona autoryzacja na poziomie obiektu

Istnieje ogromna powierzchnia ataku w przypadku naruszenia autoryzacji, ponieważ interfejsy API zapewniają dostęp do obiektów. Ponieważ elementy dostępne przez API muszą być uwierzytelnione, jest to konieczne. Implementuj kontrole autoryzacji na poziomie obiektu za pomocą bramy API. Tylko osoby posiadające odpowiednie poświadczenia uprawnień powinny mieć dostęp.

Uszkodzone uwierzytelnianie użytkownika

Nieautoryzowane tokeny to kolejny częsty sposób uzyskiwania przez atakujących dostępu do interfejsów API. Systemy uwierzytelniania mogą zostać zhakowane lub klucz API może zostać omyłkowo ujawniony. Tokeny uwierzytelniające mogą być wykorzystywane przez hakerów aby uzyskać dostęp. Uwierzytelniaj osoby tylko wtedy, gdy można im zaufać, i używaj silnych haseł. Dzięki OAuth możesz wyjść poza zwykłe klucze API i uzyskać dostęp do swoich danych. Zawsze powinieneś myśleć o tym, jak będziesz wchodzić i wychodzić z danego miejsca. Tokeny OAuth MTLS Sender Constrained mogą być używane w połączeniu z Mutual TLS, aby zagwarantować, że klienci nie zachowują się niewłaściwie i nie przekazują tokenów niewłaściwej stronie podczas uzyskiwania dostępu do innych maszyn.

Promocja interfejsu API:

Nadmierna ekspozycja danych

Nie ma ograniczeń co do liczby punktów końcowych, które można opublikować. W większości przypadków nie wszystkie funkcje są dostępne dla wszystkich użytkowników. Ujawniając więcej danych, niż jest to absolutnie konieczne, narażasz siebie i innych na niebezpieczeństwo. Unikaj ujawniania informacji wrażliwych Informacja dopóki nie będzie to absolutnie konieczne. Deweloperzy mogą określić, kto ma dostęp do czego, korzystając z zakresów OAuth i oświadczeń. Roszczenia mogą określać, do których sekcji danych użytkownik ma dostęp. Kontrola dostępu może być prostsza i łatwiejsza do zarządzania dzięki zastosowaniu standardowej struktury we wszystkich interfejsach API.

Brak zasobów i ograniczenie szybkości

Czarne kapelusze często wykorzystują ataki typu „odmowa usługi” (DoS) jako brutalny sposób na przytłoczenie serwera i skrócenie jego czasu pracy do zera. Bez ograniczeń co do zasobów, które mogą być wywoływane, interfejs API jest narażony na wyniszczający atak. „Korzystając z bramy API lub narzędzia do zarządzania, możesz ustawić ograniczenia szybkości dla interfejsów API. Należy uwzględnić filtrowanie i paginację, a także ograniczyć odpowiedzi.

Błędna konfiguracja systemu bezpieczeństwa

Różne wytyczne dotyczące konfiguracji zabezpieczeń są dość wyczerpujące ze względu na duże prawdopodobieństwo błędnej konfiguracji zabezpieczeń. Szereg drobnych rzeczy może zagrozić bezpieczeństwu Twojej platformy. Możliwe, że czarne kapelusze z ukrytymi celami mogą odkryć poufne informacje wysłane na przykład w odpowiedzi na źle sformułowane zapytania.

Przydział masowy

Tylko dlatego, że punkt końcowy nie jest publicznie zdefiniowany, nie oznacza, że ​​programiści nie mogą uzyskać do niego dostępu. Tajny interfejs API może zostać łatwo przechwycony i poddany inżynierii wstecznej przez hakerów. Spójrz na ten podstawowy przykład, który wykorzystuje otwarty token okaziciela w „prywatnym” API. Z drugiej strony dokumentacja publiczna może istnieć dla czegoś, co jest przeznaczone wyłącznie do użytku osobistego. Ujawnione informacje mogą być wykorzystywane przez czarne kapelusze nie tylko do odczytywania, ale także manipulowania cechami obiektów. Uważaj się za hakera, gdy szukasz potencjalnych słabych punktów w swojej obronie. Zezwól tylko osobom z odpowiednimi uprawnieniami na dostęp do tego, co zostało zwrócone. Aby zminimalizować podatność, ogranicz pakiet odpowiedzi interfejsu API. Respondenci nie powinni dodawać żadnych linków, które nie są bezwzględnie wymagane.

Promowane API:

Niewłaściwe zarządzanie aktywami

Oprócz zwiększania produktywności programistów, aktualne wersje i dokumentacja są niezbędne dla Twojego własnego bezpieczeństwa. Przygotuj się na wprowadzenie nowych wersji i wycofanie starych interfejsów API z dużym wyprzedzeniem. Używaj nowszych interfejsów API, zamiast zezwalać na dalsze korzystanie ze starszych. Specyfikację API można wykorzystać jako główne źródło prawdy w dokumentacji.

Wtrysk

Interfejsy API są podatne na wstrzykiwanie, podobnie jak aplikacje innych firm. Złośliwy kod może służyć do usuwania danych lub kradzieży poufnych informacji, takich jak hasła i numery kart kredytowych. Najważniejszą lekcją, jaką można z tego wyciągnąć, jest niezależność od ustawień domyślnych. Twój dostawca usług zarządzania lub bramy powinien być w stanie spełnić Twoje unikalne potrzeby w zakresie aplikacji. Komunikaty o błędach nie powinny zawierać poufnych informacji. Aby zapobiec wyciekowi danych tożsamości poza system, w tokenach należy stosować parami pseudonimów. Zapewnia to, że żaden klient nie może współpracować w celu identyfikacji użytkownika.

Niewystarczające rejestrowanie i monitorowanie

Kiedy atak ma miejsce, zespoły wymagają dobrze przemyślanej strategii reagowania. Deweloperzy będą nadal wykorzystywać luki w zabezpieczeniach, nie dając się złapać, jeśli nie ma niezawodnego systemu rejestrowania i monitorowania, co zwiększy straty i zaszkodzi publicznemu postrzeganiu firmy. Przyjmij ścisłą strategię monitorowania API i testowania punktów końcowych produkcji. Testerzy białych kapeluszy, którzy wcześnie znajdą luki w zabezpieczeniach, powinni zostać nagrodzeni programem bounty. Ślad dziennika można ulepszyć, włączając tożsamość użytkownika do transakcji API. Upewnij się, że wszystkie warstwy architektury interfejsu API są kontrolowane przy użyciu danych Access Token.

Wnioski

Architekci platform mogą wyposażyć swoje systemy tak, aby były o krok przed atakującymi, przestrzegając ustalonych kryteriów podatności na zagrożenia. Ponieważ interfejsy API mogą zapewniać dostęp do informacji umożliwiających identyfikację osób, utrzymanie bezpieczeństwa takich usług ma kluczowe znaczenie zarówno dla stabilności firmy, jak i zgodności z przepisami, takimi jak RODO. Nigdy nie wysyłaj tokenów OAuth bezpośrednio przez API bez użycia API Gateway i Phantom Token Approach.

Promowane API: