Capcana încrederii: Cum un singur click îți sabotează asistentul AI de codare
Capcana încrederii: Cum un singur click îți poate sabota asistentul AI pentru codare
Toți dezvoltorii am pățit-o. Clonezi un repo – poate de la un coleg, o librărie open-source sau un exemplu dintr-un tutorial. Arunci o privire rapidă, îl rulezi local și treci mai departe. E ca o reflexie. Dar un proiect de cercetare numit TrustFall arată că asistenții AI pentru codare au preluat exact acest obicei periculos. Și acum e o vulnerabilitate majoră.
Condițiile ideale pentru un atac
Cercetătorii de la Adversa AI au testat patru tool-uri AI populare. Descoperirea? Ele pornesc automat programe ajutătoare definite în fișierele de configurare ale proiectului. Totul cu un singur dialog de genul „îi faci încredere acestui folder?”, care pornește implicit pe da.
Mecanismul e bazat pe Model Context Protocol (MCP). Asta permite AI-ului să vorbească cu programe externe – conectări la baze de date, lintere sau tool-uri custom. Util, nu? Problema vine din faptul că aceste programe se definesc chiar în fișierele proiectului.
Când deschizi repo-ul și apeși Enter pe promptul de încredere, nu doar indexezi codul. Pornești efectiv acele programe. Cu toate permisiunile tale.
Un singur click. Gata.
Ce se poate întâmpla (spoiler: orice)
Un helper malițios poate:
- Fura cheile SSH și credentialele cloud
- Extrage istoricul shell-ului tău
- Citi cod din alte proiecte de pe mașină
- Deschide conexiuni către servere controlate de atacatori
Și cea mai nasoală parte? Totul se întâmplă înainte ca AI-ul să analizeze vreun cod. Execuția e automată la start.
Atacul e simplu: două fișiere JSON mici. Unul definește un „linter” inofensiv care de fapt descarcă și rulează un payload de pe net. Celălalt îl aprobă automat. Repo-ul pare gol la o privire superficială.
Problema cu dialogurile
Aici UX-ul devine risc de securitate. Uite ce vezi de fapt:
Claude Code (v2.1+): „Verificare rapidă: e proiectul tău sau unul de încredere?” Default: Da. O versiune veche avea opțiune să dezactivezi MCP – acum lipsește.
Gemini CLI: Afișează numele helperelor, deci poți verifica.
Cursor CLI: Menționează MCP vag.
Copilot CLI: Prompt generic, fără vreun cuvânt despre MCP.
Toate pornesc cu încredere implicită.
Cum zicea Rony Utevsky, lead-ul cercetării: nu e doar gaura de securitate. E că dezvoltatorii nu știu la ce zic „da”.
Coșmarul CI/CD
Mai rău: dacă rulezi Claude Code pe un server CI – prin GitHub Action oficial de la Anthropic – nu există dialog. Mod headless.
Rezultatul:
- Un PR malițios de la un contributor extern bagă config compromis
- Când pipeline-ul rulează pe branch, helper-ul pornește
- Are acces la chei de deploy, certificate și token-uri cloud
Adversa AI a publicat un PoC care fură variabile de mediu. Nu e teorie – e real.
Ce faci acum
În enterprise cu Claude Code, soluția e Managed scope. Configurație centralizată pe care IT o impune pe toate mașinile, blocând aprobările MCP automate.
Minusul? Puține echipe o folosesc. Și setup-ul nu e deloc clar, mai ales pentru dezvoltatori noi la AI coding.
Poziția vendorilor
Anthropic a analizat raportul TrustFall. Pentru ei, „Da, am încredere” înseamnă consimțământ la tot ce e în proiect, inclusiv MCP. Modelul lor de amenințări vede execuția post-aprobare ca funcționalitate intenționată.
Adversa AI nu contestă modelul. Întrebarea e dacă dialogul explică clar ce aprobi.
(Anthropic n-a comentat suplimentar.)
Ce înseamnă asta pentru tine
Vulnerabilitatea arată clar: tool-urile AI pentru dezvoltare sunt puternice pentru că intră adânc în mediul tău. Putere înseamnă responsabilitate.
Dacă folosești Claude Code, Gemini CLI, Cursor sau Copilot CLI:
- Fii atent la dialoguri. Nu da click autopilot. Citește.
- Verifică configurile. La repo-uri necunoscute, uită-te în
.mcp.jsonînainte să deschizi în tool. - Alege vizibilitate MCP. Gemini CLI listează helper-ele clar.
- Activează managed scope în firmă. Vorbește cu IT pentru policy centralizat.
- Updatează tool-urile. Vendorii știu problema – update-urile pot îmbunătăți dialogurile.
Imaginea de ansamblu
TrustFall scoate în evidență un conflict clasic: conveniența vs. securitatea. Dialogurile cu default-yes există pentru că majoritatea proiectelor sunt OK. Dar când oricine poate fork-ui codul cuiva, pariem prea iute.
Nu e vorba să scoatem MCP – e util. E vorba dacă trecerea de la „încredere în proiect” la „rulează cod arbitrar” e transparentă.
Momentan, nu e. Dezvoltatori, echipe și vendorii au de lucrat.
Cum abordezi securitatea tool-urilor? Ai întâlnit dialoguri dubioase? Discuția despre siguranța AI în dezvoltare abia începe. Implică-te.