Când un asistent AI scrie cod, rezultatul nu trebuie tratat ca sigur doar pentru că pare corect. Codul poate conține erori, dependențe nepotrivite, acces neașteptat la fișiere sau bucle care consumă resurse. Regula sănătoasă este simplă: codul generat de AI se rulează întâi într-un sandbox, nu direct pe laptopul de lucru, pe server sau lângă date reale.
Un sandbox defensiv înseamnă limite clare: proces izolat, timp maxim de execuție, memorie și CPU controlate, rețea dezactivată când nu este necesară și acces minim la fișiere. Abordarea completează principiul privilegiilor minime discutat în articolul despre tool calling cu privilegii minime.
De ce codul AI are nevoie de izolare
Riscul principal nu este că modelul vrea să atace, ci că poate produce instrucțiuni greșite sau prea largi. OWASP include „excessive agency” între riscurile aplicațiilor LLM: un sistem care poate lua acțiuni fără limite clare poate ajunge la consecințe nedorite. NIST AI 600-1 recomandă tratarea riscurilor AI generative prin controale, monitorizare și guvernanță, nu prin încredere implicită.
În practică, codul generat de AI poate încerca să citească directoare întregi, să scrie fișiere în locații nepotrivite, să pornească procese copil sau să ruleze prea mult. Mediul de test trebuie să fie separat de datele sensibile și ușor de aruncat după execuție.
Regula 1: proces izolat și director temporar
Rulează codul într-un director temporar, creat special pentru acea execuție. Copiază acolo doar fișierele strict necesare: de exemplu un CSV de test, nu exportul complet cu date de clienți. Dacă folosești containere, montează doar directoarele necesare, preferabil read-only pentru intrări și separat pentru ieșiri.
Pentru analiză de fișiere necunoscute, principiile sunt similare cu cele din ghidul despre sandbox izolat pentru observarea sigură a comportamentului unui fișier necunoscut: separare, observare și fără expunerea mediului principal.
Regula 2: timp limitat, memorie limitată, procese limitate
Un sandbox util trebuie să oprească execuțiile care scapă de sub control. În Python, modulul `subprocess` permite setarea unui `timeout`, astfel încât procesul să fie întrerupt dacă depășește durata permisă. Evită `shell=True` când nu este necesar și transmite argumentele ca listă, pentru a reduce riscurile de interpretare greșită a comenzilor.
Dacă folosești Docker, documentația oficială descrie limite pentru memorie, CPU și procese. Într-un scenariu defensiv, pornește containerul cu limite de resurse și cu rețeaua dezactivată dacă sarcina nu are nevoie de internet. Ideea nu este să ai încredere în cod, ci să-i dai un spațiu mic în care poate greși fără să afecteze restul sistemului.
Regula 3: acces minim la fișiere
Nu monta home-ul utilizatorului, directoare cu chei SSH, tokenuri, `.env` sau backupuri. Pentru fiecare rulare, stabilește explicit ce fișiere pot fi citite și unde poate scrie rezultatul. Dacă agentul AI folosește unelte externe, aceeași logică se aplică și la nivel de instrumente: allowlist, permisiuni clare și validarea strictă a intrărilor.
În sisteme mai avansate, monitorizarea accesului la fișiere poate ajuta la audit. Pe Linux, mecanisme precum fanotify pot observa accesul la fișiere în anumite scenarii; pentru context practic, vezi articolul despre fanotify în Linux.
Regula 4: jurnalizare și revizuire
Păstrează comanda rulată, timpul de execuție, codul de ieșire și fișierele create. Nu copia automat rezultatul în producție. Revizuiește-l ca pe orice contribuție de cod: dependențe, acces la fișiere, tratarea erorilor și comportamentul la date invalide.
Microsoft Azure AI Foundry Code Interpreter este un exemplu de produs care rulează cod Python într-un mediu sandbox pentru sarcini precum analiză de date și generare de grafice. Chiar și când folosești servicii gestionate, verifică documentația despre limite, retenția fișierelor și accesul la date.
Checklist defensiv rapid
Înainte să rulezi cod generat de AI, verifică: mediul este aruncabil; există timeout; există limite de CPU, memorie și procese; nu sunt accesibile secrete; rețeaua este oprită dacă nu e necesară; intrările sunt date de test; ieșirile sunt revizuite manual. Pentru agenți AI cu unelte, extinde checklistul la permisiunile tool-urilor și la memoria persistentă, mai ales în arhitecturi precum agent AI cu memorie persistentă în LangGraph.
Întrebări frecvente
Este suficient să citesc codul înainte să-l rulez?
Nu. Revizuirea ajută, dar nu înlocuiește izolarea. Erorile de logică, dependențele și consumul de resurse se văd adesea abia la execuție.
Pot rula cod AI direct pe laptop dacă nu pare periculos?
Pentru teste banale, riscul poate fi mic, dar practica sigură este să folosești un director temporar și date fictive. Pentru cod necunoscut sau generat automat, folosește sandbox.
Trebuie să opresc mereu internetul în sandbox?
Nu mereu. Dacă sarcina nu are nevoie de rețea, oprește-o. Dacă are nevoie, limitează destinațiile și nu expune credențiale reale.
Ce salvez după execuție?
Salvează logurile, codul de ieșire, durata, fișierele create și eventualele erori. Acestea ajută la audit și la decizia dacă rezultatul poate fi folosit mai departe.

















































