Bezpieczeństwo systemu RAG: 10 pytań, które zada Twój dział IT
← Blog
Bezpieczeństwo

Bezpieczeństwo systemu RAG: 10 pytań, które zada Twój dział IT

Gdzie leżą dane, czy trafiają do zewnętrznych modeli, czy służą do trenowania AI, jak działa szyfrowanie i audyt. Odpowiedzi na pytania, które padają w każdym due diligence przed wdrożeniem RAG.

Zapytanie ofertowe na system RAG coraz rzadziej zaczyna się od listy funkcji. Zaczyna się od pytań działu IT o to, gdzie fizycznie leżą dane i co je opuszcza. To dobra zmiana, bo odpowiedzi na te pytania są sprawdzalne, a lista funkcji nie.

Poniżej dziesięć pytań, które dostajemy najczęściej, z odpowiedziami. Rozdzielamy przy tym dwie rzeczy, które w materiałach dostawców bywają zlewane: co działa dziś i co jest w planach. To łatwo sprawdzić, a rozjazd między deklaracją a stanem faktycznym wychodzi zawsze w najgorszym momencie, czyli przy due diligence.

1. Gdzie fizycznie przechowywane są dane

Tam, gdzie zainstalujesz system. Ragen jest self-hosted: dokumenty, baza danych, indeks wektorowy, historia rozmów, kopie zapasowe i klucze szyfrujące leżą na infrastrukturze, którą kontrolujesz. Nie utrzymujemy kopii po swojej stronie i nie ma kanału telemetrycznego, który wysyłałby cokolwiek do nas.

Przechowywanie to jednak nie całe pytanie. To, czy treść dokumentów jest gdzieś przesyłana w trakcie przetwarzania, zależy od konfiguracji warstwy modelu (piszemy o tym w punkcie trzecim). Wdrożenie może trzymać wszystko lokalnie i mimo to wysyłać tekst do zewnętrznego API, żeby uzyskać odpowiedź.

2. Czy rozwiązanie działa on-premise lub w chmurze prywatnej

Tak, i to jest domyślny sposób działania, a nie wariant. Przechowywanie plików, zarządzanie kluczami, kolejkowanie zadań, wyszukiwanie i parsowanie dokumentów działają lokalnie.

Poza warstwą modelu system potrzebuje z zewnątrz dwóch rzeczy: serwera poczty do powiadomień (może być Twój wewnętrzny) oraz jednorazowego pobrania obrazów kontenerów przy instalacji. Potem ruch wychodzący można odciąć, a aktualizacje dostarczać jako paczki do wewnętrznego rejestru obrazów.

3. Czy dane trafiają do zewnętrznych modeli AI

To najważniejsze pytanie z całej listy i jedyne, na które uczciwa odpowiedź brzmi „to zależy od konfiguracji”.

Wszystkie wywołania modeli idą przez proxy, które również uruchamiasz u siebie. To ono decyduje, który backend odpowiada, i dlatego warstwa modelu jest wymienna.

KonfiguracjaCo opuszcza Twoją sieć
Model uruchomiony lokalnieNic w normalnej pracy
Model komercyjnyTreść zapytania i fragmenty dokumentów potrzebne do odpowiedzi

Dwie rzeczy, zanim uznasz system za odcięty:

Parsowanie dokumentów jest domyślnie lokalne, ale ma fallback. Dokumenty są przetwarzane na Twoim sprzęcie: analiza układu strony, wyciąganie tabel i OCR skanów działają w kontenerze, który stoi u Ciebie. Jeśli jednak lokalny parser zawiedzie, system domyślnie schodzi do zapasowej ścieżki, która wysyła PDF do zewnętrznego modelu. Dla wdrożenia, które nie może tego zrobić, jest przełącznik wymuszający błąd zamiast fallbacku. Nie jest opcjonalny. Bez niego awaria parsera wysłałaby dokument na zewnątrz dokładnie wtedy, gdy lokalne przetwarzanie jest niedostępne.

Pełne odcięcie to praca wdrożeniowa, nie flaga w konfiguracji. Architektura to przewiduje, ale uruchomienie sensownego modelu na własnym sprzęcie oznacza moc GPU, a modele lokalne odpowiadają dziś słabiej niż komercyjne. To, o ile słabiej, zależy od Twoich dokumentów i Twoich pytań. To jest mierzalne i uważamy, że powinieneś to zobaczyć na własnym materiale, zanim wybierzesz wariant.

4. Czy dokumenty służą do trenowania modeli

Nie. Nie trenujemy ani nie dostrajamy modeli na danych klientów i nie wykorzystujemy Twoich dokumentów do rozwoju produktu. W systemie nie ma potoku treningowego: nie istnieje kod, który mógłby to zrobić.

Jeśli kierujesz ruch do modelu komercyjnego, obowiązują warunki jego dostawcy. Wersje enterprise dużych dostawców oferują zerową retencję; potwierdź warunki dla swojego planu. Jeśli to pytanie ma być nie tyle odpowiedziane, co niemożliwe do zadania, uruchom model lokalnie.

5. Jakie stosujemy szyfrowanie

W spoczynku. Treść wiadomości szyfrujemy algorytmem AES-256-GCM w schemacie kopertowym: każdy wątek rozmowy ma własny klucz, a ten klucz jest zaszyfrowany kluczem głównym, który leży w Twoim module zarządzania kluczami. Obsługujemy trzy warianty dostawcy klucza, w tym klucz lokalny pod kontrolą Twojego administratora.

Jedna rzecz wymaga świadomej konfiguracji: szyfrowanie jest opcjonalne i domyślnie wyłączone, żeby środowisko deweloperskie działało bez modułu kluczy. Instalacja produkcyjna musi jawnie wskazać dostawcę klucza. Sprawdzisz to w bazie i lepiej zrobić to na starcie niż przy audycie.

Tytuły wątków celowo zostają jawne, żeby działało po nich wyszukiwanie. To świadomy kompromis, nie przeoczenie.

W transporcie. TLS na połączeniach z aplikacją. Ruch między komponentami zostaje w Twojej sieci i jest dodatkowo uwierzytelniany podpisem kryptograficznym, więc nie da się podszyć pod komponent od środka.

6. Jak zabezpieczony jest dostęp do dokumentów

Dwie niezależne hierarchie ról: poziom aplikacji i poziom organizacji. Na to nakładają się uprawnienia do folderów i pojedynczych plików, nadawane osobom i zespołom. Dostęp programistyczny wyłącznie przez klucze API przechowywane w formie nieodwracalnej.

Pytanie, które odsiewa dostawców: czy uprawnienia działają na poziomie wyszukiwania, czy tylko interfejsu.

U nas każdy zaindeksowany fragment dokumentu niesie listę uprawnionych, a zapytanie użytkownika bez roli administratora nakłada ten filtr przed wyszukiwaniem wektorowym. Treść, do której użytkownik nie ma dostępu, nie może więc pojawić się ani w odpowiedzi, ani w cytowanym źródle.

To ma znaczenie, bo częsty błąd w innych wdrożeniach wygląda tak: filtr uprawnień działa na liście plików, ale wyszukiwanie przeszukuje cały zasób. Użytkownik nigdy nie zobaczy dokumentu, a mimo to dostanie odpowiedź zbudowaną na jego treści. Proponujemy sprawdzić to testem na Twoich rolach, zanim cokolwiek trafi na produkcję.

Izolację między organizacjami egzekwujemy osobno. Każda organizacja dostaje własną kolekcję w bazie wektorowej, a automatyczny mechanizm kontrolny wykrywa zapytania bez filtra organizacji.

7. Czy administrator ma pełną kontrolę nad danymi

Nośniki, kopie zapasowe, klucze i baza są Twoje, więc operator z dostępem do bazy i dysku ma pełną kontrolę nad przechowywanymi danymi z definicji.

To, co oferuje sama aplikacja, jest węższe i lepiej wiedzieć to zawczasu niż odkryć w trakcie audytu:

  • właściciele i administratorzy organizacji usuwają pliki i odbierają uprawnienia w obrębie swojej organizacji oraz zarządzają użytkownikami, modelami i limitami
  • eksport dotyczy pojedynczego wątku i wymaga własności lub roli administratora organizacji; nie ma trasy „eksportuj wszystko”
  • usuwanie dokumentu czyści też wpisy w indeksie wektorowym, ale ta operacja może zawieść niezależnie od usunięcia z bazy, więc przy operacjach masowych trzeba weryfikować, a nie zakładać
  • wyłączenie systemu to działanie operatora infrastruktury, nie przycisk w panelu

Nie mamy stałego dostępu do Twojego wdrożenia. Każdy dostęp, który mamy, jest nadany imiennie i odwoływalny.

8. Jak dane są chronione w transmisji i spoczynku

Odpowiedź w punkcie piątym. Dochodzą do tego trzy mechanizmy, o które klienci zwykle nie pytają wprost, a które mają znaczenie przy dokumentacji technicznej:

  • kontrola wczytywanych dokumentów pod kątem ukrytych instrukcji, które mogłyby wpłynąć na zachowanie systemu
  • traktowanie treści dokumentów jako danych, nie poleceń, z regresyjnym zestawem testów, który sprawdza, czy asystent nie da się namówić na ujawnienie własnej instrukcji systemowej
  • wykrywanie danych osobowych z obsługą polskich identyfikatorów (PESEL, NIP, REGON, dowód, IBAN). To funkcja opcjonalna, domyślnie wyłączona, bo wymaga dodatkowych komponentów. Włącza się jednym ustawieniem

9. Jakie są mechanizmy audytu i logowania

Dwa rozdzielne dzienniki.

Dziennik operacyjny rejestruje, kto, co i kiedy zrobił, ze stanem przed zmianą i po niej: wczytanie i usunięcie dokumentu, zmianę uprawnień i ról, utworzenie i odebranie klucza API.

Dziennik bezpieczeństwa obejmuje 21 typów zdarzeń w trzystopniowej skali krytyczności i ze statusem obsługi: nieudane logowania i próby siłowe, próbę dostępu do zasobów innej organizacji, wykrytą próbę manipulacji zapytaniem, wykryte dane osobowe, przekroczenie limitów. Każdy wpis zawiera adres IP, identyfikator żądania i przeglądarkę.

Uczciwie: żaden z dzienników nie ma polityki retencji ani automatycznego usuwania. Wpisy rosną w bazie, dopóki ich nie usuniesz. Obie tabele zawierają dane osobowe, więc retencję definiuje operator i powinno to trafić do procedury od pierwszego dnia.

10. Czy da się całkowicie odizolować system od publicznych usług AI

Tak, konstrukcja to przewiduje, bo warstwa modelu jest oddzielona od reszty systemu. Zastrzeżenia z punktu trzeciego pozostają w mocy: to praca wdrożeniowa, wymaga GPU, a różnicę w jakości odpowiedzi trzeba zmierzyć na własnym materiale.

Własność danych

Twoje dokumenty, zbudowany na nich indeks oraz wygenerowane odpowiedzi pozostają Twoją własnością. Nie nabywamy do nich praw, nie wykorzystujemy ich do rozwoju produktu i nie udostępniamy nikomu.

Co działa dziś, a co jest w planach

Ta tabela jest w tym wpisie celowo. Materiały dostawców zwykle mieszają jedno z drugim, a przy poważnym wdrożeniu to właśnie ta różnica decyduje o harmonogramie.

ObszarStan
Self-hosting, brak telemetrii do dostawcyDziała
Lokalne parsowanie dokumentów i OCRDziała (domyślnie)
Szyfrowanie kopertowe AES-256-GCM, klucz per rozmowaDziała (wymaga konfiguracji dostawcy klucza)
Uprawnienia egzekwowane na poziomie wyszukiwaniaDziała
Izolacja między organizacjamiDziała
Dziennik operacyjny ze stanem przed/poDziała
Dziennik bezpieczeństwa, 21 typów zdarzeńDziała
Wykrywanie danych osobowych (polskie identyfikatory)Działa (opcjonalne)
Cytowanie źródeł z odwołaniem do pliku i sekcjiDziała
Logowanie jednokrotne (SSO): SAML, Entra ID, SCIMPlanowane
Uwierzytelnianie dwuskładnikowe i klucze passkeyPlanowane
Eksport dzienników do systemu SIEMPlanowane
Gotowa, przetestowana konfiguracja w pełni odciętaPlanowane
Polityka retencji dziennikówPlanowane

Pozycje oznaczone jako planowane są w naszym backlogu. Jeśli któraś jest dla Ciebie warunkiem wdrożenia, powiedz o tym na etapie rozmowy. To realnie wpływa na kolejność prac, a my wolimy powiedzieć „jeszcze nie” niż tłumaczyć się z tego później.

Jak to zweryfikować

Nie musisz nam wierzyć na słowo i nie powinieneś. Ragen jest oprogramowaniem open source na licencji Apache 2.0: decyzje architektoniczne, kod odpowiadający za izolację i szyfrowanie oraz zestawy testów mierzące jakość odpowiedzi są jawne.

Najlepsze, co możesz zrobić przed decyzją, to kontrolowany test na własnych dokumentach, własnych rolach i własnych pytaniach. Wolimy, żebyś to zmierzył, niż uwierzył w tabelkę. Również naszą.


Jeśli przygotowujesz zapytanie ofertowe na system RAG, chętnie przejdziemy przez te dziesięć punktów pod kątem Twojego środowiska: polityki ruchu wychodzącego, dostępnego sprzętu i tego, jakie pytania system ma naprawdę obsłużyć. Odezwij się.

Najczęstsze pytania

Czy dane z systemu RAG trafiają do zewnętrznych modeli AI? +

To zależy wyłącznie od konfiguracji warstwy modelu, czyli jedynej części systemu, która w ogóle wychodzi na zewnątrz. Przy modelu uruchomionym na Twoim sprzęcie nie wychodzi nic. Przy modelu komercyjnym wychodzi treść zapytania i fragmenty dokumentów potrzebne do odpowiedzi. Same dokumenty, indeks i historia zostają u Ciebie. Parsowanie dokumentów działa lokalnie w domyślnej konfiguracji.

Czy moje dokumenty posłużą do trenowania modelu AI? +

Nie. Ragen nie ma potoku treningowego: nie istnieje w nim kod, który mógłby to zrobić. Jeśli kierujesz zapytania do modelu komercyjnego, obowiązują warunki jego dostawcy; wersje enterprise oferują zerową retencję. Przy modelu lokalnym pytanie w ogóle nie powstaje.

Czy uprawnienia działają na poziomie wyszukiwania, czy tylko interfejsu? +

Na poziomie wyszukiwania. Każdy fragment dokumentu ma w bazie wektorowej listę uprawnionych, a zapytanie użytkownika bez roli administratora nakłada ten filtr przed samym wyszukiwaniem. Treść, do której nie masz dostępu, nie może pojawić się w odpowiedzi ani w cytowanym źródle. To pytanie zadaj każdemu dostawcy. Częstym błędem jest filtr, który działa na liście plików, podczas gdy wyszukiwanie przeszukuje cały zasób.

Czy system może działać całkowicie odcięty od internetu? +

Architektura to przewiduje. Warstwa modelu jest oddzielona od reszty systemu, a parsowanie dokumentów działa lokalnie. Uruchomienie modelu na własnym sprzęcie jest jednak pracą wdrożeniową, a nie przełącznikiem w konfiguracji: wymaga mocy GPU, a modele lokalne odpowiadają dziś słabiej niż komercyjne. Tę różnicę da się zmierzyć na Twoich dokumentach i Twoich pytaniach. Naszym zdaniem trzeba to zrobić przed wyborem wariantu.

Czy administrator ma pełną kontrolę nad danymi? +

Nośniki, kopie zapasowe, klucze i baza są po Twojej stronie, więc operator z dostępem do bazy i dysku ma kontrolę nad danymi z definicji. W samej aplikacji uprawnienia są węższe i lepiej wiedzieć to zawczasu: eksport dotyczy pojedynczego wątku, nie całości, a wyłączenie systemu to działanie na poziomie infrastruktury, nie przycisk w panelu.