Door de toenemende populariteit van AI-assistenten zien ontwikkelaars een stijging in het aantal gevallen van het lekken van gevoelige gegevens naar openbare Git-repositories. Het gaat vaak om informatie die door AI-tools in de projectstructuur is opgeslagen. AI-assistenten zoals Claude Code, Cursor, Continue, Aider, OpenAI Codex, Copilot, Sourcegraph Cody en Amazon Q maken lokale configuratiebestanden en -mappen aan in de hoofdmap van het project. Deze bestanden en mappen kunnen onder andere de bewerkingsgeschiedenis en contextgegevens bevatten.
Bestanden die door AI-assistenten worden opgeslagen, kunnen API-toegangssleutels, DBMS-verbindingsreeksen, links naar interne bronnen en inloggegevens voor verbinding met cloudomgevingen bevatten. Deze inloggegevens worden door de AI-assistent verkregen tijdens het uitvoeren van instructies, na het werken met lokale instellingen of vastgelegd in een projectgerelateerde context. Voor ontwikkelaars is de accumulatie van dergelijke gegevens in de bestandsstructuur van het project niet direct duidelijk, waardoor velen vergeten om door AI-assistenten aangemaakte mappen toe te voegen aan het .gitignore-bestand en, na het publiceren van wijzigingen, deze naar de openbare Git-repository te verplaatsen.
Het hulpprogramma claudleak is ontwikkeld om dergelijke lekken in openbare GitHub-repositories op te sporen. Een testscan van GitHub bracht aan het licht dat ongeveer 2.4% van de repositories met submappen die instellingen voor AI-assistenten bevatten, geldige sleutels of inloggegevens bevatten. De geldigheid hiervan was geverifieerd door een aparte controle. De auteur van het hulpprogramma stuitte op een probleem toen hij een bestand met de naam ".claude/settings.local.json" in zijn repository aantrof, dat toegangssleutels en wachtwoorden bevatte die via omgevingsvariabelen werden doorgegeven.
Ontwikkelaars die AI-assistenten gebruiken, wordt aangeraden de mappen .claude/, .cursor/, .continue/, .copilot/ en .aider/ toe te voegen aan het .gitignore-bestand en deze te negeren via een globaal filter met behulp van de opdracht "git config --global core.excludesfile file_with_list".
Bron: opennet.ru
