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.
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.
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.
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:
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.
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ć:
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.
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.
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.
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.
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ń.