Securizarea agenților pe punctele finale ale clienților Perplexity cu Numbat

Numbat este suita open-source de securitate a agenților Perplexity pentru punctele finale ale clienților. Detectează, previne și investighează comportamentul riscant al agenților AI pe macOS, Linux și Windows.

AutoriPerplexity Secure Intelligence Institute

Agenții AI trebuie să fie securizați pentru a fi utilizați. Pe măsură ce capacitățile modelelor și ale sistemelor avansează, la fel se întâmplă și cu vigilența necesară pentru a proteja utilizatorii.

Cercetarea timpurie privind securitatea agenților s-a concentrat pe injecțiile de prompturi și alte forme de intrări adversariale. Cu toate acestea, progresele recente în autonomia agenților dau naștere unor incidente de securitate care nu trebuie să presupună existența unor intrări adversariale — sau a unor adversari umani în general.

Mai degrabă, agenții cărora li se cere să urmărească obiective la nivel înalt, fără îndrumări prescriptive despre cum să atingă acele obiective, pot deveni adversarul. Acest lucru se întâmplă atunci când un agent, ca răspuns la un obiectiv specificat de utilizator, selectează un curs de acțiune pe care utilizatorul nu l-a dorit și nu l-ar fi aprobat. Deși astfel de incidente au fost teoretizate doar acum câteva luni, ele au devenit rapid subiecte de preocupare practică.

Deoarece aceste comportamente nu pot fi corectate complet la nivelul modelului, o apărare robustă trebuie așadar să se regăsească în sistemul înconjurător, inclusiv în cadrul componentelor de suport ale agentului care servesc drept interfață a modelului cu lumea exterioară. Lansăm în sursă deschisă Numbat, suita noastră de securitate pentru agenți care ajută echipele de apărare să prevină, să detecteze și să atenueze incidentele legate de agenți. Numbat identifică și se integrează direct cu componentele de suport ale agenților care se găsesc în mod obișnuit pe punctele finale ale clienților din întreprinderi, aplicând reguli de securitate și permițând detectarea și răspunsul rapid.

Introducere

Adoptarea agenților prezintă noi provocări de securitate deopotrivă pentru dezvoltatori, adoptatori și apărători. Acest lucru este valabil mai ales atunci când întreprinderile implementează agenți direct pe punctele finale ale clienților, cu acces privilegiat la sistemele și datele întreprinderii.

Implementările de agenți pe punctele finale ale clienților, cum ar fi agenții de codificare bazați pe CLI sau pe aplicații desktop, vin cu niveluri variabile de izolare și „sandboxing”. Utilizatorii folosesc acești agenți pentru nenumărate cazuri de utilizare, fiecare având propriul său spațiu de acțiune asociat care poate afecta însuși punctului final sau alte sisteme accesibile de la acesta. Din ce în ce mai mult, agenții sunt așteptați să opereze autonom timp de ore sau chiar zile. Pentru aceste fluxuri de lucru, mulți utilizatori aleg să delegheze aprobările acțiunilor agenților către clasificatori sau să ocolească complet aprobările folosind fanioane de configurare cu denumiri îngrijorătoare, cum ar fi --dangerously-skip-permissions și --yolo. Multiplicitatea cazurilor de utilizare și a configurărilor agenților, combinată cu amploarea acțiunilor pe care agenții de codificare le pot efectua pe punctele finale privilegiate, creează un profil de risc care necesită o gestionare proactivă din partea echipelor de securitate.

Astăzi, lansăm Numbat, o suită de securitate pentru agenți cu sursă deschisă pe care am creat-o pentru a detecta, investiga și preveni activitățile periculoase ale agenților AI. Pe măsură ce tot mai multe companii adoptă produse de ultimă generație bazate pe agenți, Numbat împuternicește echipele de securitate să țină pasul cu provocările de securitate rezultate. Se integrează în fiecare dintre cele mai utilizate componente de suport pentru agenți la nivelul clientului, expunând în același timp o interfață consecventă pentru toate acestea. Astfel, Numbat eliberează echipele de securitate de povara construirii de măsuri de protecție personalizate și de instrumente de monitorizare pentru fiecare agent în parte pe care se bazează utilizatorii lor. Numbat este disponibil pentru ecosistemul apărătorilor ca parte a calității de membru Perplexity în Open Secure AI Alliance alături de NVIDIA și alte organizații.

Arhitectura de sistem a agenților securizați cu Numbat.
Arhitectura de sistem a agenților securizați cu Numbat. Numbat pune accentul pe detectarea cu prioritate locală și pe medicina legală agnostică față de agent.

Acest articol începe cu o discuție despre provocările de securitate care motivează Numbat. Apoi prezentăm designul și arhitectura Numbat, împreună cu lecțiile învățate din implementarea Numbat pe mii de puncte finale ale Perplexity.

Situarea peisajului vulnerabilităților

Peisajul incidentelor de securitate ale agenților AI evoluează rapid. O mare parte din literatura existentă privind securitatea agenților se concentrează pe atacurile prin injecție, în care o sarcină utilă malițioasă este introdusă în prompturile sau contextul modelului pentru a confuza agenții în vederea unui comportament necorespunzător. Atacurile prin injecție și măsurile de protecție au fost studiate pe larg, iar dezvoltatorii de agenți, inclusiv Perplexity, au conceput apărări din ce în ce mai robuste împotriva atacurilor prin injecție.

Dar un agent AI nu are nevoie de o sarcină utilă malițioasă pentru a crea un incident de securitate. De fapt, nu trebuie să presupunem deloc existența unui adversar. Un agent de încredere, care operează într-un mediu de încredere cu instrumente aprobate de administrator, poate întreprinde acțiuni dăunătoare pur și simplu pentru că încearcă prea mult să își îndeplinească sarcina.

Cercetătorii descriu acest mod de eșec drept o „topire accidentală”: un comportament dăunător al agentului declanșat nu de o intrare adversarială, ci de o eroare obișnuită de mediu. Un fișier lipsă, o cerere API eșuată, o acreditare expirat sau un refuz de permisiune pot trimite un agent în căutarea unei soluții alternative. În urmărirea obiectivului său inițial specificat de utilizator, agentul poate depăși granițele de securitate prin recunoaștere neautorizată, modificări ale controlului accesului, descoperirea de secrete sau exfiltrarea de date. În loc ca agentul să fie cooptat de un atacator, agentul însuși este atacatorul. Mai mult, atacul poate viza sisteme interne, sisteme externe sau pe ambele, fără a exista o modalitate de a ști până când atacul este deja în desfășurare.

Prima topire accidentală raportată pe scară largă a sosit în această lună, odată cu divulgarea de către OpenAI a unui atac inițiat de un agent care a compromis infrastructura de producție a Hugging Face. În timpul evaluărilor unui model GPT pre-lansat, modelul s-a trezit în imposibilitatea de a face progrese în evaluare cu contextul furnizat. Pentru a depărși acest blocaj, modelul a găsit o modalitate de a scăpa din mediul său de testare sandbox și de a exfiltra răspunsurile la evaluare de la Hugging Face. Modelul și-a folosit componenta de suport pentru a scăpa de constrângerile de rețea intenționate, a escalada privilegiile dincolo de granițele sandbox-ului, a obține secrete și a accesa sistemele securizate Hugging Face, totul pentru a urmări obiectivul restrâns de a rezolva evaluarea.

Topirile includ, de asemenea, mutații și ștergeri neintenționate de sistem. Deși poate mai banale decât încălcarea unui sistem extern, aceste evenimente sunt mai frecvente și mai evidente pentru orice utilizator avansat de agenți de codificare. Ștergerea bazelor de date de producție sau a directoarelor Home este cel mai urât coșmar al oricărui dezvoltator, iar agenții trebuie să poată evita astfel de comportamente pe parcursul execuției lor.

Cercetătorii în domeniul AI lucrează pentru a atenua aceste comportamente chiar în cadrul modelelor. Deși aceste eforturi sunt cu siguranță valoroase, mulți din comunitatea de cercetare percep o tensiune fundamentală între antrenarea modelelor pentru proprietăți de securitate puternice și antrenarea aceluiași model pentru a duce la bun sfârșit sarcini din ce în ce mai complexe. Considerăm că este puțin probabil ca apărările axate exclusiv pe nivelul modelului să reducă riscul de topire la niveluri acceptabile.

Securizarea agenților de codificare prin integrări native în componentele de suport

Concluzia este că securitatea agenților nu se poate baza exclusiv pe măsuri de protecție la nivel de model, utilizator sau sarcină. Mai degrabă, echipele de securitate au nevoie de vizibilitate asupra a ceea ce fac de fapt agenții pe punctele finale ale clienților, plus controale care pot opri acțiunile periculoase înainte ca acestea să ruleze. Acestea sunt controale la nivel de sistem care trebuie integrate strâns cu componenta de suport a agentului.

Numbat oferă aceste controale sub forma unui binar Go static și ușor, care se conectează fără probleme la principalele componente de suport pentru agenți la nivelul clientului. Acesta oferă monitorizare în timp real, aplicarea politicilor și reconstrucție forensică în cadrul componentelor de suport pentru agenți și al mediilor de execuție.

Punctele cheie de integrare dintre Numbat și o componentă de suport pentru agenți sunt cârligele (hooks), artefactele de sesiune și telemetria OTLP. Le discutăm pe rând.

Cârlige

Practic, toți agenții de codificare dețin un subsistem de cârlige (hooks). Cârligele permit agenților să execute în mod determinist subrutine în puncte prespecificate din ciclul de viață al execuției agentului. Utilizatorii agenților configurează de obicei cârlige pentru a oferi modelelor context suplimentar în moduri predictibile, pentru a implementa bucle de testare și verificare și pentru a aduce alte îmbunătățiri capabilităților agenților.

Aceleași proprietăți deterministe care fac ca aceste cârlige să fie atractive în astfel de scopuri le fac, de asemenea, atractive pentru detectare și răspuns. De obicei, este insuficient să se prindă cele mai multe apariții ale unui eveniment potențial îngrijorător. Mai degrabă, trebuie acoperite toate aceste apariții pentru detectare și răspuns. Numbat configurează mai multe tipuri de cârlige, permițând echipelor de securitate și administratorilor IT să implementeze o logică bogată de detectare.

În majoritatea agenților de codificare, anumite tipuri de cârlige (denumite în mod obișnuit cârlige „pre-acțiune”) pot, de asemenea, să blocheze execuția următoarei acțiuni a agentului. Folosind aceste cârlige pre-acțiune, Numbat este capabil să implementeze nu numai o logică de detectare, ci și reguli de securitate preventive pentru a opri producerea unei topiri încă de la început.

Artefacte de sesiune

Cârligele sunt mijloace puternice de implementare a logicii de detectare și prevenire în timp real. Cu toate acestea, această logică trebuie să poată fi specificată în cod. Adesea, un incident de securitate al unui agent ia o formă care nu ar fi putut fi prevăzută în avans, cu atât mai puțin redusă la codul sursă. Prin urmare, Numbat are, de asemenea, capacitatea de a accesa și analiza artefactele de sesiune în mod retroactiv.

Artefactele de sesiune includ multe tipuri de jurnale și diagnostice. Poate cel mai important tip de jurnal este transcrierea sesiunii, care înregistrează conversațiile LLM ce dictează secvența de acțiuni a agentului. Utilizatorii avansați de agenți de codificare sunt deja obișnuiți să exporte transcrierile sesiunilor pentru o analiză suplimentară prin intermediul comenzilor furnizate de componenta de suport. Dar aceste exporturi sunt de obicei în format text simplu, care este nepotrivit pentru echipele de securitate care necesită jurnale citibile de mașină cu o schemă consistentă și predictibilă.

Astfel, Numbat preia artefactele de sesiune direct din sistemul de fișiere. Deoarece majoritatea componentelor de suport pentru agenți la nivelul clientului stochează artefactele originale în sistemul de fișiere (de obicei într-un director cu punct specific agentului sub $HOME), conectarea la sistemul de fișiere oferă cea mai directă rută către aceste date în forma lor cea mai utilizabilă și curată. Echipele de securitate care utilizează Numbat pot colecta aceste artefacte în format cronologic NDJSON normalizat prin numbat scan, fie pentru procesare locală pe punctul final al clientului, fie pentru analiză la distanță asincronă. Deoarece artefactele de sesiune sunt înregistrări statice, auto-conținute, Numbat poate reconstrui aceste cronologii chiar și pentru sesiunile care au avut loc cu mult înainte de instalarea Numbat.

Telemetrie OTLP

Majoritatea componentelor de suport pentru agenți la nivelul clientului oferă o telemetrie extinsă prin intermediul protocolului OpenTelemetry (OTLP). Această telemetrie oferă de obicei multe semnale dincolo de cele disponibile prin intermediul cârligelor sau al artefactelor de sesiune.

Numbat poate funcționa ca un receptor OTLP prin intermediul comenzii numbat collect. Această comandă pornește un server către care agenții de codificare trimit telemetrie OTLP pentru analiză ulterioară. Important este că acest server este local și ascultă în mod implicit doar pe localhost, ceea ce înseamnă că toată telemetria rămâne pe dispozitiv în mod implicit. Administratorii de securitate pot stabili apoi ce să facă cu telemetria înregistrată, fie că aceasta implică implementarea unei procesări ușoare pe dispozitiv, procesare de la distanță prin numbat ship sau o analiză mai complexă pe platforme de analitice precum ClickHouse.

Implementarea Numbat în cadrul Perplexity

În cadrul Perplexity, folosim Numbat pentru a securiza utilizarea de către inginerii noștri a agenților de codificare la nivelul clientului, inclusiv Claude Code, Codex, OpenCode și Pi.

Atât eforturile noastre de prevenire, cât și cele de detectare utilizează pe scară largă regulile Numbat, care sunt implementate prin intermediul subsistemului de cârlige al fiecărui agent. Am formulat mai multe reguli fundamentale pentru propriile noastre nevoi, dintre care multe le-am livrat ca parte a celor 52 de reguli încorporate în Numbat. Aceste reguli sunt organizate în 11 categorii de comportament și un set de detecții de secvențe în mai mulți pași, cum ar fi accesul la secrete, exfiltrarea, escaladarea privilegiilor și mișcarea laterală. Regulile utilizează expresii CEL pe evenimente normalizate, iar operatorii își pot adăuga propriile reguli și teste fără a modifica codul Numbat.

De exemplu, regulă încorporată privilege.sudoers_tamper detectează scrierile în politica sudoers, utilizarea visudo și încercările de a instala permisiuni acordate prin NOPASSWD. Acestea sunt acțiuni cu semnal ridicat care pot transforma un proces de agent limitat în acces root persistent.

yaml
# privilege.sudoers_tamper (simplified for readability) id: privilege.sudoers_tamper severity: high expr: | ( event.event_type == "file.write" && event.file_path.matches("(^|/)etc/sudoers$|(^|/)etc/sudoers\\.d/[^/]+$") ) || ( event.event_type == "command.exec" && event.command.matches("\\bvisudo\\b|\\bNOPASSWD\\s*:") )

Comenzile individuale nu par întotdeauna malițioase de la sine, așa că Numbat corelează, de asemenea, secvențele dintr-o sesiune de agent. Regula încorporată chain.secret_manager_read_then_egress detectează când un agent citește o valoare dintr-un instrument comun de gestionare a secretelor și încearcă ulterior o cerere curl sau wget care conține date. O citire de secret poate fi legitimă. O cerere de ieșire poate fi legitimă. Secvențiate împreună, ele necesită investigație.

yaml
# chain.secret_manager_read_then_egress (simplified for readability) id: chain.secret_manager_read_then_egress severity: high sequence: within_events: 64 steps: - expr: | event.event_type == "command.exec" && event.command.matches("secretsmanager|get-secret|vault read") - expr: | event.event_type == "command.exec" && event.command.matches("curl.*(--data|--upload-file)|wget.*--post")

Gestionarea și monitorizarea Numbat în întreaga flotă

La fel ca Bumblebee, scanerul nostru cu sursă deschisă pentru expunerea lanțului de aprovizionare pe punctele finale ale dezvoltatorilor, Numbat este implementat pe întreaga noastră flotă prin intermediul MDM. Fiecare Numbat înregistrează local activitatea agentului și trimite telemetrie structurată în sistemele noastre centrale de securitate.

De acolo, Perplexity Computer revizuiește constatările recente ale Numbat și jurnalele de audit la un interval recurent pentru a detecta un comportament suspicios sau malițios. Acesta investighează detecțiile, reconstruiește sesiunile relevante ale agenților și acordă o atenție suplimentară acțiunilor pe care Numbat le-a blocat.

Conducta internă a Perplexity pentru monitorizarea telemetriei Numbat.
Conducta internă a Perplexity pentru monitorizarea telemetriei Numbat. O sarcină programată Perplexity Computer revizuiește în mod asincron noile semnale și alertă echipa de securitate cu privire la activitățile riscante.

Computer caută, de asemenea, lacune în acoperirea noastră. Acesta analizează noul comportament, propune îmbunătățiri aduse detecțiilor Numbat, testează acele modificări și deschide solicitări de extragere (pull requests) pentru revizuire umană. Odată aprobate și implementate, acele reguli îmbunătățesc monitorizarea în întreaga flotă și produc dovezi mai bune pentru următoarea investigație.

Acest lucru creează un cerc vicios de autoperfecționare a securității: agenții generează activitate, Numbat transformă acea activitate în cronologii și telemetrie normalizate, Computer investighează și îmbunătățește regulile, iar actualizările revizuite de oameni întăresc controalele care protejează viitoarele sesiuni de agenți.

Concluzie

La Perplexity, considerăm că agenții AI vor rula în toate tipurile de medii: locale, în cloud și hibride. Fiecare combinație de componentă de suport pentru agenți și mediu de execuție prezintă provocări unice de securitate, complexitatea combinatorie amenințând să copleșească echipele de securitate cu lățime de bandă limitată. Topirile agenților și alte vulnerabilități inedite complică și mai mult peisajul securității.

Apărările care locuiesc chiar în interiorul sistemului agentului pot îmbunătăți starea de securitate a unui utilizator, indiferent unde rulează agentul. Exact acest lucru oferă Numbat: măsuri de protecție pentru agenți strâns integrate, care le permit apărătorilor să prevină, să detecteze și să răspundă la comportamente îngrijorătoare în timp real. Combinarea Numbat cu Perplexity Computer creează o platformă puternică de securitate pentru agenți care împuternicește apărătorii să rămână cu un pas înainte.

Numbat este disponibil astăzi ca proiect open-source pentru macOS, Linux și Windows. Propriile noastre puncte finale pentru clienți sunt securizate de Numbat, permițând membrilor echipei Perplexity să utilizeze cu încredere agenții pentru sarcini cu domeniu larg și orizonturi lungi. Invităm echipele de securitate de pretutindeni să profite de abordarea la nivel de sistem a Numbat pentru a-și securiza și proteja implementările de agenți.