AI-coderingsagenten hebben 13.000 interne afbeeldingen, inclusief factureringsgegevens, op GitHub openbaar gemaakt

AI-codeeragenten die zijn gevraagd om screenshots van codewijzigingen ter beoordeling te delen, hebben interne bedrijfsafbeeldingen in openbare GitHub-opslagplaatsen geplaatst, aldus beveiligingsbedrijf Glow.

De onderzoekers vonden meer dan 13.000 interne afbeeldingen van ontwikkelaars bij meer dan 300 organisaties, inclusief factuurgegevens van klanten en schermen met nog niet vrijgegeven functies. In de meeste gevallen bevonden ze zich onder de persoonlijke accounts van ontwikkelaars, waar iedereen ze kon downloaden, maar de beveiligingsteams van het bedrijf ze niet zagen.

Tot de getroffen organisaties behoren een van de grootste technologiebedrijven ter wereld, een toonaangevend AI-laboratorium, een grote leverancier van bedrijfssoftware en een Fortune 500-reisorganisatie. Glow begon op 9 september contact met hen op te nemen, publiceerde zijn bevindingen op 29 september en zegt dat anderen waarschijnlijk ook getroffen zijn.

In één geval vroeg een ontwikkelaar bij een fabrikant met meer dan 100.000 werknemers een agent om een ​​oplossing voor een intern factureringsscherm te controleren. De agent creëerde een openbare opslagplaats in het persoonlijke GitHub-account van de ontwikkelaar en plaatste daar de schermafbeeldingen.

Op de afbeeldingen waren factuurgegevens van een nutsbedrijf te zien. Omdat de agent op de laptop van de medewerker draaide en de repository zich buiten de GitHub-organisatie van het bedrijf bevond, heeft het beveiligingsteam van het bedrijf ze niet opgemerkt. De beelden waren nog openbaar toen Glow het bedrijf vertelde.

Glow heeft niet gezegd of iemand buiten de bedrijven, behalve de eigen onderzoekers, de afbeeldingen heeft gedownload. Het heeft ook niet gepubliceerd hoe het ze heeft gevonden of geteld. Het bedrijf verkoopt software waarvan het zegt dat het agenten ervan kan weerhouden dit soort acties te ondernemen.

Hoe de afbeeldingen openbaar werden

Elk geval dat Glow onderzocht, begon met een ontwikkelaar die een agent vroeg om aan te tonen dat een visuele verandering werkte, zodat recensenten het voor en na konden zien.

Tot 1 september kon de opdrachtregeltool van GitHub, gh, deze afbeeldingen niet toevoegen aan een pull-verzoek. Er werd alleen tekst geschreven. Het toevoegen van een afbeelding betekende het openen van een webbrowser, en ontwikkelaars hadden GitHub gevraagd om dat sinds 2020 te veranderen.

Het opslaan van de afbeeldingen in de privérepository hielp niet, omdat ze voor recensenten kapot waren.

Glow zei dat de agenten, terwijl ze via de opdrachtregel werkten, ontdekten dat ze de schermafbeeldingen niet konden bijvoegen. Daarom plaatsten ze de afbeeldingen in een aparte openbare opslagplaats, meestal onder het eigen account van de ontwikkelaar, en maakten ze ze van daaruit beschikbaar voor recensenten.

Glow voerde een soortgelijke taak uit in zijn laboratorium met behulp van Claude Code met een Opus 5-model. Gevraagd om de kopkleur van een Mijnenveger-testproject te wijzigen en het resultaat te tonen, creëerde de agent een nieuwe openbare opslagplaats, sweeper-demo/pr-assets, voor de twee schermafbeeldingen.

In zijn vastgelegde redenering merkte de agent op dat afbeeldingen die in de privérepository waren vastgelegd, in het pull-verzoek “kapot voor recensenten” zouden verschijnen. Het moest ook “niets anders dan index.html in de repository” bewaren en concludeerde daarom dat de enige manier was om de afbeeldingen elders te hosten.

Dat was een agent in een laboratorium. In de gevallen die Glow ontdekte, waren de agenten afkomstig van verschillende AI-modellen, zei Singer, en Glow heeft ze niet genoemd.

Bij één softwarebedrijf, zei Glow, verspreidde de gewoonte zich van agent naar agent. Agenten die voor verschillende technici werkten, begonnen begin juli recensie-screenshots openbaar te plaatsen.

Binnen een week hadden meer dan een dozijn de methode opgeslagen als een vaardigheid die op elk ticket kon worden gebruikt. Een vaardigheid is een bestand met instructies dat een agent laadt en volgt.

Met die vaardigheid uploadden de agenten meer dan duizend screenshots en schermopnamen van het product van het bedrijf. Ze plaatsten ook schriftelijke samenvattingen van functies die nog weken of maanden na de release beschikbaar waren.

Ongeveer een derde van de getroffen organisaties had ontwikkelaars die gitshot draaiden, een kleine open-sourcetool die schermafbeeldingen uploadt voor codebeoordelingen. Bij verschillende grote organisaties vond de agent de tool en gebruikte deze om de opdrachtregellimiet te omzeilen.

De tool is gebouwd voor zowel AI-agenten als mensen. Het kan als vaardigheid worden geïnstalleerd in meer dan 40 codeeragenten.

Glow vond meer dan 100 openbare accounts die intern werk deelden via gitshot. Bij een financiële dienstverlener toonden de beelden een interne schatkist- en afwikkelingsconsole, een opnamescherm voor een genoemde klant en twee schermopnamen van de geldbewegingsconsole.

The Hacker News heeft de code van gitshot op 30 september beoordeeld. Wanneer een gebruiker is ingelogd bij gh, plaatst de tool standaard afbeeldingen in een openbare opslagplaats genaamd gitshot-images onder het persoonlijke account van die gebruiker. De beoordeelde versie, voor het laatst gewijzigd in april, weigert een privérepository of een repository van een organisatie te gebruiken.

De afbeeldingen worden opgeslagen als release-items, bestanden die aan een release zijn gekoppeld in plaats van bij de code te worden bewaard. Iedereen kan ze weergeven en downloaden zonder in te loggen.

De README en de agentvaardigheid van de tool waarschuwen beide dat de repository openbaar is en zeggen dat er geen inloggegevens of interne dashboards mogen worden geüpload.

Een zoekopdracht door The Hacker News op 30 september vond ongeveer 130 openbare repository’s die gitshot had gemaakt. Uit de zoektocht blijkt niet wiens werk ze in hun bezit hebben en of agenten dit hebben gemaakt.

Wat te controleren

Glow zegt dat het controleren van de eigen GitHub-organisatie van een bedrijf niet voldoende is, omdat de afbeeldingen in de meeste gevallen onder persoonlijke accounts worden gehost. Om ze te vinden:

  • Controleer de openbare repository’s die zijn gekoppeld aan de persoonlijke accounts van iedereen die zich heeft verbonden aan uw privérepository’s, inclusief mensen die zijn vertrokken.
  • Kijk naar releases en samenvattingen, niet alleen naar bestanden. Afbeeldingen die bij een release zijn gevoegd, worden niet weergegeven in de bestandenlijst van een repository.
  • Zoek naar repositories met de naam gitshot-images en releases met de tag _gitshot.
  • Vertrouw niet alleen op scanners, die tekst lezen en geen afbeeldingen.

Als je blootgestelde afbeeldingen aantreft, verwijder ze dan overal waar ze bestaan, vraag iedereen met een kopie om deze te verwijderen en roteer alle inloggegevens die erin zichtbaar zijn, adviseert Glow.

Om te voorkomen dat dit opnieuw gebeurt, zegt Glow dat beveiligingsteams, en niet elke ontwikkelaar, moeten controleren hoe agenten worden ingesteld. Het beveelt deze stappen aan:

  • Vereist een controlestap voordat een agent een openbare repository maakt, naar een persoonlijk account of essentie pusht, of een privérepository openbaar maakt.
  • Lees de gedeelde vaardigheids- en instructiebestanden die uw agenten laden, want daar wordt een oplossing als deze doorgegeven.
  • Controleer bedrijfsmachines op tools zoals gitshot en verwijder deze.

De opdrachtregeltool van GitHub biedt nu een andere route. Sinds versie 2.99.0, uitgebracht op 1 september, kan gh afbeeldingen bijvoegen bij een pull-verzoek, probleem of commentaar met een –attach vlag.

GitHub zegt dat codeeragenten de vlag ook kunnen gebruiken. Het heeft schrijftoegang tot de repository nodig en werkt op GitHub.com en GitHub Enterprise Cloud, maar niet op GitHub Enterprise Server.

GitHub’s documentatie over het bijvoegen van bestanden, die uploads via de opdrachtregel omvat, zegt dat bestanden die zijn bijgevoegd in een privérepository alleen kunnen worden bekeken door mensen die er toegang toe hebben.

Thijs Van der Does