Aģentu nodrošināšana Perplexity klienta galapunktos ar Numbat
Numbat ir Perplexity atvērtā koda aģentu drošības komplekts klienta galapunktos. Tas atklāj, novērš un izmeklē riskantu AI aģenta uzvedību operētājsistēmās macOS, Linux un Windows.
AI aģentiem ir jābūt drošiem, lai tie būtu noderīgi. Attīstoties modeļu un sistēmu iespējām, pieaug arī modrība, kas nepieciešama lietotāju aizsardzībai.
Agrīnie aģentu drošības pētījumi bija vērsti uz uzvedināmes injekcijām un citiem pretrunīgu ievadu veidiem. Tomēr nesenie sasniegumi aģentu autonomijā rada drošības incidentus, kuros nav jāpieņem pretrunīgu ievadu – vai vispār cilvēku pretinieku – pastāvēšana.
Drīzāk aģenti, kuriem uzticēts sasniegt augsta līmeņa mērķus bez preskriptīvām norādēm par to, kā šos mērķus sasniegt, var kļūt par pretinieku. Tas notiek tad, kad aģents, reaģējot uz lietotāja norādītu mērķi, izvēlas tādu rīcības kursu, ko lietotājs nebija iecerējis un nebūtu apstiprinājis. Lai gan šādi gadījumi tika teorētiski pieļauti tikai pirms dažiem mēnešiem, tie ātri vien ir kļuvuši par praktiskas nozīmes jautājumu.
Tā kā šo uzvedību nevar pilnībā novērst modeļa slānī, spēcīgai aizsardzībai tāpēc ir jāatrodas apkārtējā sistēmā, ieskaitot aģenta ietvaru, kas kalpo kā modeļa saskarne ar ārpasauli. Mēs piedāvājam atvērtā koda risinājumu Numbat — mūsu aģentu drošības komplektu, kas palīdz aizstāvjiem novērst, atklāt un mazināt ar aģentiem saistītus incidentus. Numbat identificē aģentu ietvarus, kas parasti atrodami uzņēmumu klienta galapunktos, un tieši integrējas tajos, ieviešot drošības noteikumus un nodrošinot ātru atklāšanu un reakciju.
Ievads
Aģentu ieviešana rada jaunas drošības problēmas gan izstrādātājiem, gan ieviesējiem, gan aizstāvjiem. Tas jo īpaši attiecas uz gadījumiem, kad uzņēmumi izvieto aģentus tieši klienta galapunktos ar privilēģētu piekļuvi uzņēmuma sistēmām un datiem.
Aģentu izvietošana klienta galapunktos, piemēram, uz CLI vai darbvirsmas lietotni balstīti kodēšanas aģenti, ietver dažādu līmeņu smilšu kastēs izvietošanu un izolāciju. Lietotāji izmanto šos aģentus neskaitāmiem lietošanas gadījumiem, katram no kuriem ir sava atbilstošā darbību telpa, kas var ietekmēt pašu galapunktu vai citas sistēmas, kurām var piekļūt no galapunkta. Arvien vairāk ir sagaidāms, ka aģenti darbosies autonomi stundām vai pat dienām. Šīm darbplūsmām daudzi lietotāji izvēlas deleģēt aģentu darbību apstiprinājumus klasifikatoriem vai pilnībā apiet apstiprinājumus ar satraucoši nosauktiem konfigurācijas karodziņiem, piemēram, --dangerously-skip-permissions un --yolo. Aģentu lietošanas gadījumu un konfigurāciju daudzveidība kopā ar darbību plašumu, ko kodēšanas aģenti var veikt privilēģētos galapunktos, rada riska profilu, kas prasa proaktīvu drošības komandu pārvaldību.
Šodien mēs izlaižam Numbat — atvērtā koda aģentu drošības komplektu, ko esam izveidojuši, lai atklātu, izmeklētu un novērstu bīstamas AI aģentu darbības. Tā kā arvien vairāk uzņēmumu ievieš robežlīnijas aģentu produktus, Numbat dod iespēju drošības komandām neatpalikt no radītajiem drošības izaicinājumiem. Tas integrējas katrā no visplašāk izmantotajiem klienta puses aģenta ietvariem, vienlaikus nodrošinot konsekventu saskarni visos tajos. Tādējādi Numbat atbrīvo drošības komandas no sloga, kas saistīts ar pielāgotu aizsardzības līdzekļu un uzraudzības rīku izveidi katram atsevišķajam aģentam, uz kuru paļaujas to lietotāji. Numbat ir pieejams aizstāvju ekosistēmai kā daļa no Perplexity dalības Open Secure AI Alliance kopā ar NVIDIA un citām organizācijām.
Šis raksts sākas ar diskusiju par drošības problēmām, kas motivē Numbat. Pēc tam mēs iepazīstinām ar Numbat dizainu un arhitektūru, kā arī ar mūsu mācībām, kas gūtas, izvietojot Numbat tūkstošiem Perplexity savu galapunktu.
Ievainojamību ainavas izvietošana
AI aģentu drošības incidentu aina strauji attīstās. Liela daļa esošās aģentu drošības literatūras koncentrējas uz injekcijas uzbrukumiem, kuros modeļa uzvednēs vai kontekstā tiek ievietota ļaunprātīga krava, lai maldinātu aģentus par nepareizu uzvedību. Injekcijas uzbrukumi un aizsardzības līdzekļi ir plaši pētīti, un aģentu izstrādātāji, tostarp Perplexity, ir izstrādājuši arvien stabilākas aizsardzības pret injekcijas uzbrukumiem.
Taču AI aģentam nav nepieciešama ļaunprātīga krava, lai radītu drošības incidentu. Faktiski nav jāpieņem, ka vispār pastāv pretinieks. Uzticams aģents, kas darbojas uzticamā vidē ar administratora apstiprinātiem rīkiem, var veikt kaitīgas darbības vienkārši tāpēc, ka tas pārāk centīgi cenšas izpildīt savu uzdevumu.
Pētnieki raksturo šo kļūmes režīmu kā „nejaušu kušanu“: kaitīga aģenta uzvedība, ko izraisījusi nevis ļaunprātīga ievade, bet gan parasta vides kļūda. Trūkstošs fails, neizdevies API pieprasījums, beidzies akreditācijas datumu termiņš vai atteikta atļauja var likt aģentam meklēt apiet risinājumu. Sasniedzot savu sākotnējo lietotāja norādīto mērķi, aģents var pārkāpt drošības robežas, izmantojot neatļautu izlūkošanu, piekļuves kontroles izmaiņas, noslēpumu atklāšanu vai datu eksfiltrāciju. Tā vietā, lai aģentu piesaistītu uzbrucējs, pats aģents ir uzbrucējs. Turklāt uzbrukums var būt vērsts uz iekšējām sistēmām, ārējām sistēmām vai abām, un nav iespējams to uzzināt, kamēr uzbrukums jau notiek.
Pirmais plaši ziņotais nejaušais sabrukums notika šajā mēnesī, kad OpenAI atklāja aģenta iniciētu uzbrukumu, kas apdraudēja Hugging Face ražošanas infrastruktūru. Veicot iepriekš izlaista GPT modeļa novērtējumus, modelis konstatēja, ka tas nespēj virzīties uz priekšu novērtējumā ar sniegto kontekstu. Lai pārvarētu šo strupceļu, modelis atrada veidu, kā izbēgt no savas smilšu kastes testēšanas vides un eksfiltrēt novērtējuma atbildes no Hugging Face. Modelis izmantoja savu ietvaru, lai izvairītos no paredzētajiem tīkla ierobežojumiem, palielinātu privilēģijas ārpus smilšu kastes robežām, iegūtu noslēpumus un piekļūtu drošām Hugging Face sistēmām, un tas viss, lai sasniegtu šauro mērķi — atrisināt novērtējumu.
Kušana ietver arī neparedzētas sistēmas mutācijas un dzēšanu. Lai gan tās var šķist mazāk svarīgas nekā ielaušanās ārējā sistēmā, šie gadījumi ir biežāki un aktuālāki jebkuram kodēšanas aģentu lietotājam. Ražošanas datu bāzu vai mājas direktoriju dzēšana ir jebkura izstrādātāja lielākais murgs, un aģentiem visā to izpildes laikā ir jāspēj izvairīties no šādas uzvedības.
AI pētnieki strādā, lai mazinātu šādu uzvedību pašos modeļos. Lai gan šie centieni noteikti ir vērtīgi, daudzi pētnieku kopienā saskata fundamentālu spriedzi starp modeļu apmācību spēcīgām drošības īpašībām un to pašu modeļu apmācību arvien sarežģītāku uzdevumu izpildei. Mēs uzskatām, ka ir maz ticams, ka aizsardzības līdzekļi, kas vērsti tikai uz modeļa slāni, samazinās kušanas risku līdz pieņemamam līmenim.
Kodēšanas aģentu nodrošināšana, izmantojot vietējās ietvara integrācijas
Secinājums ir tāds, ka aģenta drošība nevar balstīties tikai uz modeļa, lietotāja vai uzdevuma līmeņa aizsardzības līdzekļiem. Drīzāk drošības komandām ir nepieciešamība redzēt, ko aģenti patiesībā dara klienta galapunktos, kā arī vadīklas, kas var apturēt bīstamas darbības pirms to izpildes. Tās ir sistēmas līmeņa vadīklas, kurām jābūt cieši integrētām ar aģenta ietvaru.
Numbat nodrošina šīs vadīklas vieglas statiskas Go binārā faila formā, kas nemanāmi iekļaujas vadošajos klienta puses aģenta ietvaros. Tas piedāvā reāllaika uzraudzību, politikas izpildi un kriminālistikas rekonstrukciju starp aģenta ietvariem un izpildes vidēm.
Galvenie integrācijas punkti starp Numbat un aģenta ietvaru ir āķi, sesijas artefakti un OTLP telemetrija. Mēs tos apspriedīsim secīgi.
Āķi
Gandrīz visiem kodēšanas aģentiem ir āķa apakšsistēma. Āķi ļauj aģentiem deterministiski izpildīt apakšprogrammas iepriekš noteiktos punktos aģenta izpildes dzīves cikla laikā. Aģentu lietotāji parasti konfigurē āķus, lai nodrošinātu modeļiem papildu kontekstu paredzamā veidā, ieviestu testēšanas un verifikācijas ciklus un veiktu citus aģenta iespēju uzlabojumus.
Tās pašas deterministiskās īpašības, kas padara āķus pievilcīgus šiem nolūkiem, padara tos pievilcīgus arī noteikšanai un reaģēšanai. Parasti nepietiek ar lielākās daļas potenciāli satraucoša notikuma gadījumu noķeršanu. Drīzāk ir jāaptver visi šādi gadījumi noteikšanai un reaģēšanai. Numbat konfigurē vairāku veidu āķus, ļaujot drošības komandām un IT administratoriem ieviest bagātīgu noteikšanas loģiku.
Lielākajā daļā kodēšanas aģentu noteikta veida āķi (parasti dēvēti par "pirmsdarbības" āķiem) spēj arī bloķēt aģenta nākamās darbības izpildi. Izmantojot šos pirmsdarbības āķus, Numbat spēj ieviest ne tikai noteikšanas loģiku, bet arī preventīvus drošības noteikumus, lai apturētu kušanas rašanos pirmajā vietā.
Sesijas artefakti
Āķi ir spēcīgs līdzeklis noteikšanas un profilakses loģikas ieviešanai reāllaikā. Tomēr šo loģiku ir jābūt iespējamai specificēt kodā. Bieži vien aģenta drošības incidents iegūst tādu formu, kuru nebija iespējams paredzēt iepriekš, kur nu vēl samazināt līdz pirmkods. Tāpēc Numbat ir arī iespēja piekļūt sesijas artefaktiem un tos analizēt retrospektīvi.
Sesijas artefakti ietver daudzu veidu žurnālus un diagnostiku. Iespējams, vissvarīgākais žurnāla veids ir sesijas atšifrējums, kas reģistrē LLM sarunas, kuras nosaka aģenta darbību secību. Kodēšanas aģentu jaudīgie lietotāji jau ir pieraduši eksportēt sesijas atšifrējumus turpmākai analīzei, izmantojot ietvara nodrošinātās komandas. Taču šie eksporti parasti ir vienkārša teksta formātā, kas nav piemērots drošības komandām, kurām nepieciešami mašīnlasāmi žurnāli ar konsekventu, paredzamu shēmu.
Tādējādi Numbat izgūst sesijas artefaktus tieši no pašas failu sistēmas. Tā kā lielākā daļa klienta puses aģenta ietvaru glabā oriģinālos artefaktus failu sistēmā (parasti aģentam raksturīgā punkta direktorijā zem $HOME), pieslēgšanās failu sistēmai nodrošina directāko ceļu uz šiem datiem to lietojamākajā un neskartākajā formā. Drošības komandas, kas izmanto Numbat, var savākt šos artefaktus normalizētā NDJSON laika skalas formātā, izmantojot numbat scan, vai nu vietējai apstrādei klienta galapunktā, vai asinhronai attālinātai analīzei. Tā kā sesijas artefakti ir statiski, pašpietiekami ieraksti, Numbat spēj rekonstruēt šīs laika skalas pat sesijām, kas notika ilgi pirms Numbat instalēšanas.
OTLP telemetrija
Lielākā daļa klienta puses aģenta ietvaru piedāvā plašu telemetriju, izmantojot OpenTelemetry protokolu (OTLP). Šī telemetrija parasti nodrošina daudzus signālus, kas pārsniedz tos, kas pieejami, izmantojot āķus vai sesijas artefaktus.
Numbat var darboties kā OTLP uztvērējs, izmantojot komandu numbat collect. Šī komanda sāk serveri, uz kuru kodēšanas aģenti nosūta OTLP telemetriju pakārtotai analīzei. Svarīgi ir tas, ka šis serveris ir lokāls un pēc noklusējuma klausās tikai lokālajā resursdatorā, kas nozīmē, ka visa telemetrija pēc noklusējuma paliek ierīcē. Pēc tam drošības administratori var izlemt, ko darīt ar reģistrēto telemetriju, neatkarīgi no tā, vai tas ietver vieglas ierīces apstrādes ieviešanu, attālinātu apstrādi, izmantojot numbat ship, vai sarežģītāku analīzi analītikas platformās, piemēram, ClickHouse.
Numbat izvietošana Perplexity ietvaros
Perplexity ietvaros mēs izmantojam Numbat, lai aizsargātu mūsu inženieru klientu puses kodēšanas aģentu izmantošanu, tostarp Claude Code, Codex, OpenCode un Pi.
Gan mūsu profilakses, gan atklāšanas centienos plaši tiek izmantoti Numbat noteikumi, kas tiek ieviesti, izmantojot katra aģenta āķa apakšsistēmu. Mēs izstrādājām vairākus pamata noteikumus savām vajadzībām, no kuriem daudzus mēs piegādājām kā daļu no Numbat 52 iebūvētajiem noteikumiem. Šie noteikumi ir sakārtoti 11 uzvedības kategorijās un vairāku soļu secības noteikšanas kopumā, piemēram, piekļuve noslēpumiem, eksfiltrācija, privilēģiju eskalācija un sānu kustība. Noteikumos tiek izmantotas CEL izteiksmes par normalizētiem notikumiem, un operatori var pievienot savus noteikumus un testus, nemainot Numbat kodu.
Piemēram, iebūvētais privilege.sudoers_tamper noteikums nosaka rakstīšanu sudoers politikā, visudo izmantošanu un mēģinājumus instalēt NOPASSWD piešķiršanas. Šīs ir augsta signāla darbības, kas var pārvērst ierobežotu aģenta procesu par noturīgu root piekļuvi.
# 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*:")
)Atsevišķas komandas ne vienmēr izskatās ļaunprātīgas pašas par sevi, tāpēc Numbat korelē arī secības aģenta sesijā. Iebūvētais chain.secret_manager_read_then_egress noteikums nosaka, kad aģents nolasa vērtību no parasta noslēpumu pārvaldības rīka un vēlāk mēģina veikt datu nesēju curl vai wget pieprasījumu. Noslēpuma nolasīšana var būt likumīga. Izejošais pieprasījums var būt likumīgs. Secīgi kopā tiem ir nepieciešama izmeklēšana.
# 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")Numbat pārvaldība un uzraudzība visā flotē
Līdzīgi kā Bumblebee, mūsu atvērtā koda skeneris piegādes ķēdes iedarbībai uz izstrādātāju galapunktiem, Numbat tiek izvietots visā mūsu flotē, izmantojot MDM. Katrs Numbat reģistrē aģenta darbību lokāli un nosūta strukturētu telemetriju uz mūsu centralizētajām drošības sistēmām.
No turienes Perplexity Computer regulāri pārskata nesenos Numbat atklājumus un audita žurnālus, lai atklātu aizdomīgu vai ļaunprātīgu uzvedību. Tas izmeklē atklāšanas, rekonstruē attiecīgās aģenta sesijas un pievērš papildu uzmanību darbībām, kuras Numbat bloķēja.
Computer arī meklē nepilnības mūsu pārklājumā. Tas analizē jaunu uzvedību, ierosina uzlabojumus Numbat noteikumiem, testē šīs izmaiņas un atver pull pieprasījumus cilvēku pārskatīšanai. Kad šie noteikumi ir apstiprināti un izvietoti, tie uzlabo uzraudzību visā flotē un sniedz labākus pierādījumus nākamajai izmeklēšanai.
Tas rada pašuzlabojošu drošības spararatu: aģenti ģenerē darbību, Numbat pārvērš šo darbību normalizētās laika skalās un telemetrijā, Computer izmeklē un uzlabo noteikumus, un cilvēku pārskatītie atjauninājumi nostiprina vadīklas, kas aizsargā turpmākās aģenta sesijas.
Secinājums
Perplexity mēs uzskatām, ka AI aģenti darbosies visu veidu vidēs: lokālajā, mākoņa un hibrīda. Katra aģenta ietvara un izpildes vides kombinācija rada unikālas drošības problēmas, un kombinatoriskā sarežģītība draud noslogot joslas platuma ierobežotās drošības komandas. Aģentu kušana un citas jaunas ievainojamības vēl vairāk sarežģī drošības ainu.
Aizsardzības līdzekļi, kas atrodas pašā aģenta sistēmā, var uzlabot lietotāja drošības stāju neatkarīgi no tā, kur aģents tiek izpildīts. Tieši to nodrošina Numbat: cieši integrēti aģenta aizsardzības līdzekļi, kas ļauj aizstāvjiem novērst, atklāt un reaģēt uz satraucošu uzvedību reāllaikā. Numbat apvienošana ar Perplexity Computer rada spēcīgu aģentu drošības platformu, kas dod iespēju aizstāvjiem apsteigt notikumus.
Numbat šodien ir pieejams kā atvērtā koda projekts operētājsistēmām macOS, Linux un Windows. Mūsu pašu klientu galapunktus aizsargā Numbat, ļaujot Perplexity komandas locekļiem droši izmantot aģentus plaša mēroga uzdevumos un ilgtermiņā. Mēs aicinām drošības komandas visur izmantot Numbat sistēmas līmeņa pieeju, lai nodrošinātu un aizsargātu savu aģentu izvietošanu.
Citāts
@online{perplexity2026SecuringAgentsAcrossPerplexitySClientEndpointsWithNumbat,
author = {{Perplexity} and Adel Karimishiraz and Bex Brooker and Phi Hoang and Jerry Ma},
title = {{Securing agents across Perplexity's client endpoints with Numbat}},
date = {2026-07-29},
url = {https://perplexity.coolkeypoint.com/hub/blog/securing-agents-across-perplexity-s-client-endpoints-with-numbat}
}