Ін’екцыі ў промпт і «смяротная тройка»: абарона AI-агентаў
Ін’екцыі ў промпт і «смяротная тройка»: чаму AI-агенты не адрозніваюць вашы інструкцыі ад інструкцый зламысніка, як працавалі EchoLeak і атака праз GitHub MCP і што з гэтым рабіць.
Крыніцы: Prompt Injection and Agent Security: The Unsolved Problem
У чэрвені 2025 года дзеячыя у галузі адрабоцкіх тэхналагій адкрылі недагодзін у Microsoft 365 Copilot і назвалі яго EchoLeak. Атака выглядала так: хтось надсылае вам электранацый, які выглядае звычайна. Вы яго не ачынаеце, нічога не клацаеце і нават не чытаеце. Аднак Copilot яго прачытае, таму што ён чытае весь ваша яшчык для пісьменніка, каб адпаведзець на вашы запытанні. У тым электранацыі былі схованы інструкцыі, якія прыказвалі Copilot збіраць конфідэнцыйныя даны з вашых іншых дакументаў і таямна адправляць іх на зовнішній сервер праз аўтаматычна завантажваецца адпраўку. Не трэба было нічога клацаць, а жэртва не зрабіла нічога няправільнага. Агент выконвае прыказ, толькі не той чалавек.
EchoLeak атрымала CVE (CVE-2025-32711), была падзьменена і перэстала працаваць як першы вядомы прыклад введэння запроса, выкорыстанага для крадзіць рэальных дадзэнняў у працуючай сістэме AI. Гэта не будзе апошнім прыкладам. У наступны год тая ж катэгорыя атак з’явілася ў інтэграцыі MCP у GitHub, у Duo у GitLab, у AI у Slack, у NotebookLM у Google і ў кожным запусканым AI-браузеры. Да канца 2025 года сама каманда з абароны працы OpenAI публічна заявляла, што проблему введэння запроса можа ніколі не падаць упорацаваць для браузерных агентаў, і Нацыянальны центр кібербезпекі Велікобрытаніі падтрымала гэту думку.
Асэнцыя безпекі агентных AI простая, але мы дасяжна не маем чыстага адказу на яе: мадэль прыме вашы інструкцыі і інструкцыі нападчыка праз абсолютна той самы канал, і яна не можа надзеязліва ўпісаць іх. Ніжэй: чаму гэта так, чаму гэта шкодзіць агентам набагато больш, чым чатботам, і якія захопы ёсць эфектывнымі, на адміністрацыю з тымі, якія паказваюць віробнікі.
Адны канал для усяго
Спачатку прыходзіць механізм, таму што неправільна яго інтэрпрэтацыя ёсць пачатком слабых рэкамендацый з безпекі.
Мадэль мовы прымае адзін вхідны даны: довгі рад токэнаў. Упавядомленне для сістэмы таксама ўключаецца ў яго. Запыт карыстальніка таксама ўважаецца токэнам. Так сама і веб-сторанка, яку агент яноўна завантажыў, электранява, яку ён прачытаў, рэзультат работы інструмента, які ён атрымаў, апрацаваны PDF і альт-тэкст на зялёнку. Усё гэта прыходзіць у вачыні як адна спрошчаная серыя, і мадэль прагнозуе, што будзе далей. Нічога тут не пазначае дзеякія токэны як надзеяныя команды ад аператара, а іншыя — як ненадзеяныя даны, якія трэба расследаваць. Саймон Віллісон, які у 2022 годзе запрацаваў тэрмін «вставка упавядомлення», опісвае гэта так: мадэлі з радасцю выконваюць будзь-якія інструкцыі, якія до яных прыходзяць, незалежна ад таго, чыя яны ўзятыя ад аператара чы ў іншым месцы.
Гэта сэрца гэтага прыблэмы, і яна глыбока. Жадныя абнаўленні модэлю не зможаць яе вылечыць, адколькі слабасць ўжо ўбудоўана ў сам дызайн. Гэтыя сістэмы створаныя для выпалнення інструкцый, напісаных простым языкам. Потым мы даём ім тэксты на простым языку, выкаранутыя з інтэрнэту, і адчуваем шок, калі вбудованыя заповеды выпалняюцца. «Ін’екцыя» — гэта проста выпалнення інструкцый для няправільнага керавальніка.
Порашчыце SQL injection, якая дала назву гэтам атакам. Для SQL injection існуе рэальны спосаб прыменення параметрызаваных запыткаў, пры якіх базе дадзеных чыста і ясна паведамляецца, што гэта частка — гэта каманда, а гэта частка — дадзеныя, і яе ніколі не трэба спрыяваць як каманду. Тры дзесяткі гадоў безпекі веба залежаць ад правільнага паведамлення гэтага разліку ў самай машыне. У LLM ніхто не ведае, як гэта зрабіць. Усё адбываецца праз адны канал, пры чым канал каманд і канал дадзеных з’едынены. Самэльчына прычына, чаму звычны метод — паведамленне модэлю ў сістэмным запытку ігнараваць інструкцыі, якія знаходзяцца ў веб-контэнце, не работае. Вы выкарыстоўваеце скомпрометаваны канал, каб захацьце скомпрометаваны канал, і добра створаны фрагмент контэнту завжды можа пераканаць, нават пасля апавяшэння на англійскай мове.
Два тыпы атак часта плутаюць. Пры прымітанні напраму корыстнік сам запісвае шкодзіцельны тэкст, напрыклад, запіт на адкрыцья прамовы сістэмы. Гэта болей супадае з дзействамі, якія прыводзяць да „jailbreak“: адзін чалавек атакуе агента, якім яму разрэшана быць. Прымітанне паўзаймае — гэта тып атакі, якія ставяць парадокс для агентаў. Шкодзіцельныя інструкцыі хаваюцца ў зовнішнім матэрыяле, які агент обрабоўвае пад час свайго выканання, напрыклад, у веб-сторанцы, электранаце, запрошэнні з календара, каментары да коду чыя-небудзь проблеме на GitHub. Атакаваўшы ніколі не звертаецца да агента. Яны залучаюць пастку ў кантэнце, які, як яны спадзяюцца, агент калі-небудзь прачытае ад імені жэртвы, якая яму давае доверлівасць. Усі вышэўказаныя інцыдэнты былі саме такія. Гэты метод ўзрастае, таму што атакаваўшым не патрэбны правы доступ да вас, а толькі певны вплыв на тое, на шта вы намераваеце направіць свога агента.
Смяротная тройка
Найболее корыстным ментальным мадэлю ў гэтым кантэксце ёсць „смяротная тройка“ Саймона Вілісона, якая пояснюе, чаму дзеяныя агенты ўскладнююць карыстацца імі, а іншыя проста ўскладнююць ўражэнне.
Агент ператвараецца на зброю для крадзіць дадзэнняў, калі ён аб’еднвае тры можлівасці.
- Доступ да прыватных дадзэнняў. Ён можа чытаць вашы лісты, прыватныя хранілішчы, даныя кліянтаў чы внутрашній wiki. Гэта зазвычай прычына існавання агента, таму яго нельга проста адмахнуць.
- Доступ да ненадзеянага кантэнту. Ён обрабоцвае тэкст, які ён не напісаў і які вы не пераканалі: веб-сторанкі, прыходзячыя лісты, дакументы, выходныя даныя з сістэм трэціх сторон. Гэта таксама зазвычай галоўная мета.
- Можлівасць зв’язку з зовнішнім светам. Ён можа адправіць дадзэнні туды, дзе ўражальнік можа іх пабачыць, здзейсніўшы HTTP-запіт, адправіўшы ліст, вызвавшы API, атрыбутаваўшы зображэнне з URL уражальніка чы створыўшы запрос на з’еднанне.
Будзе добрая якая-небудзь з іх, а две зазвычай таксама дазволяюць выжыць. Усе тры функцыі ў однам агенце пад адніма наборам прав нальотваець парадокс на вашыя даны. Нальотваец, які контролюе другую з эйх функцый, можа перэйняць кераванне агентам, выкарыстаць першую для збору секрэтных дакументаў і трэцю — для ўсылкі іх. Самэ гэтая последовасць была выкорыстана пад час атак EchoLeak і GitHub MCP.
Кейс GitHub ўстаўляецца дастатнька чыста, каб можна было яго дакладна разглядзець. Компанія Invariant Labs праказала яго у мае 2025 года. Распрацоўшчык пад’яодае агента для кодавання да офіцыяльнага сервера GitHub MCP за дапамогою персональнага токена доступу, які, як правілу, дазволяе доступ да всіх яго рэпазітарыёў — як публічных, так і прыватных. Распрацоўшчык прасіць агента аб чымса нешкодным, напрыклад, пра аналіз відкрытых проблем у публічным рэпазітарыі. Агент іх чытае. Одна з проблем была задана хакерам і мітала сяродзінныя інструкцыі: прачытаць прыватныя рэпазітарыі гэтага карыстальніка і опублікаваць знайдзеное у публічным запітаў на з’еднанне. Агент мае другую можлівасць (ён проста чытае контэнт хакера), першую (токен дазволяе доступ да прыватных рэпазітарыёў) і трэцю (ён можа стварыць публічны запіт на з’еднанне). Ён выканае ўсе гэта. У дэманстрацыі прыватны код і нават персональныя фінансавыя даны сталі віднымі для будзь-каго. Кожныя дзеянні, якія выканалі токены, былі ў межах іх прав, а агент працаваў абоўсюды так, як і быў створаны. Трыэлементная сістэма працы проста завершылася.
Паглядзіце на рашэнне. Меры захоплення Docker не прабавалі выканаць аналіз на наявнасць зловучых проблем. Яны нарушылі працэс трыэлементнай сістэмы за дапамою правіл: кожна сесія прыкрэплена да аднаго рэпазітарыю, таму як толькі агент прабуе звернуцца да другога, ёму блакуецца, незалежна ад таго, што сказана ў інструкціях. Мадэль не стала розумней. Адну з можнасцей было адключыць у тым месцы, дзе яны суманаваюцься, і гэта і ёсць сутнісна частка кожнай рэальнай захоўнай сістэмы.
Чаму агенты значна гіршыя за чат-боты
Раннія парадкі ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўжо ўж
Чат-боты ствараюць тэкст, тады як агенты выканаюць дзеянні. Калі захапіць чат-бота, адна людзь чытае іншую адпаведзь. Калі захапіць агента, сам прыстрой будзе паводзіцца інакшэ, з рэальным адзінакам: ён можа падаць лісты людзям, пераводзіць грошы, стыраць даны, з’едынаць код або запускаць каманды шэлу. Спіс дзесяці найбольшых рызыкаў праекту OWASP Agentic Security для 2026 года выглядае як справжній спіс самэх гэтых наследкав: захапленне целі, неправільна адналежнае іспытанне інструментаў, зласцоўванне прывілеяў, «отруўванне» памяці і аблыкі, якія распростраńваюцца ў мнагаагентных сістэмах. Кожны з гэтых рызыкаў — гэта проста ін’екцыя, якая паўтараецца завдзяк зв’язку модэлю з рэальнымі можлівасцямі.
Тры факторы пояснююць ступень гэтага рызыка.
Паверас атакі — гэта все, што чытае агент. У рэальным агенце запытка аператара ёсць толькі частка токэнаў, а 70% або больш часткі кантэксту часта ўтвараюць рэзултаты інструментаў і запрашаны кантэнт. Такія несаўмаважныя складовы таксама ўтвараюць проблему безпекі. Большая частка таго, што знаходзіцца ў „галаве“ модэлю калі ён прымечае якісь рашэнні, прыходзіць з званэй „заўнешней“ сферы, і кожны з тых токэнаў можа быць інструкцыяй. Ваша доверліва запытка — гэта толькі пакрыткавая памылка протыва потоку недоверлівых даных.
Аўтонамія пазбавляе нас людскіх абаранень. Ценнасць агента крыўціцца з можлівасці ўрабляць цыклы без патрабавання дазволу на кожны крок, але кожны некантролюемы крок — гэта момент, калі інструкцыя, уведзена зза меж, выконваецца без можлівасці яе зупінкі. Чым аўтонамней і ўпэўненей агент, тым шырэй гэты прызначаны для дзеяння перыяд. Здольнасці і можлівасці інжэктавання растуць разам, што значыць, ў іншых роўных умовах, чым сільнейшы агент, тым дорожэ ўтратыць яго для атакухоўца.
Стойкасць і ланцоўка дадаюць ўскладнення. Агенты маюць памяць, і гэтую памяць можна заражыць: нападчык у паўтарны дзень заносіць фальшывы «факт» у дзейніковацькія сховішча, і гэта спакалюе рашэнні пра некалькі тыдзён. Агенты вызываюць іншыя агенты, таму введэнне даных у дадзеныя аднаго падагента распростраńваецца па ланцоўцы, якую ніхто не сочыць ад пачатку да канца. А браузеры на агентнай базе, такія як Atlas і Comet, разам у табе, дзе вы заўважаны ў сваём банку, электроннай пошцы і адміністрацыйнай панелі вашай кампаніі, размешчаюць агента, якога можна заражыць. Научнікі вялікімі зусіллямі атакавалі Atlas зловучым тэкстам, перадаць як URL, і з кантэнтам, які стварае фальшывыя спогады. Адпаведзь OpenAI заслуговае на пахвалу за чыстасць: компанія зміцніла продукт за дапамогою трэнінгу проты нападаў і автаматызаванага тэставання, а таксама чыста сказала корыстувачам, што проблема не ўсунута цалкам.
Захопы, якія дапамагаюць
Простаючы, ніхто не ведае, як зробіць так, каб модэль 100% часоў прыменшала рызык атакі падачай коду. Кожны з наведзеных ніжэй спосабаў захопу зменшае рызык, але ніхто з іх яго не усуне. Праўdziвая безпека адбываецца за счытком недосконалых слоёў захопу, а галоўнае — праграмаваннем сістэмы так, каб успешная падача коду не могла дасягнуць нічога ценнага. Ёсць чыстыя спосабы захопу, аддзеленыя ад заспакойлівых ілюзій.
Спачатку трэба рашыць проблему „трыфекта“. Ёй даёцца найбольшая выгода, і для ўсунення яе не патрэбна машынна навучэнне. Для кожнага агента пераканацца, чы не мае ён усіх трох прыемных можычнасцей адразу, і, як так, чы можна адну з іх адключыць у даным кантэксце. Агент, які чытае ненадзеяныя веб-сторанкі, не павінен таксама мець правы на доступ да базы дадзеных. Агент, які працуе з прыватнымі дадзенням, павінен маты выходную комунікацыю, абмежаную чыстаю лістай дозволеных адрэс, такой жорсткай, каб не засталося можнасці надаць секрэты. Рашэнне GitHub пра тое, каб за адну сесію была выкарыстоўвана толькі адна рэпазітарыя, являецца спосабам рашэння проблемы „трыфекта“. Ён работае таму, што ён архітэктурны, а не верагатывысты.
Ўзайце такія дыяграмы, якія захоўваюць планавальнік ад заражання небяспечнымі дадзеннямі. Найболей перспектывныя даследаванні рассматрываюць проблему втрымкі дадзенняяк пытанне таго, як воны трактуецца, а не таго, чы можна іх выявіць. Мадэль Dual LLM і ўсё строгейшы ўзорок CaMeL („Defeating Prompt Injections by Design“, 2025) дзеляюць агента на два ролі. Прывілейаваная мадэль чытае вашы запіт і плануе крокі, але ніколі не бачыць ненадзеянага матэрыялу. Мадэль, якая знаходзіцца на карантэне, чытае ненадзеяны матэрыял – электранаўпіс чы ўеб-сторанку – але не мае інструментоў і не можа дзеяць. CaMeL ідзе даўжэй: план прывілейаванай модэлі перакладаецца у програму з обмежэннямі, а спецыяльны інтэрпрэтар сочыць за паходжэннем кожнага значэння. Усё, што бераецца з ненадзеянага джэрага, пазначаецца як такое, і гэта не можа прывесты да небяспечных дзеянняў, як толькі політыка гэта не дазволяе. Гэта якраз найбліжэйша форма параметрызаваных запыткаў для LLM-аў — граніцы межа между камандамі і дадзеннямі, якая насправды дыяўуе. Ёсць свая цена: хтось павінен напісаць правілы, а бесканцовыя запыткі на затверджэння можу навучыць корыстувачав клацаць «так» рэфлектарна. Усё-такі гэта стоіць на прынцыпе, а прынцып вытрымаеся пад напорам адмашчанага нападчыка.
Скрасціце дзеянні за дапамою лестні дазволаў. Рангавайце кожнае дзеянне за ступенем можлівага нанесення шкоды, і нехай сама сістэма, а не запіт, прыменяе гэты ранг. Чытанне адбываецца безшумна, все, што можна адворачыць, фіксуецца, дзеянні, якія важкая адворачыць (падазначыць, выдаліць, заплаціць, з’едыніць), трэбуюць паўтарнага пאрабаня чалавека, які чытальна паказае, што самэ гэта будзе рабіцца, а незворачныя, дорогія дзеянні блакуецца або праходзяць праз працэс затверджэння, які модэль не можа паўніста паўніць. Запіт — гэта працоўнае прапанованне, з якім атакавальнік можа спарчвацца, а правілы сістэмы — гэта бар’ер, які ён пераканаць не можа. Прабаваць прабачыць модэлю завжды запытацца пры падазначэнні грошаў — гэта корыстна, але сама по сабе гэта нічога не дае. Безпека заключаецца ў тым, каб код платэжа выкалікаў токен, які модэль ніколі не мае.
Ўжыце прынцып мінімальных праваў з абмежанымі крантытэрамі. Атакі на вбрыск можаюць завдаць шкоды толькі ў прымеры да таго, што дазволена агенту, таму даўкі кожнаму агенту самыя вузкія абмежэнні, токены з короткім тэрміном дзейнасці і якомога меншыя інструменты, якія ўсё ж такі дазволяюць выканаць задачу. Інцыдэнт у GitHub быў наследкам шырокага токена, які паводзіўся як шырокія токены, а абмежэнні OAuth па кожнам рэпазітарыі моглі б гэта запобачыць. эта старая, простая мера безпекі, і яна крашчая за будзь-якія хыткія рашэнні.
Дадзіце можлівасць адказвання, але не паследзіце на яе. Команды спачатку выбіраюць гэты слой, а ён павінен быць апошнім. Класіфікаторы інжэкцый — гэта мадэлі, якія навучаны распазнаваць „ігноравацію паканальных інструкцый“ і ўсе ўсілявыя ўжыванні гэтага выразу, і яны дзейсна фіксуюць вельмі большую частку атак. Класіфікаторы для выкарыстоўвання камп’ютара ад Anthropic, фільтр XPIA ад Microsoft і багато стартапаў працуюць у гэй кантэксце. Іспользуйце іх, адколькі яны падвышаюць косты атак. Толькі будзьце чыста адносна таго, што яны прыносяць. Класіфікатор, які блакуе 99% спроб, здаецца чырвоным, але з точкі зору безпекі гэта вважаецца нявыпалом, таму што інжэкцыя — гэта не вялікі шум. Атакухальнік можа безканечна працаваць і прыстосавацца да вашага фільтра. Першы крок у EchoLeak — гэта электрана, створаная, каб працаваць праз класіфікатор інжэкцый Microsoft, і яна яго працавала. Працуячы проты атакухальніка, які прыстосаваецца, ступеньця вытэкання 1% ёсць значныя перашкода. Храніце адказвання як адзін слой, ніколі не як фундамент вашай безпекі.
Запісвайце все. Кожны вызов інструмента, завантажаны дакумент і выконаныя дзеянні павінны быць задаўленыя і магчымае атрыбутавацыя. З точкі зору безпекі гэта яе слой выкрычвання і крыміналістыкі. Пасля таго, калі ўжо адбылася проблема, вам трэба ведаць, што самэўпраўнік прачытаў непразьдзе перад нечым незвычным і звядзецца інструкцыя звядзецца, а таксама хацецца апавешчэнняя пра анамаліі, калі ён раптам пачынае выкарыстоўваць рэсурсы па-іншым, чым зазвычай. Нельга захістыцца, а нават зрозумець атаку, якую нельга пабачыць. Самэўпраўнік, якога нельга спазірваць, не толькі важка дыбагаваць; гэта ўражэння, пра якое вам расскажуць іншыя.
Тры інцыдэты для адстудавання
Шаблоны застаюцца, калі яны прыўязаныя да рэальных падзеяў. Гэтыя тры, з перыяду прыблізна адзіннадцаты месцаў, паказваюць разныя аспекты проблемы.
EchoLeak (Microsoft 365 Copilot, CVE-2025-32711). Сэрцаўным моментам являецца абсэнцыя будзь-якага нажатка, а не якія-небудзь хітрыя методы. Ён быў адкрыты ў студзені 2025 года, выправлены ў мае, а публікаваны ў чэрвені; гэта была першая атака на прымусовае введэнне запітаў, якая дазволіла выкарыстаць рэальныя даны з працуючай сістэмы штучнага інтэлекта без жадных дзеянняў з боку карыстальніка. У атакі было выкарыстана чатыро методаў аховы: электранаўштаўт, створаны для перамогі над класыфікаторам XPIA, канектары у фармаце Markdown, якія амаль не паддаюцца цензурэ, тэг з адпраўкай зображэння, які сам атрымляе даны і адправляе ўнутршні запыт, а таксама API для прадзіркі Teams, якае выступае як прыемнік і дазволяе даным выйсці праз затверджаны канал. Кожны з мераў безпекі, якія мела Microsoft, сам па сабе быў розумным. Атакавальнік жа знайшоў прасечкі межы гэтымі мерамі. Склад з слоёў дытэкцыі таксама ўключае прасечкі, і атакавальнік тырпяча пераглядае ўсе іх.
Атака на GitHub MCP (Invariant Labs, май 2025 г.). Працэва ўжо практычна, але важна парадзіць зноў: нічага не зламалася. Ніякі аутантыфікацыйныя даны не зазналі бяды, а мадэль застала недарабанай. Вразлам стварылі шырокі токен даступу, агент, які чытаў проблемы, напісаныя зловмешчыкам, і можлівасць ачынання публічнага PR. Не было коду для эксплуатацыі чы сбою ў памяці, якія трэба было бы парадрасаваць — толькі тры функцыі, якія ніколі не должны былі дзеўаць спільную сесію. Самэ гэта прычына таго, што безпека агентаў стала новай галуззю. Недагоднасць лежыць у спосабе супрацоўкі частак, а не ў якой-небудзь з іх.
Агентныя прыгушчыкі (Atlas і Comet, канец 2025 года). Калі быў выдан ChatGPT Atlas і Comet ад Perplexity, дзеярнікі негайна практыкавалі введчыкі ў omnibox, дзе тэкст, перадаўшыся як веб-адрэс, выконваліся як інструкцыя, а таксама атакі на памяць, якія залічвалі некарэктны кантэкст з адной сесіі ў іншую. Самэ тое, што усё гэта знаходзіцца ў аднам месцы, робіць сітуацыю ўжо таксама неблагопрыятной. Агент, які можа быць введзены, знаходзіцца там, дзе вы адной часоў аўтэнтыфікуецеся ў сваём банку, электроннай пошцы і адміністрацыйных панелях — гэты тройны комплект за замовчаннем знаходзіцца ў самым рызыкаваным месцы. Рэакцыя OpenAI задала чысты тон у галузі за дапамой адвэрсарыянскага трэнінгу, аўтаматызаванага практыкавання атак і адкрытага прызнання таго, што гэта пытанне яшчэ не рашанае. Пакладзіцеся на ўсё, што яны кажу, і праектаваць так, нібы ваш прыгушчык-агент у канцы канцоў будзе абмануты.
Што ацэніць, па слоях
Думайце па слоях і выберыце ўсё для кожнага з іх.
- Захаванні на адаптаванні дызайну: CaMeL і патэрн Dual LLM. Яны адзельнаюць планаванне ад недазвярожданых дадзэйнаў і сочыць за паходжаннем, што дае наймоцнейшыя гарантыі.
- Класыфікаторы для атакі з уведзення: класыфікаторы Anthropic, Microsoft XPIA, Lakera Guard, PromptArmor і protectai/rebuff. Яны выяўляюць адварсарскі контэнт у недазвярожданых даных, падвышаючы затраты без стварэння «стэны» захавання.
- Шлюзы і адбавленне правілаў: інтэрцэптары Docker MCP Gateway, Invariant Guardrails і спісы дазволенага выходу. Яны нарабляюць ускладненняя за дапамою правілаў, абмежваючы трыэтапную атаку праз контроль сесыяў, блакуванне доступу між рэсурсамі і рэгулюванне трафіку на званыце.
- Інструменты для красных команд і крытэрыяы ацэнкі: AgentDojo, AgentDyn, BIPIA, CyberSecEval і deepteam, якія робяць тэсты на атакі з уведзення павтаральнымі і вімернымі.
Правілле, якое захоўвае ад проблем: не купуйце аднаго продукту і не смярквавайце, што вы захаваны. Кожны з вышэйзгаданых элементаў — гэта слой, і сэрцэвы момант тут у тым, што жадны адны слоёў не ёсць достатнім. Адлічны падход аб’еднвае захопленне на аднойчынных патэранах, скапаваныя кранцыпты, іерархію дазволаў, класыфікатор і цэлыслівы аблік, выбраныя так, каб нават падбіўшы адзін з іх, нападчык все раван стаў супрацоўваць з наступным.
Формы неудач у рэальных умовах
- Ланцуг выкачвання дадзейнаў. Недазверлівы кантэнт прыказвае агенту збіраць прыватныя даны і адправляць іх, як у EchoLeak і GitHub MCP. Ёму можна протыстаць, разбіўшы гэты ланцуг, выкарыстоўваючы спісы дазволенага выходу, сочыць за праймам дадзейнаў (CaMeL) і строга кантролюючы кранцыпты.
- «Зблукаўшы» агент. Уводзімы кантэнт змушвае агента выконваць дзеянні, якія зміняюць стан сістэмы і якія корыстувач ніколі не хацеў, напрыклад, адправляць электрана, выдаліць файл чысты прыняць транзакцыю. Ёму можна запобiec за дапамогою іерархіі дазволаў, якая вымагае падтверджэння кожнага значнага дзеяння ад адпаведнай адзобы, пры чым правіла знаходзяцца ў самай сістэме.
- Рэжым без клікаў. Не патрэбна жадная удзел корыстувача, адтолькі звычная фонавая прачытка дадзейнаў агентам служыць трыгерам, як у прыкладзе аўтаматычнага завантажэння адпраўкі ў EchoLeak. Неабходна заблокаваць аўтаматычнае запрашэнне дадзейнаў і ўнешняю ўпрацоўку, кантролюваць выхід дадзейнаў і спрыймаць усё, што прыманяецца пасіўна, як ворага.
Тыдзенны пропуск безпекі
Гэта проста, конкрэтная методыка, якую можна застосавіць да агента, які ўжо у вас ёсць.
У першы дзень накартаваце всі тры элементы захісту. Взяце кожны агент, які вы запускаеце, і запісаце, да якіх прыватных дадзеных ён можа дастычыць, які недоверлівы контэнт ён прыймае і як можа адправляць інфармацыю на званыя. Кожны агент, які мае ўсе тры элементы, павінен апісацца на пачатку спіса. Гэты спіс будзе найценнейшым документам па безпеке, які вы напісаеце, і на гэта патрэбна толькі частка дня.
Дзень 2: неабяжна зніміце хацэўку з кожнага трыфекта. Для кожнага рызыкаванага агента адзьмяйце адна з яго можнасцей у тым настаўленні. Раздзеліце яго на два агенты з болей шчырокімі задачамі, зменшыце яго правыя або обмежыце выходны трафік толькі для спісу дазволеных адрэс. Не всі тры элементы будуць завжды можна зняць, але зніміце хацэўку, і гэта будзе лепшая, чым тыдні працы над зміцненнем захоўніка.
Дзень 3: створыце іерархію праваў. Спісавайце кожную дзеяннё, якую можа выконваць агент, і разлічыце яе на дзеяннё, якія выконваюцца без логавання, дзеяннё, якія логуюцца, дзеяннё, якія падтверджуюцца, і дзеяннё, якія блакуюцца. Забяжыце пры выконанні коду прыменяцца верхнія два рангі праваў, якія не ў магчымасці модэлю, і пераканаўцеся, што падтверджаючыя прапозыцыі паказваюць тое, што на самай працоўцы будзе выконвацца.
4-й дзень: атакуйце свога сабе агента. Падготавьце дзесяць ворагоўскіх даных, укладаючы ў іх стораніцу з падступамі, паведамленне, проблему, запрошэнне, PDF-файл з невізуальным тэкстам і адпраўку, чыяя альт-тэкста несе адказы. Запусціце агента проты кожнага з іх у сандбоксе і паглядзіце, што будзе. Часамі ўсё заработае, і тады лепшая самі гэта знайсці, чым калі іншы. Такія інструменты, як AgentDojo, дапамагаюць павтараць гэтыя віпробаванні.
5-й дзень: дадзіце можлівасць выяўлення і зберагце адныя чаканні. Размясціце класыфікатор уводу перад ненадзеянымі данымі і запісвайце, што ён пазначае. Бн являе сабою сігнал аб’явы пра падступ, які падвайшвае затраты атакавальніка, але не являе сабою пераканаючага бар’ера. Падаўце яго рэзультаты у сістэму трэйсінгу, яку вы ўвядзеце 6-го дня.
6-й дзень: увёльцеўваеце лёгкі адстэйканне для цячынь безпекі. Абавяроцеся, што кожны вызов інструмента, запрашэнне дадзейнаў і дзеянне заносяцца з чысткім іменем адпаведнага адпаведніка, і налаштавайце апавяшэнне пра доступ да рэсурсаў, які выхадзіць за межы нормальных патэранаў. Калі лёгкі адстэйканне вялікі ўжо існуе, вы толькі зміняеце налаштаванні, а не запускаеце новы праект.
7-й дзень: запісваеце гэта і ператэставаеце пасля кожной змены. Стойкасць да інжэкцый нямае сэнсу як канечная мэтка, якую трэба перасіць; гэта якосць, якую трэба падтрымваць. Кожны новы інструмент, джэрэла дадзейнаў або можлівасці могу зноў стварыць сітуацыю, якую вы раней разбілі, таму дадаце пытанне «Чы гэта зноў стварае такую сітуацыю?» да чарткі перагляду і зноў запускайце атакі з 4-го дня, калі адпаведзенне можа быць «так».
Няма чыстага завершэння
Проблема введэння запыткаў не рашана, і можа, што яе нельга рашыць так, як рашалі проблему введэння SQL-запыткаў, адтуды што тая якосць, якая робіць гэтыя модэлі корыстнымі — выпаленне інструкцыйяў на звычнай мове — яе ж і робіць можлівайям для зловжывання, і ніхто не ведае, як захаваць аднае без другага. Аднароднія разрабоўцы прыгранічных прыгледачаў пачалі голасна гаварыць пра гэта, і гэта яе самая абнадзейваная тэндэнцыя: промысел перастаў адмаўляць, што розумнейшы модэль знікнёць гэтую проблему.
Чаканне на парадакт не ўважаецца планам. План — гэта агенты, які застаюцца безпечныя нават пасля таго, як мадэль была абманута, таму што такое адбудзецца. Гэта перакіруе зусілля інжынераў: замест таго, каб стварыць болей розумны прыказ для сістэмы, які бы прасіў прыцяглівасць, — на структуру, якая абрамляе мадэль. Зламайце гэты тройны прынцып: планаваць трэба незалежна ад ненадзеяных дадзеных, сузіце кожны крэдыт, ставіце кожную значныю дзеяннё за бар’ер, які мадэль не можа працягнуць, і сачыце за всім. Усё гэта знаходзіцца ў крэаслі, а не ў самай модэлі.
Мадэль — гэта спроможны, даверлівы і можна ўводзіць у ёй элемент, а крэаслі — гэта спосаб, якім яго можна вжываць безпечна. Якшо зробіце мадэль сваёю межаю безпекі, яна будзе працягнута. Якшо размясціце межу за ёю, пад сваім контролем, у вас будзе шанс.
Спадні матэрыялы
- Паспрацаванне з DS-STAR: агент дадзейнаў наукі Google і прычыны, чырэз якія яго падход выграў — Дэтальны апісанне агента дадзейнаў наукі DS-STAR ад Google: яго семь модуляў, цыкл атласавання DS-STAR+, опублікованыя запіты, рэзультаты абляцыі і існуючыя абмежэнні.
- Практычныя заўважэнні: я запускаю агента для кодавання AI локальна, і яго эфекты практычна удвое вышэй — Практычны апісанне практычных заўважэнняў: «Я запускаю агента для кодавання AI локальна, і яго эфекты практычна удвое вышэй»: контракты, перакананні і месцы для коду для команд, якія вікорыстоўваюць гэты падход.