Firma Symantec odkryła zakodowane dane uwierzytelniające AWS

Ponad trzy czwarte aplikacji przeanalizowanych przez firmę Symantec zawierało ważne tokeny AWS, umożliwiające dostęp do prywatnych usług w chmurze AWS.

Firma Symantec odkryła zakodowane dane uwierzytelniające AWS w ponad 1800 aplikacjach mobilnych i ostrzegła przed potencjalnymi zagrożeniami związanymi ze złymi praktykami bezpieczeństwa. Luki w łańcuchu dostaw aplikacji mobilnych mogą zagrażać wrażliwym informacjom biznesowym.

Większość z nas, w jakiś sposób odczuła problemy związane z łańcuchem dostaw. Wzrost cen paliw i wielu towarów, opóźnienia w dostawach oraz brak dostępności produktów to tylko niektóre z konsekwencji problemów z łańcuchem dostaw, wynikających z licznych wydarzeń na całym świecie. Jednak w kontekście infrastruktury oprogramowania i technologii konsekwencje wynikające z problemów związanych z łańcuchem dostaw są bardzo różne. Na przykład aplikacje mobilne mogą zawierać luki wprowadzone w łańcuchu dostaw, które mogą potencjalnie prowadzić do ujawnienia poufnych informacji, a te z kolei mogą zostać wykorzystane przez cyberprzestępców do innych ataków.

Luki w zabezpieczeniach łańcucha dostaw aplikacji mobilnych często są dodawane przez twórców aplikacji, zarówno świadomie, jak i nieświadomie, którzy prawdopodobnie nie weryfikują wpływu na bezpieczeństwo niższego poziomu, narażając nie tylko prywatność użytkowników aplikacji, ale czasami także prywatność, dane swojej firmy i podmiotów współpracujących.

Problem łańcucha dostaw aplikacji mobilnej

Podobnie jak w łańcuchu dostaw towarów materialnych, rozwój oprogramowania aplikacji mobilnych podlega procesowi, który obejmuje: zbieranie materiałów, takich jak biblioteki oprogramowania i zestawy programistyczne (SDK), produkcja, rozwój aplikacji mobilnej i dostarczenie produktu końcowego do klienta, najczęściej poprzez publikację w sklepie z aplikacjami mobilnymi.

  • Twórcy aplikacji mobilnych nieświadomie korzystają z podatnych zewnętrznych bibliotek oprogramowania i pakietów SDK
  • Firmy zlecają rozwój swoich aplikacji mobilnych, które następnie publikowane są z lukami, powodując tym samym narażanie na ryzyko
  • Firmy opracowujące wiele aplikacji w zespołach, korzystają w swoich aplikacjach z bibliotek podatnych na ataki pomiędzy zespołami

Aby lepiej zrozumieć występowanie i zakres luk w łańcuchu dostaw, firma Symantec przyjrzała się publicznie dostępnym aplikacjom z globalnej kolekcji aplikacji, zawierające zakodowane dane uwierzytelniające Amazon Web Services (AWS). Zakodowane dane uwierzytelniające w chmurze to rodzaj luki, którą Symantec weryfikuje od lat. Tym razem, Symantec zbadał, dlaczego twórcy aplikacji na stałe kodują poświadczenia chmury wewnątrz aplikacji; gdzie w aplikacjach znajdują się zakodowane na stałe dane uwierzytelniające – śledzenie sekwencji lub łańcucha zdarzeń prowadzących do luki, rozmiar problemu i jego wpływ.

Zakres problemu

Symantec zidentyfikował 1859 publicznie dostępnych aplikacji, zarówno na Androida, jak i iOS, zawierających zakodowane dane uwierzytelniające AWS. Prawie wszystkie były aplikacjami na iOS (98%) – trend i różnica między platformami, które śledzone są od lat, prawdopodobnie powiązana z różnymi praktykami i zasadami weryfikacyjnymi w sklepach z aplikacjami. W każdym razie zbadano zakres zagrożeń związanych z wykryciem danych uwierzytelniających AWS osadzonych w aplikacjach. Znaleziono:

  • Ponad trzy czwarte (77%) aplikacji zawierało ważne tokeny dostępu AWS umożliwiające dostęp do prywatnych usług w chmurze AWS
  • Prawie połowa (47%) tych aplikacji zawierała ważne tokeny AWS, które zapewniały również pełny dostęp do wielu, często milionów, prywatnych plików za pośrednictwem Amazon Simple Storage Service (Amazon S3)

Zbadano rodzaj prywatnych danych ujawnionych, wyciągnięto wnioski: aplikacje z zakodowanymi na stałe tokenami dostępu AWS są podatne na ataki, aktywne i stanowią bardzo poważne zagrożenie.

Źródło problemu

Weryfikacja dlaczego i gdzie dokładnie znajdowały się tokeny dostępu AWS w aplikacjach i czy można je znaleźć w innych aplikacjach.

Oodkryto, że ponad połowa (53%) aplikacji używa tych samych tokenów dostępu AWS, które znajdują się w innych aplikacjach. Co ciekawe, te aplikacje często pochodziły od różnych twórców aplikacji i firm. Wskazuje to na lukę w łańcuchu dostaw i dokładnie to znazał Symantec. Tokeny dostępu AWS można prześledzić do biblioteki współdzielonej, zestawu SDK innej firmy lub innego współdzielonego składnika używanego do tworzenia aplikacji.

W kwestii dlaczego twórcy aplikacji używają zakodowanych kluczy dostępu, znaleziono powody, aby uwzględnić:

  • Pobieranie lub przesyłanie zasobów wymaganych dla aplikacji, zwykle dużych plików multimedialnych, nagrań lub obrazów
  • Uzyskiwanie dostępu do plików konfiguracyjnych aplikacji i/lub rejestracja urządzenia oraz gromadzenie informacji o urządzeniu i przechowywanie ich w chmurze
  • Uzyskiwanie dostępu do usług w chmurze wymagających uwierzytelnienia, takich jak na przykład usługi tłumaczenia
  • Bez konkretnego powodu, martwy kod i/lub używany do testowania i nigdy nie usunięty

Jeśli klucz dostępu ma uprawnienia tylko do dostępu do określonej usługi w chmurze lub zasobu, na przykład dostępu do publicznych plików obrazów z korporacyjnej usługi Amazon S3, wpływ może być minimalny. Niektórzy programiści aplikacji mogą zakładać, że tak jest, gdy osadzają i używają zakodowanych na stałe tokenów dostępu AWS, aby uzyskać dostęp do pojedynczego zasobu lub pliku w Amazon S3. Problem często jest ten sam: token dostępu AWS, który ujawnia wszystkie pliki i zasoby w chmurze Amazon S3, często pliki firmowe, komponenty infrastruktury, kopie zapasowe baz danych itp. Nie wspominając o usługach w chmurze poza Amazon S3, które są dostępne przy użyciu tego samego dostępu AWS.

Na przykładzie firmy typu business-to-business (B2B), która zapewnia dostęp do swoich usług za pomocą zewnętrznego SDK i osadza klucz dostępu zakodowany na stałe w AWS, ujawniając nie tylko prywatne dane aplikacji przy użyciu zewnętrznego SDK, ale także prywatne dane wszystkich aplikacji korzystających z komponentu innej firmy. Niestety nie jest to rzadkie zjawisko, co widać na poniższych przykładach.

Studium przypadku

Platforma intranetowa SDK

Symantec odkrył, że firma B2B dostarczająca intranet i platformę komunikacyjną dostarczyła również mobilny pakiet SDK, z którego klienci mogli korzystać, aby uzyskać dostęp do platformy. Niestety SDK zawierał również klucze infrastruktury chmury firmy B2B, ujawniając wszystkie prywatne dane jej klientów na platformie firmy B2B. Ujawniono dane firmowe, dokumentację finansową i prywatne dane pracowników ich klientów. Wszystkie pliki, których firma używała w swoim intranecie.

Dlaczego firma na stałe zakodowała token dostępu AWS? W celu uzyskania dostępu do usługi tłumaczenia AWS. Zamiast ograniczać zakodowany token dostępu do użytku z usługą tłumaczenia w chmurze, każdy, kto ma token, miał pełny nieograniczony dostęp do wszystkich usług chmurowych AWS firmy B2B.

Tożsamość cyfrowa i uwierzytelnianie

Symantec odkrył kilka popularnych aplikacji bankowych na iOS, które opierają się na tym samym, podatnym na ataki, zewnętrznym pakiecie AI Digital Identity SDK. Outsourcing cyfrowej tożsamości i komponentu uwierzytelniania aplikacji jest powszechnym wzorcem rozwoju, ponieważ złożoność zapewniania różnych form uwierzytelniania, utrzymywania bezpiecznej infrastruktury oraz uzyskiwania dostępu do tożsamości i zarządzania nimi może wiązać się z wysokimi kosztami i wymaga specjalistycznej wiedzy, aby zrobić to dobrze. Niestety w tym przypadku nie zostało zrobione to dobrze.

W SDK wbudowano dane uwierzytelniające do chmury, które mogą narazić na niebezpieczeństwo całą infrastrukturę. Poświadczenia mogą ujawnić prywatne dane uwierzytelniające i klucze należące do każdej aplikacji bankowej i finansowej korzystającej z SDK. Ponadto w chmurze ujawniono biometryczne cyfrowe odciski palców użytkowników wykorzystywane do uwierzytelniania, a także dane osobowe użytkowników (imiona i nazwiska, daty urodzenia itp.).

Ponadto klucz dostępu ujawnił dane serwera infrastruktury i plany, w tym kod źródłowy API i modele AI, wykorzystywane w całej operacji. W sumie z pięciu aplikacji bankowości mobilnej korzystających z SDK wyciekło ponad 300 000 biometrycznych cyfrowych odcisków palców.

Platforma technologii gier online

Często już istniejące firmy polegają na outsourcingu lub partnerstwie z innymi firmami B2B w zakresie swoich usług cyfrowych i internetowych. Dzięki temu mogą szybko przenieść swoją markę do Internetu bez konieczności budowania i wspierania podstawowej platformy technologicznej. Jednocześnie, powierzając obsługę platformy technologicznej firmie zewnętrznej, często muszą zapewnić wyłączny dostęp do swoich danych biznesowych. Ponadto muszą ufać zleceniobiorcy, że będzie należycie chronić prywatne dane online, nie wspominając o ogólnej reputacji marki.

Symantec znalazł dużą firmę z branży hotelarsko-rozrywkowej, której platforma technologiczna jest zależna od innej firmy, w dodatku powiązana ze spółką joint venture zajmującą się zakładami sportowymi. Na wysoce regulowanym rynku zakładów sportowych nie można lekceważyć złożoności budowania i wspierania infrastruktury dla hazardu online. Niestety, dając spółce joint venture wyłączny dostęp do tej części swojej działalności, firma również ujawniła światu swoje operacje związane z grami, dane biznesowe i dane klientów. W sumie 16 różnych aplikacji hazardowych online korzystających z podatnej biblioteki ujawniło pełną infrastrukturę i usługi w chmurze we wszystkich usługach chmurowych AWS, z pełnymi danymi uwierzytelniającymi konta root do odczytu/zapisu.

Symantec poinformował o odnalezionych problemach, wszystkie organizacje, których aplikacje zawierają luki omówione w powyższych studiach przypadków.

Unikanie problemów z łańcuchem dostaw

Ochrona przed tego typu problemami w łańcuchu dostaw jest jednak możliwa. Dodanie rozwiązań do skanowania zabezpieczeń do cyklu życia aplikacji oraz w przypadku korzystania z usług zewnętrznego dostawcy, wymaganie i przeglądanie raportów aplikacji mobilnych, które mogą identyfikować wszelkie niepożądane zachowania aplikacji lub luki w zabezpieczeniach dla każdego wydania aplikacji mobilnej. Programiści aplikacji muszą analizować karty raportu, które opisują zarówno pakiety SDK i struktury w aplikacji, jak i identyfikują źródło wszelkich luk w zabezpieczeniach lub niepożądanych zachowań.