Wybierasz model, zadajesz pytanie i otrzymujesz odpowiedź. Za tą znaną nam wymianą kryje się mniej znany proces obejmujący logi poleceń, zmieniające się tożsamości modeli oraz serwery, których rola nigdy nie jest wyjaśniana użytkownikom.
Na pierwszy rzut oka nic w tej rozmowie nie wydaje się niezwykłe. Otwierasz stronę g4f.dev, wybierasz jeden z wielu oferowanych modeli AI, wpisujesz pytanie i obserwujesz, jak pojawia się odpowiedź. Wymiana wydaje się bezpośrednia, niemal prywatna: ty, strona internetowa i model, którego nazwę wybrałeś.
Postanowiliśmy podążać za poleceniem. To, co wyglądało na prostą rozmowę, szybko stało się znacznie bardziej skomplikowane, a potencjalnie rolę odgrywały w tym infrastruktura GPT4Free, kod dostawcy, usługi stron trzecich oraz zewnętrzne punkty końcowe modeli. W trakcie tego procesu szczegóły dotyczące żądania mogły być rejestrowane wraz z adresem IP użytkownika i przybliżoną lokalizacją, podczas gdy model wskazany w interfejsie nie zawsze odpowiadał modelowi zidentyfikowanemu w odpowiedzi.
Najdziwniejsze okazało się to, gdy sprawdziliśmy, gdzie niektóre z tych żądań mogły być przetwarzane. Projekt zawiera listy systemów Ollama dostępnych z zewnątrz, w tym serwery na domenach o charakterze prywatnym oraz infrastrukturę powiązaną z organizacjami lub innymi usługami. Związek tych podmiotów z GPT4Free nie jest jasno przedstawiony osobie, której polecenie może zostać wysłane w ich kierunku.
Nie jest to opowieść o każdej darmowej usłudze AI, a sam fakt, że coś jest „darmowe”, nie stanowi dowodu na nic złowrogiego. Jest to spojrzenie na jedną popularną usługę i na to, jak niewiele dopracowany interfejs chatbota może ujawnić na temat ludzi, systemów i praktyk związanych z danymi, funkcjonujących za jego kulisami.

Postępowaliśmy zgodnie z poleceniem
GPT4Free to cieszący się dużą popularnością projekt open source, który można zainstalować lokalnie, ale prowadzi on również hostowaną usługę czatu pod adresem g4f.dev. Nasza analiza skupiała się na tej hostowanej wersji, w której odwiedzający mogą wybierać spośród modeli noszących nazwy kojarzone z OpenAI, Google, Anthropic i innymi twórcami bez konieczności zakładania oddzielnych kont w tych firmach.

Za tym jednym interfejsem kryje się zbiór dostawców – niewielkich fragmentów kodu, które przyjmują żądanie czatu i dostosowują je do wymagań kolejnej usługi. Niektóre z nich kierują do oficjalnych punktów końcowych modeli, inne odtwarzają wymianę danych internetowych stosowaną przez zewnętrzne serwisy AI, a jeszcze inne korzystają z serwerów niestandardowych. Trasy, które pod względem technicznym bardzo się od siebie różnią, stają się wizualnie nie do odróżnienia, gdy pojawiają się w tym samym menu modeli.
Postępowanie zgodnie z żądaniem oznaczało zatem spojrzenie poza etykietę w interfejsie. Porównaliśmy model wybrany przez użytkownika z dostawcą wybranym przez GPT4Free, wysłane dalej żądanie oraz identyfikator zwrócony wraz z odpowiedzią. Właśnie wtedy ta pozornie prosta rozmowa zaczęła się rozchodzić.
Model, który wybraliśmy, nie zawsze był tym samym modelem, który udzielał odpowiedzi
W kilku naszych testach wykorzystaliśmy opcje powiązane z dostawcą Gemini. Prompty przechodziły przez punkt końcowy czatu zgodny z OpenAI na stronie g4f.space, zanim zostały przekierowane do infrastruktury Gemini firmy Google, ale w niektórych z tych wymian model wymieniony w odpowiedzi różnił się od tego, który wybraliśmy w GPT4Free.

Podczas naszych testów zaobserwowaliśmy wiele przypadków, w których model wskazany w odpowiedzi różnił się od tego, o który proszono. Google informuje, że najnowszy alias może zostać zaktualizowany do nowszej wersji w ramach tej samej odmiany modelu, co może wyjaśniać niektóre zmiany modeli. Jednak to udokumentowane zachowanie nie wyjaśnia przypadków, w których żądania dotyczące Gemini Pro lub Gemini Omni skutkowały odpowiedziami wskazującymi na model models/gemini-3-flash-preview. Kod serwisu GPT4Free wykorzystuje domyślny model (defaultModel), gdy nie podano żadnego modelu lub gdy wybór jest ustawiony na „auto”, ale żadna z tych sytuacji nie miała miejsca podczas tych testów. Na podstawie obecnie dostępnych dowodów nie jesteśmy w stanie ustalić, w którym miejscu łańcucha model został zmieniony ani która usługa była za to odpowiedzialna.
Dla użytkownika czatu niepewność pozostaje niezależnie od tego, który system dokonał zmiany. Wybór modelu w agregatorze informuje, o co poprosiłeś, ale nie dowodzi, co ostatecznie przetworzyło polecenie. Ustalenie tego wymaga pełnego śladu – od interfejsu i dostawcy, przez żądanie wysłane w górę łańcucha, aż po identyfikator zwracany wraz z odpowiedzią.
Następnie ślad doprowadził do serwerów AI innych osób
Dochodzenie stało się jeszcze bardziej nietypowe, gdy dotarliśmy do serwisu Ollama.swarm. Ollama umożliwia użytkownikom uruchamianie dużych modeli językowych na własnych komputerach, a znaczna część jej atrakcyjności pod względem prywatności wynika z przechowywania zapytań i odpowiedzi na tym sprzęcie. Jej interfejs API zazwyczaj nasłuchuje wyłącznie na komputerze lokalnym, chociaż właściciel może udostępnić go szerszej sieci – celowo lub w wyniku błędu konfiguracyjnego – a udostępniona instancja może stać się dostępna z publicznej sieci internetowej.
Kod dostawcy GPT4Free opiera się na plikach JSON zawierających adresy zewnętrznych punktów końcowych AI. Jeden plik startowy opisuje 196 źródeł Ollama i faktycznie zawiera nieco ponad 200 wpisów. Komentarz przypisuje 20 z nich serwisowi Shodan, podczas gdy pochodzenie pozostałych pozostaje niewyjaśnione w przeanalizowanych przez nas materiałach. Kiedy przetestowaliśmy wybrane pozycje, niektóre z nich odpowiadały jako działające usługi Ollama lub llama.cpp, a inne już zniknęły.

Projekt udostępnia również bogatsze źródło informacji na temat listy niestandardowych dostawców (Custom Providers). Wpisy w publicznych metadanych serwerów mogą zawierać podstawowy adres URL, obsługiwane modele oraz inne informacje dotyczące routingu, natomiast pole is_ollama identyfikuje te serwery, które zostały skonfigurowane jako usługi Ollama. Znaleźliśmy tam serwery GPT4Free, ale również domeny o charakterze prywatnym oraz infrastrukturę powiązaną z organizacjami lub usługami niezwiązanymi z tematem.

Sama lista nie pozwala ustalić, dlaczego każdy z serwerów się na niej znajduje. Jego właściciel może świadomie udostępniać moc obliczeniową GPT4Free, mógł udostępnić usługę w innym celu lub może w ogóle nie zdawać sobie sprawy, że jest ona dostępna. Nie możemy zatem zbiorczo opisać wymienionych systemów jako naruszonych ani twierdzić, że wszystkie są wykorzystywane bez zgody. Widzimy jedynie usługę oferującą je jako możliwe miejsca docelowe bez wyjaśniania ich własności lub roli osobie wpisującej polecenie.
Jeśli rozmowa dotrze do jednego z tych systemów, jej prywatność nie zależy już wyłącznie od GPT4Free ani od firmy stojącej za modelem. Zależy ona również od punktu końcowego, którego użytkownik nie wybrał i o którego istnieniu może nigdy się nie dowiedzieć, co uniemożliwia praktyczną ocenę, czy polecenie jest tam rejestrowane, jak długo pozostaje w pamięci lub co jeszcze może się z nim stać.
Aby dotrzeć do innego dostawcy, kod przyjmuje przykrywkę
Toolbaz przedstawił inny przykład działania warstwy dostawcy. Witryna pozwala użytkownikom wypróbować kilka modeli sztucznej inteligencji w przeglądarce i wykorzystuje automatyczne kontrole mające na celu rozpoznanie prawdziwego odwiedzającego korzystającego z prawdziwego urządzenia. Zbadana przez nas integracja odtwarza żądanie sieciowe oczekiwane przez Toolbaz i tworzy wiarygodny odcisk palca przeglądarki zawierający wymiary ekranu, język, strefę czasową i inne szczegóły. Generuje również nową tożsamość dla każdego żądania.

W połączeniu mechanizmy te sprawiają, że zautomatyzowane żądania wyglądają bardziej jak oddzielne wizyty użytkowników, a mechanizmy kontrolne powiązane z powtarzającą się tożsamością stają się mniej skuteczne.
W odpowiedzi pojawiła się również kolejna nieznana nazwa modelu. Wysłaliśmy żądanie dotyczące modelu gpt-5.2, ale zwrócone metadane wskazywały na model toolbaz-v4.5-fast. Toolbaz opisuje ToolBaz-v4.5-Fast jako swój własny model i przedstawia go oddzielnie od GPT-5.2. Wskazuje to, że odpowiedź nie została zidentyfikowana jako model wybrany w GPT4Free, chociaż nie jesteśmy w stanie określić architektury ani technologii leżącej u podstaw zastrzeżonego modelu Toolbaz.
Rozmowa nie przechodzi po prostu bez echa
Zgodnie z podaną instrukcją wyjaśniono, dokąd mogą trafić dane, ale kod ujawnił również, co GPT4Free może zachować. Naukowcy odkryli odrębne ścieżki kodu dotyczące rejestrowania użytkowania i błędów, w tym logikę przechowywania obejmującą 14 dni dla logów użytkowania i 30 dni dla logów błędów.
Kod rejestrujący korzystanie zawiera pola dotyczące adresu IP wnioskodawcy, przybliżonej lokalizacji geograficznej, dostawcy, modelu oraz danych rozmowy. Badacze nie mieli dostępu do samych przechowywanych dzienników, więc niniejsze ustalenia opisują zachowanie rejestrowania zaimplementowane w kodzie, a nie zawartość aktualnych plików dziennika serwisu.
Interakcja między interfejsem czatu a tą logiką rejestrowania stwarza nieoczekiwaną możliwość. W trybie domyślnym przeglądarka ponownie wysyła całą rozmowę za każdym razem, gdy użytkownik dodaje kolejną wiadomość. Zgodnie z naszą analizą moduł rejestrujący odczytuje pierwszy wpis, a następnie zatrzymuje się, przez co początkowy komunikat jest wielokrotnie dostępny do zarejestrowania, podczas gdy późniejsze wiadomości docierają do serwera bez wpisywania ich w ten sam sposób do dziennika użytkowania GPT4Free.

Oczywistym odruchem mogłoby być włączenie opcji „Wyłącz historię rozmów”, ale spowodowałoby to zmianę struktury każdego żądania. Przeglądarka wysyła wówczas po jednej wiadomości na raz, umieszczając każde nowe polecenie na pierwszej pozycji, gdzie ta sama funkcja rejestrowania może je przechwycić.

Ustawienie, które wydaje się zapewniać większą prywatność, może zatem spowodować, że więcej poszczególnych poleceń trafi do dziennika użytkowania serwisu. Opcja „Wyłącz historię rozmów” dokładnie opisuje zmiany w interfejsie przeglądarki, ale nie informuje użytkownika o tym mniej intuicyjnym skutku, który się za nią kryje.
Poszukiwaliśmy wyjaśnienia
Na tym etapie wiedzieliśmy już, że zapytania mogą być kierowane do kilku dostawców, że wyświetlany model nie zawsze rozstrzygał kwestię tego, który model udzielił odpowiedzi, oraz że GPT4Free może przechowywać dane rozmów wraz z informacjami o sieci i lokalizacji. Następnie szukaliśmy dokumentów, które zazwyczaj wyjaśniają użytkownikom te praktyki.
Zidentyfikowaliśmy wersje strony członków projektu na dwóch powiązanych domenach: gpt4free.github.io oraz g4f.dev. Obie proszą odwiedzających o wyrażenie zgody na Politykę prywatności i Warunki korzystania z usługi, jednak kliknięcie któregokolwiek z linków prowadziło do tej samej Strefy członkowskiej zamiast otworzyć obiecany dokument.

Ponieważ niedziałające linki niekoniecznie oznaczają brak dokumentów, przeszukaliśmy obie domeny osobno w poszukiwaniu stron zawierających sformułowania dotyczące prywatności lub warunków korzystania z usługi. Przejrzeliśmy również manifest projektu – dokument najbardziej zbliżony do ogólnego oświadczenia na temat działania serwisu – jednak nie wyjaśnia on, w jaki sposób przetwarzane są dane osobowe ani podpowiedzi. W wyniku tych sprawdzeń Gen Threat Labs nie zdołało znaleźć Polityki prywatności ani Warunków korzystania z usługi dla hostowanego serwisu.
Wyszukiwanie w sieci nie może udowodnić, że strona nieindeksowana gdzieś nie istnieje, dlatego opisujemy to, co udało nam się znaleźć, zamiast twierdzić, że taki dokument w ogóle nie może istnieć. Dla zwykłego użytkownika wynik jest jednak taki sam: usługa wymaga wyrażenia zgody na dwa dokumenty, których nie udostępnia za pośrednictwem własnych linków i których nie udało nam się zlokalizować gdzie indziej.
Pomyśl o poleceniu jako o czymś, co przekazujesz
Otwartość serwisu GPT4Free pozwoliła nam zbadać mechanizmy, które pozostałyby ukryte wewnątrz zamkniętej platformy. Większość odwiedzających nigdy nie przeczyta kodu ani nie podejrzewa, ile systemów może być zaangażowanych w wygenerowanie jednej odpowiedzi.
Każdy, kto korzysta z nieoficjalnej usługi AI, powinien założyć, że polecenie może przechodzić przez kilka podmiotów. Hasła, tokeny uwierzytelniające, poufne dokumenty, informacje wewnętrzne, dane dotyczące zdrowia lub finansów oraz dane o innych osobach nie mają tam miejsca. Usunięcie imienia może nie wystarczyć, jeśli otaczający kontekst nadal pozwala zidentyfikować daną osobę.
Użytkownicy Ollamy stają przed drugą stroną tego samego medalu: lokalny sprzęt nie zapewnia prywatności, jeśli jego API jest udostępnione. To, czy usługa jest bezpłatna czy płatna, ma mniejsze znaczenie niż to, czy operator potrafi wyjaśnić, dokąd trafiają polecenia, kto je przetwarza i co jest przechowywane. Zaczęliśmy od pozornie prostej rozmowy i odkryliśmy wielu dostawców, zmieniające się identyfikatory, punkty końcowe stron trzecich oraz ukryte logi.

Materiał przygotowany przez CORE - Norton, Avast i AVG w Polsce




