Ujawnienie informacji wrażliwych to luka w zabezpieczeniach, w której duży model językowy (LLM) nieumyślnie ujawnia w swoich odpowiedziach dane poufne, prywatne, zastrzeżone lub w inny sposób ograniczone. Może się to zdarzyć, gdy model ujawni informacje z danych treningowych lub wrażliwe dane przekazane mu w kontekście sesji użytkownika. Hakerzy mogą to wykorzystać, tworząc konkretne zapytania lub stosując techniki wstrzykiwania promptów, aby nakłonić model do ujawnienia informacji, których nie powinien. Głównym problemem jest to, że LLM nie potrafi odróżnić danych publicznych od informacji poufnych, które przetworzył.
Rodzaje informacji istotne w przypadku Androida
Wyciek danych treningowych: ma miejsce, gdy LLM zwraca konkretne, dosłowne fragmenty danych, na których był trenowany. Jeśli zbiór danych treningowych zawierał informacje umożliwiające identyfikację, kod zastrzeżony lub dokumenty wewnętrzne, model może odtwarzać te informacje w swoich wynikach, jeśli otrzyma odpowiedni prompt. W przypadku aplikacji na Androida może to obejmować wstępnie wytrenowane modele dołączone do aplikacji lub modele, do których dostęp uzyskuje się za pomocą interfejsów API w chmurze.
Ujawnianie danych kontekstowych: jest to bardziej bezpośrednie zagrożenie dla aplikacji na Androida, które polega na tym, że LLM ujawnia poufne informacje podane przez użytkownika podczas sesji w aplikacji. Jeśli na przykład aplikacja umożliwia użytkownikowi wprowadzanie informacji umożliwiających identyfikację osób do LLM w celu ich podsumowania, późniejszy atak typu prompt injection może umożliwić atakującemu manipulowanie modelem w celu ujawnienia zawartości. Dotyczy to też wszelkich danych wrażliwych, które Twoja aplikacja niejawnie przekazuje do modelu LLM.
Dlaczego twórcy aplikacji na Androida powinni się tym zainteresować
Ujawnienie informacji poufnych może poważnie zagrozić bezpieczeństwu aplikacji i jej użytkowników:
- Naruszenia prywatności: atakujący może wyodrębnić informacje umożliwiające identyfikację, takie jak imiona i nazwiska, adresy e-mail, numery telefonów, a nawet dane o lokalizacji użytkowników, co może prowadzić do kradzieży tożsamości i poważnych kar regulacyjnych (np. na mocy RODO lub CCPA). Jest to szczególnie ważne w przypadku aplikacji na Androida, które przetwarzają dane użytkowników.
- Kradzież własności intelektualnej: jeśli LLM w Twojej aplikacji przetwarza zastrzeżone algorytmy, dane finansowe lub inne wewnętrzne informacje biznesowe, atakujący może wymusić ich ujawnienie, co spowoduje znaczne szkody konkurencyjne i finansowe dla Twojej organizacji.
- Naruszenia bezpieczeństwa: LLM może nieumyślnie ujawnić informacje na poziomie systemu, takie jak klucze interfejsu API, tokeny uwierzytelniania lub szczegóły konfiguracji, które były obecne w danych treningowych lub przekazywane podczas sesji, co może spowodować poważne luki w zabezpieczeniach backendu lub innych usług.
- Utrata reputacji: pojedynczy, poważny wyciek danych może zniszczyć zaufanie użytkowników, doprowadzić do odinstalowania aplikacji, negatywnych opinii i spowodować nieodwracalne szkody dla reputacji aplikacji i marki.
Środki zaradcze dla deweloperów aplikacji na Androida
Aby zmniejszyć ryzyko związane z tą luką w zabezpieczeniach, musisz zastosować wielowarstwowe podejście, które koncentruje się na higienie danych i kontrolowaniu dostępu modelu LLM w aplikacji na Androida.
Sanityzacja i minimalizacja danych:
- Nadaj priorytet czyszczeniu danych wejściowych: zanim wyślesz do LLM jakiekolwiek dane wejściowe użytkownika lub dane aplikacji, dokładnie je oczyść i zanonimizuj. Usuń wszystkie informacje umożliwiające identyfikację i informacje objęte ochroną, które nie są absolutnie niezbędne do wykonania zadania przez LLM.
- Zbieraj tylko to, co jest potrzebne: w aplikacji przestrzegaj zasady minimalizacji danych. Zbieraj i udostępniaj LLM tylko minimalną ilość danych niezbędną do wykonywania przez nią określonej funkcji.
- Uczenie maszynowe na urządzeniu: w przypadku danych o wysokiej wrażliwości rozważ użycie modeli uczenia maszynowego na urządzeniu, w których dane nigdy nie opuszczają urządzenia użytkownika, co znacznie zmniejsza ryzyko wycieku danych po stronie serwera.
Kontrolowanie dostępu
- Ogranicz dostęp do danych: zaprojektuj aplikację z LLM tak, aby miała dostęp do jak najmniejszej ilości danych. Jeśli model nie ma dostępu do bazy danych zawierającej informacje poufne, preferencji użytkownika ani prywatnych plików, nie można go nakłonić do ujawnienia ich zawartości.
- Ogranicz uprawnienia Androida: sprawdź, czy komponenty AI aplikacji działają z absolutnie minimalnym zakresem uprawnień Androida. Nie przyznawaj niepotrzebnych uprawnień, które mogą ujawniać dane wrażliwe.
Filtrowanie danych wyjściowych w aplikacji:
- Redagowanie po stronie klienta: wdróż w aplikacji na Androida warstwę zabezpieczeń, która skanuje dane wyjściowe modelu LLM pod kątem wzorców pasujących do informacji poufnych (np. numerów kart kredytowych, kluczy interfejsu API, numerów ubezpieczenia społecznego, adresów e-mail), zanim odpowiedź zostanie wyświetlona użytkownikowi. Jeśli znajdziemy dopasowanie, odpowiedź powinna zostać zablokowana lub zredagowana.
Instrukcje dotyczące ochrony modeli LLM:
- Wyraźne prompty systemowe: w prompcie systemowym umieść wyraźne instrukcje, które zabraniają modelowi ujawniania jakichkolwiek informacji osobistych, poufnych lub wrażliwych. Na przykład: „W żadnym wypadku nie wolno udostępniać żadnych danych użytkowników, danych wewnętrznych ani informacji umożliwiających identyfikację”. Wzmacnia to oczekiwane zachowanie.
Techniki zwiększające ochronę prywatności:
- W przypadku aplikacji, które uczą się na podstawie interakcji lub danych użytkowników, rozważ zaawansowane techniki, takie jak prywatność różnicowa (dodawanie do danych szumu statystycznego) lub sfederowane uczenie się (trenowanie modeli na urządzeniach użytkowników bez centralizowania danych), aby chronić prywatność poszczególnych osób.
Regularne audyty i testy zespołu red team:
- Proaktywne testowanie: aktywnie testuj i sprawdzaj aplikację na Androida, aby dowiedzieć się, czy i w jaki sposób duży model językowy może ujawniać informacje poufne. Polega to na celowym próbowaniu nakłonienia modelu LLM do ujawnienia danych, których nie powinien ujawniać.
Podsumowanie
Ujawnienie informacji wrażliwych następuje, gdy LLM ujawnia dane poufne ze swojego zbioru treningowego lub sesji użytkownika, co stwarza znaczne ryzyko, takie jak naruszenie prywatności i kradzież własności intelektualnej. Ograniczenie ryzyka wymaga wielowarstwowej ochrony w aplikacji na Androida, która polega na oczyszczaniu danych przed ich przekazaniem do LLM, egzekwowaniu zasady jak najmniejszych uprawnień w celu ograniczenia dostępu modelu do danych oraz wdrażaniu zaawansowanych filtrów do skanowania i redagowania informacji poufnych z końcowego wyniku modelu przed jego przekazaniem do użytkownika. Korzystanie z uczenia maszynowego na urządzeniu i narzędzi takich jak Firebase App Check może dodatkowo zwiększyć bezpieczeństwo.
Dodatkowe materiały
Oto linki do niektórych wskazówek dotyczących informacji poufnych:
Jeśli używasz innych modeli, poszukaj podobnych wskazówek i materiałów.
Więcej informacji: