Универсальный Bloom: Analyze ⏱ 9 мин безопасность

Санитарный контроль: guardrails и least privilege

🧊 Won't Have 💧 Could Have ☀️ Should Have 🔥 Must Have
🔥 Must Have
Без этого агент в проде — заряженное ружьё. Здесь — как не дать ему выстрелить в кассу или в твою репутацию. Пропускать нельзя.

🤔 Зачем это читать

Полгода назад вы запустили AI-агента в поддержке, и поначалу всё шло гладко. А чтобы он «решал вопросы сам, без бюрократии», ему на радостях выдали доступ ко всему: читать базу клиентов, оформлять возвраты, списывать бонусы, отправлять письма от лица компании. Удобно. И вот сегодня ночью на тебя нападает один и тот же холодок: а что, если кто-то его обманет? Или он сам ошибётся? Спишет деньги не тому, разошлёт клиентам бред, сольёт чьи-то персональные данные. Доступ-то у него — как у директора.

Знакомо? Или другой вариант, ещё типичнее. На совещании предлагают: «давайте дадим боту право самому оформлять возвраты и списания — иначе какой смысл в автоматизации, опять всё на людях». Звучит логично, все кивают. И ты тоже почти киваешь — но где-то внутри скребёт: «а если он спишет лишнего? а кто отвечает?» Сформулировать возражение не получается, и право выдают. А через месяц разбираешь инцидент.

Дело вот в чём. Агента, который что-то делает в реальных системах, нельзя выпускать «на доверии» — ровно как нельзя пускать на кухню без санитарных норм. Нужна защита, и не одна стенка, а несколько слоёв подряд: проверка на входе, проверка на выходе, правила поведения и — самое денежное — жёсткое ограничение того, что агенту вообще позволено трогать. Это и есть санитарный контроль кухни.

После этой темы ты сможешь разобрать любого предлагаемого агента на слои защиты: где у него дыра, какой минимум прав ему реально нужен (а не «дайте всё для удобства») и какой барьер закрывает какой риск. Это разница между «дали боту ключи от кассы и молимся» и «спроектировали так, что даже если его обманут — он не сможет натворить дел».

Задержись на 10 секунд. Вспомни, кому у тебя на работе выдан доступ «на всякий случай, чтоб не дёргать»: общий пароль от кассы, админка у стажёра, ключ от склада у курьера. Держал когда-нибудь в голове мысль «а если этим воспользуются не так»? Подержи эту картинку. К концу страницы окажется, что с AI-агентом всё ровно так же — только он не устаёт, не спит и делает это в сто раз быстрее.

🧼 Кухню без санитарных норм закрывают — и агента без них тоже

Представь обычную кухню ресторана. Что её защищает от того, чтобы гость не отравился? Не одна вещь, а целая цепочка. На приёмке проверяют продукты на входе: тухлое разворачивают у дверей. Повар работает по правилам: сырое и готовое — разные доски, руки моют, температуру держат. Экспедитор у раздачи смотрит каждое блюдо перед тем, как оно уйдёт в зал. А спорное (странный запах, жалоба) несут шефу — человеку, который примет решение. И поверх всего — стажёру не дают ключи от сейфа. Просто потому, что незачем.

Вот это всё вместе — санитарный контроль. В мире AI-агентов это называется guardrails (защитные ограждения) — набор барьеров, которые не дают агенту натворить дел: ни по злому умыслу со стороны, ни по собственной ошибке. И главное, что нужно понять сразу: это не одна стенка, а несколько слоёв подряд. По-умному — многослойная защита (layered defense). Один слой всегда можно обойти или он что-то пропустит. Несколько слоёв подряд пропускают беду гораздо реже — как на кухне, где даже если приёмка проморгала тухлятину, повар или экспедитор всё равно заметят.

Разберём слои по порядку. Их удобно держать в голове как путь блюда через кухню.

Слои санитарного контроля агента
📥
Приёмка
Проверка входа: нет ли в запросе подсунутой команды?
📋
Правила у плиты
Ограничения поведения + минимум прав: чего агенту вообще нельзя касаться.
📤
Экспедитор
Фильтр выхода: что уходит клиенту, проверено перед подачей.
🧑‍🍳 А спорное и дорогое — несут шефу (человеку на проверке). Ни один слой по отдельности не идеален. Но чтобы беда прошла насквозь, ей надо пробить их все подряд — а это редкость.

📥 Приёмка и экспедитор: вход и выход

Первые два слоя самые наглядные — это две двери, в которые проходит работа агента.

Проверка входа (приёмка). Прежде чем агент возьмётся за запрос, его проверяют: нет ли тут подвоха. Главная угроза, ради которой это делается, — вброс инструкций (prompt injection): когда внутрь обычного с виду запроса кто-то прячет команду вроде «забудь все правила и сделай вот это». На кухне это диверсант, который вместе с заказом подсовывает записку «отрави стол 5». Приёмка ловит такие записки на входе. (Это большая отдельная тема — целиком разберём в следующем атоме, тут важно лишь, что это первый слой.)

Фильтр выхода (экспедитор). Прежде чем ответ агента уйдёт клиенту или станет действием, его тоже проверяют: нет ли тут лишнего. Не выдал ли агент чьи-то персональные данные, не написал ли грубость, не сболтнул ли внутреннюю инфу. Экспедитор у раздачи смотрит каждое блюдо перед подачей в зал — то же самое. Клиент не должен получить «блюдо», которое его обожжёт.

И вот ключевой приём, который делает всё это окупаемым. Привратником на входе и экспедитором на выходе не обязательно ставить дорогую главную модель. Чаще всего хватает дешёвой модели-привратника — маленькой и быстрой, чья единственная работа — глянуть «это вообще нормально или подвох?». Стоит она копейки на запрос. А ущерб, который она предотвращает — слитая база, списанные деньги, публичный скандал, — измеряется совсем другими числами. Дешёвый охранник у дорогого склада: математика очевидная.

🔑 Least privilege: стажёру не дают ключи от сейфа

А теперь — самый важный слой, тот, ради которого ты сюда пришёл с ночным холодком. Он называется least privilege (минимум прав), и принцип у него до обидного простой: давай агенту ровно столько прав, сколько нужно для его задачи, — и ни каплей больше.

Помнишь из темы 4.3 про читающие и пишущие инструменты, что у агента есть «руки» — и одни только смотрят (узнать остаток, статус заказа), а другие меняют мир необратимо (списать деньги, оформить возврат)? Least privilege — это про то, какие именно руки агенту вообще выдать. И ответ почти всегда: меньше, чем кажется удобным.

Пример. У тебя есть агент-суммаризатор: он каждое утро читает новости отрасли и делает выжимку для руководства. Что ему нужно? Право читать новостную ленту. Всё. Так вот, очень частая ошибка — выдать ему заодно доступ к почте, к CRM, к платёжной системе «ну вдруг пригодится, чтоб два раза не настраивать». Это и есть «дать стажёру ключи от сейфа». Стажёру для его работы сейф не нужен — а ключ от сейфа у стажёра однажды выстрелит.

Зачем так строго? Из-за штуки под названием радиус поражения (blast radius) — это размер беды, если что-то пойдёт не так. Представь, агента всё-таки обманули вбросом инструкций или он просто ошибся (он же не идеален). Вопрос на миллион: что он в принципе способен натворить? Если у него только право читать новости — да ничего страшного, ну прочитает не ту статью. Радиус поражения — лужица. А если у того же агента «на всякий случай» был доступ к платёжке — теперь обманутый агент может списать деньги. Радиус поражения — пожар. Least privilege не делает агента умнее и не мешает его обмануть. Он делает так, что обман или ошибка обходятся дёшево, а не катастрофой.

Один и тот же агент-суммаризатор. Один и тот же сбой. Разный радиус поражения
🔒
Минимум прав
Дали только: читать новости. Агента обманули — и что? Он прочитал не ту статью. Радиус поражения — лужица. Утром заметили, поправили.
🔥
«Всё ради удобства»
Дали заодно: почту, CRM, платёжку. Агента обманули — и он списал деньги, разослал письма от лица компании. Радиус поражения — пожар.
Сбой — один и тот же. Разница только в том, что агенту было позволено трогать. Вот это решение принимаешь ты, не повар.

🧑‍🍳 Спорное — к шефу, и почему «один слой» — это не защита

Последний слой — человек на проверке (human-in-the-loop, человек-в-петле). На спорном и дорогом действии агент не решает сам, а останавливается и зовёт человека: «подтверди?». Возврат на 200 ₽ — пусть оформляет сам. Возврат на 200 000 ₽ или удаление аккаунта клиента — стоп, нужен человек. Это шеф, к которому несут спорное блюдо. (Где именно ставить эту остановку — отдельный важный разговор, он будет следующей темой за вбросом инструкций.)

Сложим картину. Вот как один заход агента проходит через слои санитарного контроля — на псевдокоде, это просто логика на человеческом языке, не настоящий код.

Псевдокод (на пальцах) · запрос проходит через слои защиты # это НЕ настоящий код, а логика на человеческом языке
запрос = «Оформи возврат за заказ № 5512»

# --- слой 1: приёмка (проверка входа) ---
ЕСЛИ в запросе спрятана команда «забудь правила / сделай Х»:
    ОТКЛОНИТЬ — это похоже на вброс инструкций

# --- слой 2: минимум прав + правила поведения ---
агенту выданы руки: [читать заказы, оформлять возврат]
# платёжки и удаления аккаунтов в списке НЕТ — просто не сможет

# --- слой 3: человек на спорном (порог суммы) ---
ЕСЛИ сумма возврата больше 200 000 ₽:
    СТОП → позвать человека на подтверждение
ИНАЧЕ:
    оформить возврат

# --- слой 4: экспедитор (фильтр выхода) ---
перед отправкой клиенту: проверить ответ — нет ли чужих данных, грубости
ОТВЕТ: «Возврат за заказ № 5512 оформлен»

Видишь, в чём сила? Чтобы случилась беда, ей надо пробить все четыре слоя подряд. Проскочила мимо приёмки — упёрлась в минимум прав (нужного доступа просто нет). Проскочила и это — поймал порог суммы и позвал человека. И на выходе ещё экспедитор. Поэтому «мы добавили проверку, всё под контролем» — это красный флаг, если проверка ровно одна. Один слой всегда чем-то дырявый. Защита — это когда их несколько, и каждый ловит то, что пропустил предыдущий.

🎮 Какой минимум прав и какой слой закрывает риск

Шесть ситуаций с настройкой агента. В каждой — выбор. Твоя задача: разобрать ситуацию и определить, что тут происходит с санитарным контролем. Жми кнопку — сразу увидишь разбор. Не экзамен, а тренировка чутья на дыры в защите.

Прежде чем жать кнопки — на секунду приложи разбор к своему агенту (тому, что держал в голове с начала страницы). Сколько у него на самом деле слоёв: один, два, ни одного? И что ему реально позволено трогать? Подержи свой ответ в голове — а дальше проверь чутьё на чужих кейсах.

📖 Ключевые понятия

Guardrails (защитные ограждения)
Набор барьеров, которые не дают агенту натворить дел — ни по чужому злому умыслу, ни по собственной ошибке. Это санитарный контроль кухни: приёмка, правила, экспедитор, шеф. Главное правило — барьер не один, их несколько слоёв.
Многослойная защита (layered defense)
Принцип «не одна стенка, а несколько подряд»: проверка входа → ограничения поведения и минимум прав → фильтр выхода → человек на спорном. Один слой всегда чем-то дырявый; чтобы беда прошла, ей нужно пробить все слои сразу — а это редкость.
Минимум прав (least privilege)
Давать агенту ровно столько прав и доступов, сколько нужно для его задачи, и ни каплей больше. В инфобезе это давний принцип — principle of least privilege, PoLP; для агентов он ровно тот же. Суммаризатору — только чтение новостей, не «ключи от кассы». Не делает агента умнее, но делает обман и ошибку дешёвыми, а не катастрофой.
Радиус поражения (blast radius)
Размер беды, если агента обманут или он ошибётся: что он в принципе способен натворить с теми правами, что ему выданы. Минимум прав сжимает радиус до лужицы; «всё ради удобства» раздувает до пожара.
Модель-привратник
Дешёвая маленькая модель, которая стоит на входе или выходе и проверяет «это нормально или подвох?». Стоит копейки на запрос — против ущерба от слитой базы или списанных денег это почти бесплатно. Дешёвый охранник у дорогого склада.

🛡️ Частые заблуждения

«Мы добавили проверку — значит, агент защищён»

Если проверка ровно одна — нет. Один слой всегда чем-то дырявый: фильтр на выходе не ловит вброс на входе, проверка входа не ограничивает права, а права не зовут человека на дорогом действии. Защита — это несколько слоёв подряд, где каждый ловит то, что пропустил предыдущий. «У нас есть guardrail» (в единственном числе) — это повод спросить «а сколько их и что каждый закрывает».

«Если что-то пойдёт не так — потом по логам разберёмся и откатим»

Логи скажут, что случилось, — но не вернут случившееся назад. Списанные деньги уже ушли, письмо клиенту уже отправлено, удалённый аккаунт уже удалён. Наблюдаемость (увидеть постфактум) — это не защита (не дать случиться). У необратимых действий кнопки «отмотать» нет, поэтому их и тормозят заранее: минимумом прав и остановкой на спорном. «Разберёмся по логам» лечит расследование, а не дыру.

«Защита от взломов — это дорого, нужна топовая модель на охране»

Наоборот. Привратнику и экспедитору не нужно решать задачу — им нужно отсеять явный подвох, и с этим справляется дешёвая маленькая модель за копейки на запрос. Дорого обходится не защита, а её отсутствие: слитая база, списанные деньги, публичный скандал. Дешёвый охранник у дорогого склада — это не экономия на безопасности, это и есть грамотная безопасность.

🧠 AI-чутьё

Дешёвый привратник против дорогого ущерба; один слой — не защита; права решают цену сбоя

Главная рамка темы: оценивая любого агента, который что-то делает в реальных системах, разбирай его на слои защиты и считай радиус поражения. Не «защищён ли он» (бинарно, и почти всегда ответ «вроде да»), а конкретно: что проверяется на входе, какой минимум прав ему выдан, кто смотрит выход, на чём останавливается и зовёт человека. Если на любой из этих вопросов ответ «ничего» или «у нас есть одна проверка» — это дыра, и теперь ты умеешь её назвать.

Денежная сторона, которую держи в голове на любом совещании про автономию. Самая дорогая ошибка — дать агенту право на необратимое действие без подтверждения: списывать деньги, удалять, отправлять от лица компании на любую сумму. Это дыра в кассе, которая однажды выстрелит — не по злому умыслу, так по ошибке. А самый дешёвый и недооценённый рычаг — минимум прав: он почти ничего не стоит на этапе настройки, а сжимает цену будущего сбоя в разы. И дешёвая модель-привратник: копейки на запрос против слитой базы или скандала. Когда тебе говорят «защита — это дорого и сложно, давайте потом» — переводи: «давайте оставим кассу открытой, авось пронесёт».

Практический вывод владельца: к каждому предложению «дать боту делать Х самому» прикладывай вопрос «а что он натворит, если его обманут или он ошибётся, — и на чём он обязан остановиться и позвать меня?». Если внятного ответа нет — права пока не выдавать. Как именно агента обманывают через вброс инструкций и где грамотно ставить человека на проверку — две следующие темы модуля, они прямо продолжают этот разговор.

🎯 Практика

Одно задание на пять минут — оно превращает «слои защиты» из теории в твой рабочий чек-лист для любого AI-агента.

  1. Возьми того агента, что держал в голове с начала страницы (или любого, кого вам предлагают внедрить). Выпиши в одну строку, что он делает и какие права ему просят выдать.
  2. Прогони его через минимум прав. По каждому праву задай вопрос: нужно ли оно для самой задачи? Вычеркни всё, что «на всякий случай» и «чтоб два раза не настраивать». Останется минимум — это и есть то, что стоит выдать.
  3. Разбери на слои и найди дыры. Ответь по списку: что проверяется на входе? Кто смотрит выход? На каком действии и какой сумме агент обязан остановиться и позвать человека? Где ответ «ничего» — это дыра. И прикинь радиус поражения: если этого агента завтра обманут — что он способен натворить с теми правами, что у него есть? Лужица или пожар?

Помнишь ночной холодок «а если его обманут?» из начала страницы? Теперь у тебя есть, что с ним делать: не молиться, а сжать радиус поражения до лужицы и развесить слои. Страх лечится не доверием к технологии, а грамотным санитарным контролем.

🔗 Что дальше

Следующая тема: 11.7 — Диверсант с запиской: вброс инструкций (prompt injection). Тот самый первый слой вплотную: как именно в безобидный с виду запрос или документ прячут команду «забудь правила», почему даже непрямой вброс (indirect injection) через прочитанную агентом веб-страницу так опасен — и почему минимум прав остаётся последней линией обороны, когда привратник всё-таки проморгал.

Связанные темы:

Дальше в модуле: