27 октября 2026 года на Hacker News появилась публикация о Weir — инструменте для обнаружения утечек учётных данных из AI-агентов. Он подставляет фиктивные ключи в окружение агента, запускает его обычные сценарии и отслеживает, куда эти значения попали: в логи, трассировки, вывод консоли, запросы к модели или другим сервисам. Weir ищет точные значения, включая распространённые закодированные формы, и сообщает, где обнаружена утечка, не выводя сами ключи.

Weir подставляет фиктивные ключи и отслеживает их утечки
Weir работает по принципу canary-тестов: в места, где обычно хранятся настоящие учётные данные, помещаются уникальные фиктивные ключи. Затем агент выполняет свои обычные сценарии, а Weir перехватывает всё, что агент отправляет вовне. Инструмент ищет точные значения ключей в spans, логах, выводе консоли, запросах к модели и другим сервисам. Совпадение означает реальную утечку, а не предположение.
Авторы проекта указывают, что Weir не использует AI-модели для принятия решений и сам ничего не отправляет по сети. Инструмент работает офлайн и детерминированно.
Как устроен тест и что означают результаты
Для запуска теста устанавливаются пакеты weir-scan и weir-run, после чего выполняется команда weir-run run --config canary.toml. Конфигурационный файл задаёт размещение ключа (например, в переменной окружения OPENAI_API_KEY) и сценарий запуска агента. Weir запускает агента против локальной подставной модели и собирает все исходящие данные, а затем weir canary judge ищет в них точные значения ключей.
Результат теста может быть одним из трёх: clean (код 0) — утечек не обнаружено, leak (код 1) — ключ найден в одном из каналов, incomplete (код 3) — помеченный как обязательный элемент не был задействован в сценарии. Код 2 означает непригодный ввод. Если обязательная часть теста не выполнилась, Weir не выдаёт «clean» — результат будет «incomplete».
Claude Code и изоляция сетевых запросов
Weir предлагает два режима работы. Первый — тестирование собственных агентов в CI или локально, описанный выше. Второй — мониторинг агента, которым вы пользуетесь: в Claude Code статусная строка Weir показывает, какие инвентаризированные реальные ключи попали в контекст сессии или были отправлены в вызове инструмента. Дополнительный hook может удалять распознанные ключи из результатов инструментов до того, как их увидит модель.
На Linux при разрешённых непривилегированных user namespaces Weir заявляет запуск агента без доступа к внешней сети, что позволяет обнаружить прямые соединения. В других условиях отчёт указывает, что сетевой изоляции не было. Статусная строка работает на Linux и macOS.
Границы обнаружения и заявление об MLflow
Weir находит только целые значения ключей из инвентаря: хешированные, разделённые или усечённые значения останутся незамеченными. Инструмент видит лишь то, что агент отправляет во время теста. Статусная строка не распознаёт ключ, переданный внутри файла или только названием переменной. Сетевая изоляция доступна только на Linux с разрешёнными непривилегированными user namespaces.
Авторы Weir сообщают, что с помощью инструмента обнаружили уязвимость GHSA-j7qq-vr8c-xvw3 в MLflow, исправленную в версии 3.17.0. Дата публикации README отдельно не указана.





