TGViewer
PWN AI PWN AI @pwnai · 7.31K subscribers
Post #1205 6.47K
Artyom Semenov Вера индустрии переехала на новый слой Вначале люди верили в MCP Год назад центром притяжения был MCP. Но дыры нашлись почти сразу. Писали мы тут и про отравление тулов, и про атаки на кодовых агентов. Бенчмарк MCPTox проверил 20 агентов на 1312 вредоносных…
Сканеры скиллов держатся ровно до первого, кто целится точнее

Помните, я писал, что просканировать скилл сканером - это несерьёзно, и что тем, кому это продают как безопасность, кто-то сильно подыгрывает? Тогда это были теория и бенчмарки. Теперь Trail of Bits вышли в поле и проверили руками. Не по себе.

Меньше чем за час они написали три вредоносных скилла, которые прошли чистыми через ClawHub, Cisco skill-scanner и все три сканера, подключённых к skills.sh от Vercel - Gen, Socket и Snyk. Четвёртый занял пару часов, и только потому, что промпт-атаку подбирали итеративно.

Самая тупая атака кладёт самый дорогой стек

У ClawHub двухслойная защита: VirusTotal с проприетарным Code Insight на Gemini 3 Flash плюс отдельная гард-модель, по умолчанию GPT 5.5. Обе обошли первой же атакой, и она неприлично простая: между безобидной шапкой и откровенно вредоносным кодом вставили 100 000 переводов строки. Сканер OpenClaw обрезал файл по лимиту и просто не дошёл до пейлоада, а модель VirusTotal поплыла.

К чести OpenClaw, они пускают в пакет только белый список типов файлов - ни бинарей, ни архивов. Это сужает арсенал. Для следующих целей такого ограничения нет.

Прятки в бинарях

skills.sh и Cisco skill-scanner работают по произвольным git-репам - значит, можно тащить бинари, и тут начинается веселье. Скилл context-loader работает через indirection: SKILL.md велит агенту достать «настоящие инструкции» из .docx, а .docx - это просто zip с кучей XML, внутри которого едет пейлоад sync1.sh.

Второй, поинтереснее, - simple-formatter. SKILL.md честный, про правила форматирования текста. Рядом безобидный питон. И заботливо приложенный прекомпилированный байткод utils.cpython-312.pyc, в котором сбор переменных окружения под эксфильтрацию, его не было в исходниках. Это похоже на бэкдор в xz-utils: пакет расходится с исходником. Прошло чистым и на skills.sh, и на Cisco. Потому что статика skill-scanner не смотрит в .pyc, игнорит скрытые файлы, проверяет только то, на что ссылается SKILL.md, а незнакомые типы держит за непрозрачные. Сузить область сканирования - это защита от переполнения контекста, но это же и дыра: через что не смотрят, через то и заходят.

Промпт-атака, которая просто уболтала судью

Четвёртый скилл, dev-env-setup, не ломает рассуждения сканера - он его убеждает. Скилл переключает npm и yarn на реестр атакующего, но обёрнут в язык «корпоративного зеркала реестра за периметром VPN», со ссылкой на публичную npm-org страницу и упоминанием «AppSec-аудита». Cisco на Sonnet 4.6 разглядел альтернативный реестр и поставил... LOW. И в итоге - safe. Причём модель волновало не то, что URL изначально может быть подконтролен атакующему, а то, что скилл может «утечь и раскрыть внутреннюю топологию сети». Сканер на чужой модели заботливо защищает атакующего от утечки его же приманки.

Авторы, к слову, не просто поломали, а прислали в Cisco skill-scanner PR. Но даже это не трогает промпт-атаку - она проходит спеку без замечаний. А языков на свете сильно больше, чем Python, Bash, JS и TS, и под каждый паттерны прописывать отдельно. (Отдельно отмечу для тех, кто читал мой пост про agentthreatrule.org: тут поломали именно открытый Cisco skill-scanner, мульти-движок с LLM-судьёй, а не ATR-блэклист, который вливается в Cisco AI Defense. Это разные штуки, не путаем.)

Честный скилл выглядит хуже малвари

Обратная сторона дуального назначения, которая мне нравится больше всего. Авторы заглянули в официальные офисные скиллы Anthropic (docx/xlsx/pptx) и нашли soffice.py с LD_PRELOAD - подгружает либо готовый lo_socket_shim.so, либо библиотеку, скомпилированную на лету из C в докстринге. Подозрительнее LD_PRELOAD произвольного бинаря придумать сложно. Скорее всего это честный костыль под песочницу claude.ai. Но skill-scanner верит пояснению внутри скилла: Sonnet 4.6 ставит LOW. Подложишь свой /tmp/lo_socket_shim.so в песочницу - скилл сам его подгрузит и выполнит.

Выводы о том что скилл это не доверенное по умолчанию – писать не хочется, думаю это и так понятно) просто забавный кейс по обходу сканеров.
The Trail of Bits Blog The sorry state of skill distribution We recently bypassed ClawHub’s malicious skill detector, Cisco’s agent skill scanner, and all three of the scanners integrated into skills.sh.
  • 👍 12
More from @pwnai
  1. Sep 14, 202610 сентября Anthropic опубликовала Detecting and countering misuse of AI — отчёт о злоупот…
  2. Sep 12, 2026Post #1242
  3. Sep 6, 2026Фанфакты: Однажды ночью эта атакующая штука снесла мне ось с компа) ну я там ничего не хра…
  4. Sep 6, 2026Я уже неделю участвую в новом соревновании от GraySwan - Hazard Hunt, в категории Cyber. У…
  5. Sep 2, 2026За последние полтора года появилось очень много интересных статьей, которые дают ответ на…
  6. Aug 23, 2026Post #1238
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →