GhostCommit: ukryte instrukcje w PNG zagrażają agentom AI i bezpieczeństwu repozytoriów - Security Bez Tabu

GhostCommit: ukryte instrukcje w PNG zagrażają agentom AI i bezpieczeństwu repozytoriów

Cybersecurity news

Wprowadzenie do problemu / definicja

GhostCommit to technika ataku z obszaru prompt injection, w której złośliwe instrukcje są ukrywane w obrazach PNG i odczytywane przez agentów AI wykorzystywanych w procesie tworzenia oprogramowania. Zagrożenie dotyczy przede wszystkim narzędzi analizujących jednocześnie kod, dokumentację, konfiguracje oraz zasoby multimedialne w ramach jednego kontekstu roboczego.

To nowa odmiana ryzyka w łańcuchu dostaw oprogramowania. Niebezpieczny ładunek nie musi znajdować się w kodzie źródłowym ani skryptach — może zostać osadzony w pozornie nieszkodliwym pliku graficznym dołączonym do repozytorium lub pull requesta.

W skrócie

GhostCommit pokazuje, że obraz PNG może pełnić rolę nośnika poleceń dla modelu językowego lub agenta kodującego. Klasyczne narzędzia code review często ignorują obrazy lub traktują je wyłącznie jako binarne zasoby statyczne, podczas gdy agent AI może odczytać z nich ukryte instrukcje i wykonać je w środowisku projektu.

  • Atak wykorzystuje multimodalną analizę obrazu przez agenta AI.
  • Złośliwe polecenia mogą nakłonić narzędzie do przeszukiwania repozytorium i plików środowiskowych.
  • Wykradzione dane mogą zostać ukryte w pozornie niegroźnych zmianach w projekcie.
  • Problem jest trudny do wykrycia przez tradycyjne mechanizmy bezpieczeństwa.

Kontekst / historia

Prompt injection od dawna znajduje się wśród najważniejszych zagrożeń dla systemów opartych na dużych modelach językowych. Wraz z rozwojem narzędzi multimodalnych wzrosło znaczenie ataków, które osadzają polecenia nie tylko w tekście, ale także w obrazach, metadanych, interfejsach i innych artefaktach wejściowych.

GhostCommit wpisuje się w ten trend, ale przenosi go do środowiska programistycznego wspieranego przez AI. W ekosystemie, w którym agenci analizują pull requesty, README, instrukcje operacyjne, pliki konfiguracyjne i załączone zasoby, granica między dokumentacją a powierzchnią ataku szybko się zaciera. W efekcie obraz dołączony do zmian może zostać potraktowany przez agenta jako źródło instrukcji, mimo że człowiek lub klasyczny skaner bezpieczeństwa uzna go jedynie za element pomocniczy.

Analiza techniczna

Rdzeń techniczny ataku opiera się na różnicy między tym, co analizują tradycyjne narzędzia bezpieczeństwa, a tym, co przetwarza agent AI. Standardowe systemy kontroli skupiają się głównie na plikach tekstowych: kodzie, skryptach, konfiguracjach i zależnościach. Obrazy PNG są zazwyczaj klasyfikowane jako zasoby statyczne i nie przechodzą głębokiej inspekcji semantycznej.

Agent AI działający w szerszym kontekście może jednak odczytać treść obrazu za pomocą OCR lub analizy multimodalnej, powiązać ją z innymi elementami projektu i potraktować ukryty komunikat jako instrukcję operacyjną. Jeśli narzędzie ma dostęp do plików lokalnych, pamięci podręcznej, sekretów lub mechanizmów publikowania zmian, złośliwe polecenie może doprowadzić do eksfiltracji danych.

  • odczyt ukrytego tekstu z obrazu,
  • interpretacja go jako polecenia,
  • przeszukanie kontekstu roboczego w poszukiwaniu sekretów,
  • zapisanie lub zakamuflowanie danych w projekcie,
  • przekazanie zmian dalej w łańcuchu CI/CD lub code review.

W scenariuszu GhostCommit złośliwy plik trafia do repozytorium jako element dokumentacji lub załącznik do pull requesta. Narzędzia przeglądowe mogą nie zgłosić żadnych nieprawidłowości, ponieważ nie interpretują obrazu jako nośnika instrukcji. Dopiero agent programistyczny odczytuje osadzony komunikat i wykonuje wynikające z niego działania. Dodatkowym elementem utrudniającym wykrycie może być ukrywanie skradzionych danych w formie list liczb, nietypowych struktur lub innych syntaktycznie poprawnych, ale semantycznie podejrzanych zapisów.

Szczególnie niebezpieczne są środowiska, w których agent posiada szerokie uprawnienia i może jednocześnie czytać zasoby wrażliwe oraz modyfikować pliki projektu. W takim modelu nie dochodzi do klasycznego wykonania złośliwego kodu, lecz do przejęcia logiki decyzyjnej systemu AI.

Konsekwencje / ryzyko

Najpoważniejszym skutkiem GhostCommit jest cichy wyciek danych uwierzytelniających i materiałów poufnych bez potrzeby bezpośredniego przejmowania stacji roboczej programisty. Jeśli agent ma uprzywilejowany dostęp do repozytorium lub środowiska wykonawczego, atakujący może pośrednio uzyskać informacje o wysokiej wartości operacyjnej.

  • klucze API,
  • tokeny dostępu do usług chmurowych,
  • sekrety CI/CD,
  • pliki środowiskowe i konfiguracje aplikacji,
  • wewnętrzne instrukcje operacyjne,
  • dane wspierające dalszą eskalację dostępu.

Ryzyko rośnie wraz z autonomią narzędzia. Im większa samodzielność agenta w zakresie czytania plików, proponowania zmian, uruchamiania zadań i komunikacji z innymi usługami, tym większa powierzchnia nadużycia. Problem potęguje niski poziom wykrywalności: z perspektywy audytu zmiana może wyglądać jak zwykła aktualizacja grafiki lub niepozorny commit z danymi pomocniczymi.

Rekomendacje

Podstawową zasadą obrony jest ograniczenie uprawnień agentów AI zgodnie z modelem najmniejszych przywilejów. Narzędzie wspierające programistę nie powinno mieć automatycznego dostępu do pełnego zbioru sekretów, całego systemu plików ani możliwości wykonywania szerokich operacji poza określonym zakresem zadania.

  • izolować środowiska pracy agentów od produkcyjnych sekretów,
  • blokować automatyczny dostęp do plików .env, magazynów kluczy i menedżerów poświadczeń,
  • traktować obrazy, PDF-y i inne binaria jako potencjalne nośniki instrukcji,
  • rozszerzyć code review o analizę artefaktów nietekstowych,
  • wymagać akceptacji człowieka przed operacjami na danych wrażliwych,
  • monitorować nietypowe zmiany, zakodowane ciągi i nieuzasadnione modyfikacje dokumentacji,
  • wdrożyć skanowanie prompt injection dla wejść multimodalnych,
  • segmentować zadania agentów tak, aby odczyt sekretów nie łączył się z możliwością publikowania zmian.

Istotne jest także bezpieczne projektowanie systemów agentowych: separacja instrukcji systemowych od danych wejściowych, walidacja źródeł, kontrola narzędzi wywoływanych przez model oraz pełne logowanie działań podejmowanych przez agenta. Organizacje korzystające z AI w SDLC powinny sprawdzić, które narzędzia analizują obrazy, jak interpretują pliki binarne i czy mogą wykonywać polecenia odczytane z zasobów multimedialnych.

Podsumowanie

GhostCommit pokazuje, że bezpieczeństwa agentów AI nie da się oceniać wyłącznie przez pryzmat kodu źródłowego i klasycznych podatności aplikacyjnych. W środowisku developmentu wspieranego przez multimodalne modele nawet zwykły obraz PNG może stać się wektorem eksfiltracji danych i nadużycia zaufania do automatyzacji.

Dla zespołów DevSecOps to wyraźny sygnał, że pliki binarne, dokumentacja i materiały pomocnicze powinny podlegać podobnej dyscyplinie bezpieczeństwa jak kod. Im większa autonomia agentów AI w cyklu wytwarzania oprogramowania, tym ważniejsze stają się kontrola uprawnień, segmentacja zadań i inspekcja wszystkich typów danych wejściowych.

Źródła

  1. BleepingComputer — Ghostcommit hides prompt injection in images to fool AI agents, steal secrets — https://www.bleepingcomputer.com/news/security/ghostcommit-hides-prompt-injection-in-images-to-fool-ai-agents-steal-secrets/
  2. BleepingComputer — New AI attack hides data-theft prompts in downscaled images — https://www.bleepingcomputer.com/news/security/new-ai-attack-hides-data-theft-prompts-in-downscaled-images/
  3. OWASP — LLM Top 10 — https://owasp.org/www-project-top-10-for-large-language-model-applications/
  4. Trail of Bits — Only visible to AI: novel prompt injection attacks against multi-modal LLMs — https://blog.trailofbits.com/2025/08/22/only-visible-to-ai-novel-prompt-injection-attacks-against-multi-modal-llms/
  5. Agentic AI – Threats and Mitigations — https://storage.ghost.io/c/44/95/449506ca-034e-480f-9725-fcde08ef1cc1/content/files/2025/04/Agentic-AI—Threats-and-Mitigations.pdf