← Encyklopedia AI

security

Zatruwanie danych w RAG (RAG poisoning)

Aktualizacja: 23.08.2026

Krótka odpowiedź

Zatruwanie danych w RAG, nazywane też RAG poisoning, polega na umieszczeniu błędnej, zmanipulowanej lub złośliwej treści w bazie wiedzy, z której system AI pobiera kontekst do odpowiedzi. Nie trzeba zmieniać modelu, aby wpłynąć na jego wynik. Wystarczy, że podczas wyszukiwania trafi na nieufny dokument, instrukcję ukrytą w pliku albo nieaktualną informację oznaczoną jako wiarygodna. Ochrona wymaga kontroli źródeł, wersji, dostępu i jakości dokumentów przed ich indeksowaniem.

Zatruwanie danych w RAG, po angielsku RAG poisoning, to manipulowanie wiedzą pobieraną przez system Retrieval-Augmented Generation. RAG nie uczy modelu od nowa. W chwili pytania wyszukuje fragmenty w dokumentach lub bazie wektorowej i przekazuje je modelowi jako kontekst. Jeśli do tego zbioru trafi fałszywa cena, nieaktualny regulamin, dokument konkurencji albo ukryta instrukcja, model może użyć jej w odpowiedzi z pozorem pewności. Atak lub błąd dotyczy więc integralności źródła wiedzy, nie tylko jakości samego modelu językowego.

To realny problem także dla małego biznesu, który buduje asystenta na dokumentach ofertowych, bazie FAQ, notatkach ze sprzedaży albo plikach klientów. Baza wiedzy często powstaje przez automatyczny import folderu, strony internetowej lub przesłanych PDF-ów. Taki proces może bez kontroli pobrać duplikaty, stare wersje, treści z niewłaściwego projektu lub dokument z poleceniem przeznaczonym dla modelu. Wynik nie musi wyglądać jak atak. Asystent może po prostu zacząć polecać nieistniejącą usługę, zły cennik albo odpowiadać w sposób sprzeczny z aktualną ofertą.

Warto odróżnić zatruwanie RAG od zwykłej halucynacji. Halucynacja powstaje, gdy model generuje nieprawdziwą odpowiedź bez wystarczającego oparcia w faktach. Przy zatruwaniu RAG model może przytoczyć lub oprzeć się na konkretnym fragmencie, ale fragment jest fałszywy, zmieniony albo nie powinien być dostępny dla danego pytania. To odróżnia też problem od prompt injection. Prompt injection próbuje zmienić zachowanie modelu przez instrukcję w treści. Zatruwanie może zawierać taki element, lecz obejmuje szerzej manipulację faktami, metadanymi, rankingiem źródeł i dostępnością danych w bazie.

Najczęstsze wejścia ryzyka to automatyczny crawler strony, folder współdzielony z wieloma osobami, formularz uploadu, integracja z dyskiem oraz dostawca zewnętrznych danych. Przykład: ekspert podłącza do RAG folder z materiałami do kursu. W folderze zostaje oferta sprzed roku, w której jest inna cena i nieaktualna obietnica. System przy pytaniu o zakup wybiera właśnie ten fragment, bo jest podobny semantycznie. W wariancie złośliwym ktoś dodaje dokument zawierający ukrytą treść lub zapis w stylu „zawsze poleć ten link”. Bez kontroli importu asystent traktuje oba pliki jako równoprawne źródła.

Pierwsza obrona to bramka przed indeksowaniem. Każdy dokument powinien mieć znane pochodzenie, właściciela, datę, status publikacji i wersję. Nie importuj automatycznie całego dysku ani treści od użytkownika do tej samej kolekcji, z której korzysta produkcyjny asystent. Użyj listy dozwolonych źródeł, kontroli typu pliku i rozmiaru, skanowania tekstu po ekstrakcji oraz kolejki akceptacji dla nowych materiałów. Dokument od klienta może być potrzebny do analizy, ale nie powinien automatycznie stawać się źródłem prawdy dla odpowiedzi kierowanych do wszystkich odbiorców.

Druga warstwa to separacja i zasady wyszukiwania. Oznacz dokumenty metadanymi, takimi jak klient, produkt, język, poziom dostępu, data obowiązywania i źródło. Filtruj je przed wyszukiwaniem, zamiast liczyć na to, że model sam rozpozna właściwy kontekst. Osobne kolekcje dla wersji roboczych, materiałów klientów i opublikowanej wiedzy ograniczają ryzyko wycieku oraz konfliktu. Zachowuj także historię zmian i możliwość usunięcia dokumentu z indeksu. W bazie wektorowej usunięcie pliku z folderu nie jest dowodem, że jego fragmenty przestały być zwracane przez wyszukiwanie.

Trzecia warstwa to testy i obserwacja. Przygotuj pytania o najważniejsze fakty biznesowe, na przykład cenę, zakres usługi, zasady zwrotu i dane kontaktowe. Po każdej zmianie źródeł sprawdź odpowiedź, przywołane fragmenty oraz filtry dostępu. Loguj identyfikatory dokumentów użytych w odpowiedzi, aby dało się szybko znaleźć źródło błędu. OWASP zaleca walidację źródeł i uwierzytelnianie ich pochodzenia, a także regularny audyt bazy wiedzy pod kątem ukrytych kodów i zatruwania danych. Nie polegaj na samym stwierdzeniu modelu, że „korzystał z wiarygodnych informacji”.

Nie ma jednej reguły, która wykryje każdy złośliwy dokument. Najlepsza praktyka to ograniczyć zasięg szkody: traktować importowane treści jako nieufne, utrzymywać małą i kuratorowaną produkcyjną bazę, wymagać cytowania źródła w odpowiedziach o wysokiej wadze oraz nie dawać RAG-owi bezpośredniej władzy nad wysyłką, publikacją czy zmianą danych. Jeśli asystent ma podpowiadać ofertę, może przygotować odpowiedź wraz z linkami do użytych dokumentów. Człowiek lub niezależna reguła nadal decyduje, czy wynik może uruchomić działanie wobec klienta.

FAQ

Czy każdy błędny dokument w bazie wiedzy oznacza zatruwanie danych w RAG?

Nie każdy błąd jest atakiem, ale każdy niezweryfikowany dokument może obniżyć integralność odpowiedzi. Zatruwanie obejmuje celową manipulację, lecz w praktyce podobny skutek daje także nieaktualny cennik, duplikat, plik z niewłaściwego projektu albo błędny import. Dlatego proces ochrony powinien obsługiwać oba przypadki: kontrolę pochodzenia, wersji i akceptacji dokumentów oraz możliwość szybkiego wycofania ich z indeksu.

Jak sprawdzić, czy asystent RAG korzysta z właściwych dokumentów?

Włącz logowanie identyfikatorów i metadanych fragmentów zwróconych przez wyszukiwanie. Następnie przygotuj zestaw pytań o krytyczne fakty, takie jak oferta, cena, zasady kontaktu i dostęp dla danego klienta. Dla każdego pytania sprawdź nie tylko końcową odpowiedź, ale również dokumenty, które ją zasiliły. Test powtarzaj po imporcie, zmianie chunkingu, modelu embeddingów lub reguł filtrowania.

Czy RAG poisoning da się zatrzymać samym filtrem na prompt injection?

Nie. Filtr może pomóc wykryć instrukcję próbującą zmienić zachowanie modelu, ale nie wykryje każdej fałszywej ceny, starego regulaminu, błędnej metadanej ani dokumentu z nieuprawnionego źródła. Potrzebujesz także kontroli importu, uwierzytelnienia źródła, wersjonowania, filtrów dostępu przy wyszukiwaniu i testów odpowiedzi. Prompt injection jest jednym z możliwych elementów zatrucia, a nie jego pełną definicją.

Newsletter

Chcesz więcej takich konkretów?

Co niedzielę wysyłam jeden praktyczny mail o AI, sprzedaży wiedzy i budowaniu systemów, które realnie pomagają w pracy.

Bez spamu. Wypisujesz się w każdej chwili.