Twój koszyk jest obecnie pusty!
Popularyzacja poczty elektronicznej w latach dziewięćdziesiątych XX wieku pozwoliła na rozwój rozpowszechnianych za pomocą wiadomości „wirusów”, a rozwój technologii webowych dostarczył cyberprzestępcom nowych metod kradzieży danych i uzyskiwania dostępu do systemów. Smartfony z kolei stały się idealnym celem dla aplikacji typu spyware, takich jak Pegasus. Nie jest więc zaskoczeniem, że pojawienie się aplikacji wykorzystujących sztuczną inteligencję (w szczególności duże modele językowe) otwiera przed hakerami nowe furtki pozwalające na nadużycia. W tym artykule omówię niektóre charakterystyczne dla AI podatności oraz pokażę, jak można się przed nimi uchronić.
Prompt injection
Jednym z zagrożeń, na jakie możemy natknąć się w aplikacji wykorzystującej duże modele językowe, jest prompt injection (brakuje eleganckiego tłumaczenia na język polski, a „wstrzyknięcie monitu” brzmi bardzo nieintuicyjnie – przyp. red.). Osoby posiadające elementarną wiedzę z zakresu bezpieczeństwa aplikacji internetowych mogą w prosty sposób wyrobić sobie intuicję w obszarze tej podatności poprzez analogię do SQL Injection, które pozwala na nieautoryzowany odczyt, usunięcie lub modyfikację treści w bazie danych (każdy programista przynajmniej raz widział komiks XKCD, którego bohaterem jest Bobby Tables). Dla pozostałych to zagrożenie można opisać jako sytuację, w której atakujący tworzy prompt sprawiający, że duży model językowy ignoruje swoje pierwotne instrukcje (takie jak monit systemowy) i zaczyna wykonywać nieautoryzowane przez twórcę działania. Przykładem może być generowanie kodu Python przez facebookowego bota obsługującego profil firmy HR lub zmuszenie ChatGPT do zwracania przepisów pozwalających na produkcję nielegalnych substancji psychoaktywnych lub ładunków wybuchowych. Twórcy standardu bezpieczeństwa dla aplikacji zintegrowanych z LLM – OWASP Top10 for Large Language Models – wyróżniają dwa rodzaje prompt injection: bezpośrednie oraz pośrednie.