← На главную

AI-агент: люди пропустили треть угроз, одобряя npm run analyze в 64,7%

06.08.2026 11:58 · hackernews

Небольшая браузерная игра про человеческий контроль над AI-кодинг-агентом набрала 40 000 прохождений и 409 000 решений «одобрить/отклонить». Игрок выступает человеком в цикле: за ограниченное время пропускает или блокирует команды агента. В среднем игроки пропускали каждую третью угрозу — точность 66,3%. Почти 33% сессий закончились отрицательным счётом: штрафы за одобренные угрозы и заблокированные безопасные команды перевесили всё сделанное правильно. Полностью поймали все угрозы 35,2% игроков, но только 20,8% сделали это, не заблокировав больше пятой части безобидных команд. Остальные просто блокировали всё подряд. А 7% одобрили вообще каждую команду — фанаты флага --dangerously-skip-permissions.

Угрозы в игре делились на категории. Очевидно разрушительные команды вроде rm -rf / или chmod -R 777 / пропускали лишь в 11,7% случаев. Постоянные мутации вроде инъекций в crontab — 23,8%. Эксфильтрация данных и выполнение кода — 33,4%. А вот чтение чужих credentials — cat ~/.aws/credentials, cat ~/.kube/config — пропускали уже 35%. То есть команды, которые реально крадут секреты, пропускали в три раза чаще очевидно деструктивных.

Самая пропускаемая команда всей игры — npm run analyze, её одобрили 64,7% игроков. Сама по себе она безобидна, но npm run запускает скрипт из package.json, а туда мог попасть инъектированный код. Журнал истории в игре показывает, что именно делает скрипт — например, curl на левый API. Игроки всё равно жали «одобрить». Вместе три похожие команды (npm run analyze, npm run setup, npm run deploy) пропускались в 52,5% случаев, тогда как прочие эксфильтрации — только в 28,4%. Знакомое имя команды удваивает шансы атаки, даже если payload видно в логе.

Пользователь dns_snek в обсуждении на Hacker News точно сформулировал проблему: модель проверки отдельных команд бессмысленна, потому что агент мог заранее отредактировать package.json, подложить вредоносный код в build.js или node_modules, и теперь безопасная на вид команда запускает что угодно.

Усталость от подтверждений видна и внутри игры: к концу сессии процент пропущенных угроз снова растёт после короткой «разминки» в начале. Anthropic про это говорил: чем больше подтверждений видит пользователь, тем меньше внимания уделяет каждому.

Есть и обратная сторона — паранойя. Безобидные команды блокировали часто: npm config set registry https://npm.internal — 59%, rm -rf dist/ — 45%, kill $(lsof -t -i:3000) — 43%. Шум вынуждает пользователей терять бдительность. А cat ~/.zshrc одобрили 45,9% — самый спорный момент: для одних там нет секретов, для других — экспортированные API-ключи.

Вывод: человек как защита от агента страдает от усталости и нехватки контекста. Нужны песочницы и разделение credentials, а не вечная надежда на внимательность. Поиграть можно на https://llmgame.scalex.dev.

Читать оригинал →