Утверждение о легаси-системах
Более полезная формулировка: легаси-системы кодируют десятилетия допущений о доверии, рассчитанных на взаимодействие с человеческой скоростью. Эти допущения не записаны как политика; они неявно присутствуют в тайм-аутах, в отсутствии ограничений скорости, в недокументированных эндпоинтах, которыми «никто не пользуется», в сервисных аккаунтах с широкими правами, в пакетных интерфейсах, которые предполагают, что оператор заметит неверный результат. Агент не создаёт новых разрешений. Он использует существующие без трения, которое делало их терпимыми.
Это различие важно, потому что оно меняет исправление. Если проблема в цели, ответ — укрепление периметра: больше инспекций, больше сигнатур, больше сегментации. Если проблема в несоответствии возможностей, ответ — ограничение того, что агенту разрешено делать на границе протокола, независимо от того, что эндпоинт технически поддерживает.
Что меняется, когда вызывающий — агент
Люди-операторы сами себя ограничивают. Им становится скучно, они начинают подозревать или устают. Они останавливаются после нескольких неудачных попыток, потому что стоимость продолжения растёт, а ожидаемая выгода падает. Они не перебирают все комбинации параметров в форме, потому что форма утомительна. Они пропускают недокументированные эндпоинты, потому что не знают об их существовании. Это не средства контроля безопасности; это поведенческие побочные эффекты человеческого познания, и легаси-инфраструктура тихо полагалась на них годами.
У агентов нет этих побочных эффектов. Они перебирают исчерпывающе и повторяют детерминированно. Разрешающий эндпоинт, который человек бы выборочно проверил, для агента становится задачей поиска: перебрать пространство параметров, наблюдать ответ, сузить множество. Интерфейс был спроектирован для известной популяции операторов с известной интенсивностью взаимодействия. В нём нет понятия вызывающего, который систематически зондирует, потому что такого вызывающего не существовало, когда интерфейс специфицировался.
Конкретный механизм делает это видимым. Рассмотрим легаси-сервис на SOAP или на формах, который предоставляет операцию поиска. Сервис принимает идентификатор, возвращает запись и логирует вызов. Для человека-оператора идентификатор вводится из тикета. Для агента идентификатор — это переменная в цикле. У сервиса нет ограничения скорости, потому что исходный дизайн предполагал человека за клавиатурой; лог пишется, но не агрегируется; ответ кэшируется по идентификатору, что означает, что агент может отличить «не найдено» от «найдено, но пусто» и использовать это различие как оракул. Ничего из этого не требовало от агента что-либо взламывать. Это требовало от агента использовать интерфейс, как указано, с интенсивностью, которую интерфейс никогда не предполагал.

Та же закономерность проявляется в промышленных и государственных инфраструктурах: эндпоинты пакетной отправки, которые принимают идентификатор задания и возвращают статус, административные операции, предназначенные для запланированного задания, но доступные из сервисного аккаунта, «внутренние» эндпоинты, которые разрешаются в том же сетевом сегменте и не имеют аутентификации, потому что сегмент считался доверенным. Агенту не нужно быть хитрым. Ему нужно быть настойчивым, а настойчивость для него дёшева.
Правило проектирования: ограничивайте возможности на границе протокола
Контроль, который это решает, — не лучший периметр. Это граница возможностей перед легаси-уровнем, выраженная в протоколе, на котором агент фактически говорит. Три правила делают это конкретным.
Перечислите операции, которые агенту действительно нужны, а не операции, которые поддерживает эндпоинт. Легаси-эндпоинт может поддерживать чтение, запись, удаление и набор административных операций. Агенту, который суммирует записи, нужно чтение определённого подмножества. Белый список выводится из задачи, а не из поверхности эндпоинта. Всё, чего нет в списке, недостижимо, даже если базовая служба это примет.
Привяжите каждую операцию к скорости и радиусу поражения, а не только к идентичности. Управление доступом на основе идентичности отвечает на вопрос «кто вызывает». Оно не отвечает на вопросы «сколько раз» или «в каком объёме». Операция чтения, ограниченная одной записью, — это другая возможность, чем операция чтения, ограниченная сканированием таблицы, хотя обе являются чтением. Граница должна нести и то, и другое: максимальную частоту вызовов на операцию и максимальный набор результатов или количество затронутых записей на вызов. Когда агент превышает любое из них, вызов отклоняется, а не ограничивается молча, потому что молчаливое ограничение превращает нарушение возможностей в тайм-аут, который агент будет повторять.
Считайте недокументированные эндпоинты несуществующими для агентов, даже когда они разрешаются. Легаси-инфраструктуры содержат эндпоинты, которые достижимы, но не перечислены. Для человека-оператора недокументированный эндпоинт фактически невидим. Для агента, который перебирает, это кандидат. Граница должна отказываться маршрутизировать к эндпоинтам, которых нет в манифесте возможностей агента, независимо от того, доставит ли сеть запрос. Это разница между «агент не может достучаться» и «агенту не разрешено достучаться»; последнее переживает изменения сети.
Минимальный манифест делает форму ясной:
agent_capabilities:
- verb: read_record
endpoint: /legacy/lookup
max_rate: 5/s
max_scope: 1 record
- verb: submit_job
endpoint: /legacy/batch
m

Манифест — не правило файрвола. Это описание того, для чего предназначен агент, и это артефакт, которого сейчас не хватает программам миграции.
## Что это значит для программ миграции
Дорожные карты модернизации предполагают, что модель угроз — человеческая. Они упорядочивают работу по бизнес-ценности, техническому долгу и порядку зависимостей. Готовность к агентам — это отдельное направление работы с собственной инвентаризацией: какие эндпоинты разрешаются, какие операции они принимают, какие сервисные аккаунты к ним достигают и какие из этих операций понадобятся агенту для законной задачи. Эта инвентаризация не совпадает с картой поверхности атаки, потому что она ограничена предполагаемым использованием, а не достижимостью.
Честный компромисс: ограничение возможностей добавляет границу, которую нужно поддерживать. Каждая новая задача агента требует изменения манифеста; каждое изменение манифеста — это проверка. Это трение, и в этом суть. Альтернатива — позволить агенту унаследовать неявные допущения о доверии легаси-инфраструктуры, что означает, что допуски инфраструктуры становятся разрешениями агента. Трение и есть контроль.
Второй компромисс — покрытие. Граница возможностей перед легаси-уровнем защищает легаси-уровень. Она не защищает собственные инструменты агента, его учётные данные или системы, в которые агент пишет ниже по потоку. Ограничение на границе необходимо и недостаточно; это самый дешёвый контроль, который решает конкретное несоответствие, описанное здесь.
Самый дешёвый ближайший контроль — белый список исходящих соединений и операций перед легаси-уровнем. Он не требует переписывания легаси-системы и не требует завершения миграции. Он требует инвентаризации того, для чего предназначен агент, и границы, которая это обеспечивает. Это меньший объём работы, чем миграция, и именно он определяет, выдержат ли допущения миграции о взаимодействии с человеческой скоростью контакт с агентом.
## Формулировка, которую стоит сохранить
Легаси-системы не стали уязвимыми из-за существования агентов. Они стали по-новому используемыми из-за существования агентов, и это использование выявляет допущения, которые были всегда. Исправление — не укреплять периметр вокруг статичной цели. Это ограничить то, что агент может делать на границе, в протоколе, на котором он говорит, с частотами и радиусами поражения, привязанными к операциям, а не только к идентичностям. Это проблема возможностей, и она разрешима без ожидания миграции.
