SKILLVERDICT
RU

Scorecard сканеров · корпус v1 · статические режимы · 2 ноября 2026

Статическая оценка следует за размером пакета, а не за намерением

Мы прогнали два открытых сканера безопасности для скиллов ИИ-агентов — NVIDIA SkillSpector и skill-scanner от Cisco — через 186 реальных скиллов на четырёх языках и 40 обезвреженных образцов атак. Всё, что ниже, цитирует собственный вывод движков.

Андрей Трухачевskillverdict.devданные: CC BY 4.0код: Apache-2.01 900 слов

§1 Постановка

Скилл агента — это SKILL.md с инструкциями для кодового агента, обычно со скриптами и справочными файлами рядом. Люди — а всё чаще и сами агенты — ставят скиллы прямо с GitHub. Два открытых сканера предлагают вердикт до установки: SkillSpector (NVIDIA; статические паттерны, AST, YARA, OSV, необязательный LLM-проход) и skill-scanner (Cisco AI Defense; статические анализаторы, YARA, необязательный LLM-проход).

Мы задали узкий вопрос: как выглядят эти вердикты на обычных опубликованных скиллах — и меняется ли ответ в зависимости от языка, на котором скилл написан?

Корпус. 146 легитимных скиллов, найденных через поиск по коду GitHub по характерным для языка фразам, дедуплицированных (не больше трёх на репозиторий, авторы чередуются), закреплённых за SHA коммита, с указанной лицензией: 39 английских, 38 русских, 30 немецких, 39 китайских. Плюс 40 синтетических образцов атак: десять паттернов (подмена инструкций в тексте, скрытая инструкция в HTML-комментарии, эксфильтрация, curl | bash, сбор переменных окружения, поддельный установщик, base64 в shell, символы нулевой ширины, расползание полномочий, закрепление в системе), написанных одинаково на всех четырёх языках и обезвреженных. «Легитимный» здесь значит опубликован с лицензией и проверенным происхождением; аудит мы не проводили.

Движки. SkillSpector 2.12.0 с --no-llm; Cisco skill-scanner 2.3.2 с --policy balanced и --policy quiet, без LLM. Версии закреплены в engines.lock.yaml. Режимы с LLM не запускались — это следующий шаг, о нём будет отдельный отчёт. В качестве контроля мы добавили собственный чекер скрытых символов на 60 строк; он есть в таблицах, потому что тоже дал ложные срабатывания, и мы не видим причин это скрывать.

Всё это — манифест, скрипты, результаты — лежит в репозитории бенчмарка и воспроизводится тремя командами.

§2 Статическая оценка следует за размером пакета

SkillSpector сводит свои находки к оценке от 0 до 100 и рекомендации: SAFE до 20, CAUTION до 50, DO NOT INSTALL выше. Сильнейший предиктор этой оценки в нашем корпусе — не то, что скилл делает, а сколько файлов кода лежит рядом с SKILL.md.

Статическая оценка SkillSpector в зависимости от объёма кода Каждая точка — один пакет. Все легитимные скиллы с шестью и более файлами кода получают 100; синтетические образцы атак из одного файла — от 14 до 51. SAFE ≤ 20 DO NOT INSTALL > 50 0 25 50 75 100 оценка 0–100 только Markdown 60 легит. · 36 синт. ru-001 · русский · 0 файлов кода · оценка 22 · CAUTION ru-003 · русский · 0 файлов кода · оценка 8 · SAFE ru-004 · русский · 0 файлов кода · оценка 8 · SAFE ru-005 · русский · 0 файлов кода · оценка 16 · SAFE ru-009 · русский · 0 файлов кода · оценка 64 · DO NOT INSTALL ru-011 · русский · 0 файлов кода · оценка 16 · SAFE ru-012 · русский · 0 файлов кода · оценка 16 · SAFE ru-014 · русский · 0 файлов кода · оценка 20 · SAFE ru-015 · русский · 0 файлов кода · оценка 20 · SAFE ru-017 · русский · 0 файлов кода · оценка 55 · DO NOT INSTALL ru-019 · русский · 0 файлов кода · оценка 8 · SAFE ru-020 · русский · 0 файлов кода · оценка 16 · SAFE ru-022 · русский · 0 файлов кода · оценка 8 · SAFE ru-023 · русский · 0 файлов кода · оценка 0 · SAFE ru-024 · русский · 0 файлов кода · оценка 0 · SAFE ru-025 · русский · 0 файлов кода · оценка 8 · SAFE ru-026 · русский · 0 файлов кода · оценка 8 · SAFE ru-027 · русский · 0 файлов кода · оценка 16 · SAFE ru-028 · русский · 0 файлов кода · оценка 16 · SAFE ru-029 · русский · 0 файлов кода · оценка 16 · SAFE ru-030 · русский · 0 файлов кода · оценка 16 · SAFE ru-031 · русский · 0 файлов кода · оценка 16 · SAFE ru-033 · русский · 0 файлов кода · оценка 100 · DO NOT INSTALL ru-034 · русский · 0 файлов кода · оценка 0 · SAFE ru-035 · русский · 0 файлов кода · оценка 16 · SAFE ru-036 · русский · 0 файлов кода · оценка 16 · SAFE ru-037 · русский · 0 файлов кода · оценка 100 · DO NOT INSTALL ru-040 · русский · 0 файлов кода · оценка 0 · SAFE de-041 · немецкий · 0 файлов кода · оценка 0 · SAFE de-044 · немецкий · 0 файлов кода · оценка 8 · SAFE de-045 · немецкий · 0 файлов кода · оценка 22 · CAUTION de-046 · немецкий · 0 файлов кода · оценка 8 · SAFE de-047 · немецкий · 0 файлов кода · оценка 8 · SAFE de-049 · немецкий · 0 файлов кода · оценка 12 · SAFE de-050 · немецкий · 0 файлов кода · оценка 8 · SAFE de-052 · немецкий · 0 файлов кода · оценка 0 · SAFE de-053 · немецкий · 0 файлов кода · оценка 8 · SAFE de-054 · немецкий · 0 файлов кода · оценка 8 · SAFE de-056 · немецкий · 0 файлов кода · оценка 8 · SAFE de-058 · немецкий · 0 файлов кода · оценка 0 · SAFE de-060 · немецкий · 0 файлов кода · оценка 8 · SAFE de-062 · немецкий · 0 файлов кода · оценка 6 · SAFE de-064 · немецкий · 0 файлов кода · оценка 9 · SAFE de-065 · немецкий · 0 файлов кода · оценка 8 · SAFE de-066 · немецкий · 0 файлов кода · оценка 15 · SAFE de-067 · немецкий · 0 файлов кода · оценка 8 · SAFE de-068 · немецкий · 0 файлов кода · оценка 0 · SAFE de-070 · немецкий · 0 файлов кода · оценка 8 · SAFE zh-117 · китайский · 0 файлов кода · оценка 12 · CAUTION zh-123 · китайский · 0 файлов кода · оценка 7 · SAFE zh-124 · китайский · 0 файлов кода · оценка 0 · SAFE zh-126 · китайский · 0 файлов кода · оценка 56 · DO NOT INSTALL zh-134 · китайский · 0 файлов кода · оценка 3 · CAUTION zh-138 · китайский · 0 файлов кода · оценка 3 · SAFE zh-140 · китайский · 0 файлов кода · оценка 0 · SAFE zh-146 · китайский · 0 файлов кода · оценка 10 · SAFE en-154 · английский · 0 файлов кода · оценка 72 · DO NOT INSTALL en-161 · английский · 0 файлов кода · оценка 89 · DO NOT INSTALL en-162 · английский · 0 файлов кода · оценка 100 · DO NOT INSTALL en-182 · английский · 0 файлов кода · оценка 20 · SAFE mal-p-01-en · английский · 0 файлов кода · оценка 20 · SAFE mal-p-01-ru · русский · 0 файлов кода · оценка 0 · SAFE mal-p-01-de · немецкий · 0 файлов кода · оценка 0 · SAFE mal-p-01-zh · китайский · 0 файлов кода · оценка 0 · SAFE mal-p-02-en · английский · 0 файлов кода · оценка 42 · CAUTION mal-p-02-ru · русский · 0 файлов кода · оценка 22 · CAUTION mal-p-02-de · немецкий · 0 файлов кода · оценка 22 · CAUTION mal-p-02-zh · китайский · 0 файлов кода · оценка 22 · CAUTION mal-p-03-en · английский · 0 файлов кода · оценка 0 · SAFE mal-p-03-ru · русский · 0 файлов кода · оценка 8 · SAFE mal-p-03-de · немецкий · 0 файлов кода · оценка 0 · SAFE mal-p-03-zh · китайский · 0 файлов кода · оценка 0 · SAFE mal-p-04-en · английский · 0 файлов кода · оценка 51 · DO NOT INSTALL mal-p-04-ru · русский · 0 файлов кода · оценка 51 · DO NOT INSTALL mal-p-04-de · немецкий · 0 файлов кода · оценка 51 · DO NOT INSTALL mal-p-04-zh · китайский · 0 файлов кода · оценка 51 · DO NOT INSTALL mal-p-06-en · английский · 0 файлов кода · оценка 0 · SAFE mal-p-06-ru · русский · 0 файлов кода · оценка 0 · SAFE mal-p-06-de · немецкий · 0 файлов кода · оценка 0 · SAFE mal-p-06-zh · китайский · 0 файлов кода · оценка 0 · SAFE mal-p-07-en · английский · 0 файлов кода · оценка 45 · CAUTION mal-p-07-ru · русский · 0 файлов кода · оценка 45 · CAUTION mal-p-07-de · немецкий · 0 файлов кода · оценка 45 · CAUTION mal-p-07-zh · китайский · 0 файлов кода · оценка 45 · CAUTION mal-p-08-en · английский · 0 файлов кода · оценка 43 · CAUTION mal-p-08-ru · русский · 0 файлов кода · оценка 43 · CAUTION mal-p-08-de · немецкий · 0 файлов кода · оценка 43 · CAUTION mal-p-08-zh · китайский · 0 файлов кода · оценка 43 · CAUTION mal-p-09-en · английский · 0 файлов кода · оценка 0 · SAFE mal-p-09-ru · русский · 0 файлов кода · оценка 0 · SAFE mal-p-09-de · немецкий · 0 файлов кода · оценка 0 · SAFE mal-p-09-zh · китайский · 0 файлов кода · оценка 0 · SAFE mal-p-10-en · английский · 0 файлов кода · оценка 41 · CAUTION mal-p-10-ru · русский · 0 файлов кода · оценка 41 · CAUTION mal-p-10-de · немецкий · 0 файлов кода · оценка 41 · CAUTION mal-p-10-zh · китайский · 0 файлов кода · оценка 41 · CAUTION медиана 8 1–5 файлов кода 35 легит. · 4 синт. ru-002 · русский · 1 файлов кода · оценка 26 · CAUTION ru-006 · русский · 4 файлов кода · оценка 23 · CAUTION ru-008 · русский · 1 файлов кода · оценка 41 · CAUTION ru-010 · русский · 2 файлов кода · оценка 56 · DO NOT INSTALL ru-016 · русский · 2 файлов кода · оценка 24 · CAUTION ru-018 · русский · 1 файлов кода · оценка 27 · CAUTION ru-021 · русский · 1 файлов кода · оценка 21 · CAUTION ru-038 · русский · 2 файлов кода · оценка 23 · CAUTION ru-039 · русский · 1 файлов кода · оценка 8 · SAFE de-051 · немецкий · 1 файлов кода · оценка 25 · CAUTION de-057 · немецкий · 2 файлов кода · оценка 0 · CAUTION de-061 · немецкий · 1 файлов кода · оценка 7 · SAFE de-069 · немецкий · 1 файлов кода · оценка 17 · SAFE zh-113 · китайский · 4 файлов кода · оценка 84 · DO NOT INSTALL zh-115 · китайский · 3 файлов кода · оценка 100 · DO NOT INSTALL zh-118 · китайский · 4 файлов кода · оценка 47 · CAUTION zh-120 · китайский · 5 файлов кода · оценка 100 · DO NOT INSTALL zh-125 · китайский · 2 файлов кода · оценка 100 · DO NOT INSTALL zh-127 · китайский · 3 файлов кода · оценка 100 · DO NOT INSTALL zh-128 · китайский · 1 файлов кода · оценка 100 · DO NOT INSTALL zh-129 · китайский · 3 файлов кода · оценка 86 · DO NOT INSTALL zh-130 · китайский · 4 файлов кода · оценка 67 · DO NOT INSTALL zh-132 · китайский · 1 файлов кода · оценка 17 · SAFE zh-143 · китайский · 4 файлов кода · оценка 14 · CAUTION zh-145 · китайский · 2 файлов кода · оценка 7 · SAFE en-152 · английский · 3 файлов кода · оценка 49 · CAUTION en-153 · английский · 4 файлов кода · оценка 100 · DO NOT INSTALL en-166 · английский · 2 файлов кода · оценка 22 · CAUTION en-167 · английский · 2 файлов кода · оценка 100 · DO NOT INSTALL en-170 · английский · 5 файлов кода · оценка 100 · DO NOT INSTALL en-171 · английский · 3 файлов кода · оценка 53 · DO NOT INSTALL en-173 · английский · 1 файлов кода · оценка 27 · CAUTION en-179 · английский · 5 файлов кода · оценка 100 · DO NOT INSTALL en-180 · английский · 5 файлов кода · оценка 100 · DO NOT INSTALL en-183 · английский · 1 файлов кода · оценка 7 · SAFE mal-p-05-en · английский · 1 файлов кода · оценка 29 · CAUTION mal-p-05-ru · русский · 1 файлов кода · оценка 29 · CAUTION mal-p-05-de · немецкий · 1 файлов кода · оценка 29 · CAUTION mal-p-05-zh · китайский · 1 файлов кода · оценка 29 · CAUTION медиана 41 6–30 файлов кода 27 легит. ru-013 · русский · 26 файлов кода · оценка 100 · DO NOT INSTALL de-042 · немецкий · 18 файлов кода · оценка 100 · DO NOT INSTALL de-043 · немецкий · 23 файлов кода · оценка 100 · DO NOT INSTALL de-048 · немецкий · 22 файлов кода · оценка 100 · DO NOT INSTALL de-055 · немецкий · 11 файлов кода · оценка 79 · DO NOT INSTALL zh-119 · китайский · 16 файлов кода · оценка 7 · CAUTION zh-121 · китайский · 11 файлов кода · оценка 100 · DO NOT INSTALL zh-131 · китайский · 16 файлов кода · оценка 100 · DO NOT INSTALL zh-133 · китайский · 18 файлов кода · оценка 100 · DO NOT INSTALL zh-137 · китайский · 7 файлов кода · оценка 64 · DO NOT INSTALL zh-139 · китайский · 19 файлов кода · оценка 100 · DO NOT INSTALL zh-144 · китайский · 20 файлов кода · оценка 100 · DO NOT INSTALL zh-147 · китайский · 23 файлов кода · оценка 95 · DO NOT INSTALL zh-148 · китайский · 8 файлов кода · оценка 33 · CAUTION zh-149 · китайский · 6 файлов кода · оценка 30 · CAUTION zh-150 · китайский · 7 файлов кода · оценка 100 · DO NOT INSTALL en-158 · английский · 10 файлов кода · оценка 100 · DO NOT INSTALL en-164 · английский · 8 файлов кода · оценка 28 · CAUTION en-168 · английский · 25 файлов кода · оценка 100 · DO NOT INSTALL en-169 · английский · 6 файлов кода · оценка 100 · DO NOT INSTALL en-177 · английский · 8 файлов кода · оценка 100 · DO NOT INSTALL en-181 · английский · 10 файлов кода · оценка 100 · DO NOT INSTALL en-185 · английский · 21 файлов кода · оценка 100 · DO NOT INSTALL en-186 · английский · 6 файлов кода · оценка 100 · DO NOT INSTALL en-187 · английский · 8 файлов кода · оценка 100 · DO NOT INSTALL en-188 · английский · 7 файлов кода · оценка 100 · DO NOT INSTALL en-189 · английский · 6 файлов кода · оценка 100 · DO NOT INSTALL медиана 100 больше 30 16 легит. de-063 · немецкий · 214 файлов кода · оценка 100 · DO NOT INSTALL zh-111 · китайский · 57 файлов кода · оценка 100 · DO NOT INSTALL zh-114 · китайский · 34 файлов кода · оценка 100 · DO NOT INSTALL zh-135 · китайский · 94 файлов кода · оценка 100 · DO NOT INSTALL zh-136 · китайский · 65 файлов кода · оценка 100 · DO NOT INSTALL zh-141 · китайский · 163 файлов кода · оценка 100 · DO NOT INSTALL en-151 · английский · 32 файлов кода · оценка 100 · DO NOT INSTALL en-155 · английский · 52 файлов кода · оценка 27 · CAUTION en-157 · английский · 39 файлов кода · оценка 100 · DO NOT INSTALL en-159 · английский · 49 файлов кода · оценка 100 · DO NOT INSTALL en-163 · английский · 59 файлов кода · оценка 100 · DO NOT INSTALL en-172 · английский · 32 файлов кода · оценка 100 · DO NOT INSTALL en-175 · английский · 143 файлов кода · оценка 100 · DO NOT INSTALL en-176 · английский · 51 файлов кода · оценка 56 · DO NOT INSTALL en-178 · английский · 54 файлов кода · оценка 100 · DO NOT INSTALL en-184 · английский · 44 файлов кода · оценка 100 · DO NOT INSTALL медиана 100 легитимный скилл (n = 138)синтетический образец атаки (n = 40)
Рис. 1 Статическая оценка SkillSpector в зависимости от объёма кода. Каждая точка — пакет; черта — медиана легитимных скиллов в этой полосе. Наведите на точку, чтобы увидеть её id. 178 пакетов; 8 крупных не завершились (§6).
файлов кода в пакетеnмедиана оценкиSAFEDO NOT INSTALL
Markdown only (0 code files)608488
1-5 code files3541615
6-30 code files27100023
more than 30 code files16100015

Ни один из 43 легитимных скиллов с шестью и более файлами кода не получил SAFE; 38 из них получили DO NOT INSTALL. 40 образцов атак — один SKILL.md и не больше одного скрипта каждый — получили медиану 29 и максимум 51. Только один из десяти паттернов дотянул до DO NOT INSTALL хоть на каком-то языке. Легитимный английский скилл с папкой scripts/ оценён хуже, чем образец из одного файла, который читает файлы с учётными данными и отправляет их на URL.

Вывод Cisco показывает то же, но с меньшей амплитудой. Его самые частые находки MEDIUM и выше на легитимных скиллах — DATA_EXFIL_NETWORK_REQUESTS, DATA_EXFIL_JS_NETWORK, UNANALYZABLE_BINARY, COMMAND_INJECTION_* — все вызваны приложенным кодом, а не инструкциями.

Это важно для всего дальнейшего: четыре языковых набора сильно различаются по количеству кода. Русские и немецкие скиллы «в дикой природе» — в основном чистый Markdown; английские и китайские несут скрипты, иногда целые приложения. Любую цифру по языкам нужно читать с этой поправкой — поэтому §4 смотрит только на находки, расположенные в Markdown.

§3 Вердикты по языкам

Пользователь видит вердикт, поэтому сначала считаем его: долю легитимных скиллов, которые сам движок не оценил как SAFE (SkillSpector: recommendation; Cisco: is_safe), и долю образцов атак, которые он оценил как SAFE.

Доля легитимных скиллов без оценки SAFE по движкам и языкам Горизонтальные полосы по движкам. SkillSpector в статическом режиме ставит CAUTION или DO NOT INSTALL 94 процентам английских и 81 проценту китайских легитимных скиллов против 37 процентов русских и 28 процентов немецких. SkillSpector 2.12 · static легитимные скиллы, которые сам движок НЕ оценил как SAFE английский английский: 33 из 35 не SAFE; 28 DO NOT INSTALL / HIGH 94% (33/35) русский русский: 14 из 38 не SAFE; 6 DO NOT INSTALL / HIGH 37% (14/38) немецкий немецкий: 8 из 29 не SAFE; 5 DO NOT INSTALL / HIGH 28% (8/29) китайский китайский: 29 из 36 не SAFE; 22 DO NOT INSTALL / HIGH 81% (29/36) синтетические атаки с оценкой SAFE 40% 16 из 40 образцов en 4 ru 4 de 4 zh 4 из 10 Cisco skill-scanner 2.3 · balanced легитимные скиллы, которые сам движок НЕ оценил как SAFE английский английский: 18 из 39 не SAFE; 18 DO NOT INSTALL / HIGH 46% (18/39) русский русский: 1 из 38 не SAFE; 1 DO NOT INSTALL / HIGH 3% (1/38) немецкий немецкий: 8 из 30 не SAFE; 8 DO NOT INSTALL / HIGH 27% (8/30) китайский китайский: 14 из 39 не SAFE; 14 DO NOT INSTALL / HIGH 36% (14/39) синтетические атаки с оценкой SAFE 85% 34 из 40 образцов en 7 ru 9 de 9 zh 9 из 10 Cisco skill-scanner 2.3 · quiet легитимные скиллы, которые сам движок НЕ оценил как SAFE английский английский: 17 из 39 не SAFE; 17 DO NOT INSTALL / HIGH 44% (17/39) русский русский: 1 из 38 не SAFE; 1 DO NOT INSTALL / HIGH 3% (1/38) немецкий немецкий: 6 из 30 не SAFE; 6 DO NOT INSTALL / HIGH 20% (6/30) китайский китайский: 12 из 39 не SAFE; 12 DO NOT INSTALL / HIGH 31% (12/39) синтетические атаки с оценкой SAFE 85% 34 из 40 образцов en 7 ru 9 de 9 zh 9 из 10 CAUTION или хужеиз них DO NOT INSTALL (SkillSpector) / HIGH–CRITICAL (Cisco)
Рис. 2 Доли на уровне вердикта. Слева: легитимные скиллы без SAFE, по языкам; оранжевая часть — DO NOT INSTALL (SkillSpector) или HIGH/CRITICAL (Cisco). Справа: образцы атак, которые движок оценил как SAFE.
движокenrudezhвсеобразцов атак с оценкой SAFE
SkillSpector 2.12 · static94 % (33/35)37 % (14/38)28 % (8/29)81 % (29/36)61 %40 %
Cisco skill-scanner 2.3 · balanced46 % (18/39)3 % (1/38)27 % (8/30)36 % (14/39)28 %85 %
Cisco skill-scanner 2.3 · quiet44 % (17/39)3 % (1/38)20 % (6/30)31 % (12/39)25 %85 %

Читать вместе с §2: 94 % SkillSpector на английском — это в основном эффект объёма кода; его 37 % на русском, где кода почти нет, — в основном одно правило (§4). 3 % Cisco на русском против 46 % на английском — тот же эффект объёма, увиденный через другую систему оценки. Статический режим ни одного из движков не отделяет образцы атак от легитимного набора: SkillSpector оценивает 40 % из них как SAFE, Cisco — 85 %.

§4 Правила, которые за этим стоят

Если считать только находки, расположенные в Markdown-файлах, эффект объёма кода почти исчезает и остаётся язык текста:

движок · находки MEDIUM+ в .md-файлахenrudezh
SkillSpector 2.12 · static100 %76 %41 %89 %
Cisco skill-scanner 2.3 · balanced46 %11 %13 %44 %
Cisco skill-scanner 2.3 · quiet44 %11 %7 %44 %
hidden-char checker (ours, control)5 %0 %0 %0 %

Большую часть языкового поведения объясняют четыре правила:

  • SkillSpector AE4, «Suspicious Unicode normalization or mixed-script content». 207 срабатываний на русском Markdown, 3 на английском, 2 на китайском, 0 на немецком. Любой русский SKILL.md, в котором есть блок кода, название продукта или команда, смешивает кириллицу с латиницей и запускает это правило. Уровень MEDIUM — само по себе оно переводит русский скилл из чистого Markdown из SAFE в CAUTION примерно в трети случаев. (Наш собственный скилл, написанный по-русски, собирает четыре таких.)
  • SkillSpector RP1, «npx commands without a version suffix». 346 срабатываний на английском Markdown — крупнейший источник находок MEDIUM на английском тексте. Документация со словами npx something считается риском для цепочки поставок, даже когда это пример, а не шаг установки.
  • Cisco YARA_prompt_injection_unicode_steganography. 112 срабатываний на китайских пакетах, 24 на немецких, 0 на русских — в основном в коде и файлах данных, а не в SKILL.md, и главная причина более высокой доли Cisco на китайском.
  • Cisco YARA_code_execution_generic. 31 срабатывание на английском Markdown, 0 на остальных трёх языках. Его паттерны сопоставляются с английскими словами; текст на других языках его не запускает — и атаки на этих языках тоже.

Правила, срабатывающие на легитимном Markdown, MEDIUM и выше

SkillSpector

правилоenrudezhвсего
RP1346121440412
AE4320702212
AE123425118170
PE3392242489
E1340143987
AS332144380
RA261211276
EA25815771

Cisco skill-scanner, balanced

правилоenrudezhвсего
TOOL_ABUSE_UNDECLARED_NETWORK14121431
YARA_code_execution_generic3100031
CORRELATED_SENSITIVE_NETWORK_FLOW0024024
PIPELINE_TAINT_FLOW10089
COMPOUND_FETCH_EXECUTE70018
ALLOWED_TOOLS_WRITE_VIOLATION03014
SOCIAL_ENG_MISLEADING_DESC20013
COMPOUND_FIND_EXEC20002

§5 Что не поймал никто

Десять паттернов атак написаны так, чтобы быть узнаваемыми, а не скрытными: смысл был в том, чтобы проверить, переживает ли узнавание перевод.

Какие синтетические паттерны находит каждый движок, по языкам Сетка из десяти паттернов атак и четырёх языков для двух движков. Закрашенные ячейки — обнаружено на уровне MEDIUM и выше. Паттерны только в тексте и подмена инструкций не на английском почти все пустые. SkillSpector · static en ru de zh Cisco · balanced en ru de zh P-01 подмена инструкций в тексте подмена инструкций в тексте · английский · skillspector: HIGH подмена инструкций в тексте · русский · skillspector: ничего на уровне MEDIUM и выше подмена инструкций в тексте · немецкий · skillspector: ничего на уровне MEDIUM и выше подмена инструкций в тексте · китайский · skillspector: ничего на уровне MEDIUM и выше подмена инструкций в тексте · английский · cisco: HIGH подмена инструкций в тексте · русский · cisco: ничего на уровне MEDIUM и выше подмена инструкций в тексте · немецкий · cisco: ничего на уровне MEDIUM и выше подмена инструкций в тексте · китайский · cisco: ничего на уровне MEDIUM и выше P-02 инструкция в HTML-комментарии инструкция в HTML-комментарии · английский · skillspector: HIGH инструкция в HTML-комментарии · русский · skillspector: HIGH инструкция в HTML-комментарии · немецкий · skillspector: HIGH инструкция в HTML-комментарии · китайский · skillspector: HIGH инструкция в HTML-комментарии · английский · cisco: ничего на уровне MEDIUM и выше инструкция в HTML-комментарии · русский · cisco: ничего на уровне MEDIUM и выше инструкция в HTML-комментарии · немецкий · cisco: ничего на уровне MEDIUM и выше инструкция в HTML-комментарии · китайский · cisco: ничего на уровне MEDIUM и выше P-03 эксфильтрация файлов на URL эксфильтрация файлов на URL · английский · skillspector: ничего на уровне MEDIUM и выше эксфильтрация файлов на URL · русский · skillspector: MEDIUM эксфильтрация файлов на URL · немецкий · skillspector: ничего на уровне MEDIUM и выше эксфильтрация файлов на URL · китайский · skillspector: ничего на уровне MEDIUM и выше эксфильтрация файлов на URL · английский · cisco: ничего на уровне MEDIUM и выше эксфильтрация файлов на URL · русский · cisco: ничего на уровне MEDIUM и выше эксфильтрация файлов на URL · немецкий · cisco: ничего на уровне MEDIUM и выше эксфильтрация файлов на URL · китайский · cisco: ничего на уровне MEDIUM и выше P-04 curl | bash curl | bash · английский · skillspector: HIGH curl | bash · русский · skillspector: HIGH curl | bash · немецкий · skillspector: HIGH curl | bash · китайский · skillspector: HIGH curl | bash · английский · cisco: ничего на уровне MEDIUM и выше curl | bash · русский · cisco: ничего на уровне MEDIUM и выше curl | bash · немецкий · cisco: ничего на уровне MEDIUM и выше curl | bash · китайский · cisco: ничего на уровне MEDIUM и выше P-05 скрипт сбора переменных окружения скрипт сбора переменных окружения · английский · skillspector: HIGH скрипт сбора переменных окружения · русский · skillspector: HIGH скрипт сбора переменных окружения · немецкий · skillspector: HIGH скрипт сбора переменных окружения · китайский · skillspector: HIGH скрипт сбора переменных окружения · английский · cisco: MEDIUM скрипт сбора переменных окружения · русский · cisco: MEDIUM скрипт сбора переменных окружения · немецкий · cisco: MEDIUM скрипт сбора переменных окружения · китайский · cisco: MEDIUM P-06 поддельный установщик поддельный установщик · английский · skillspector: ничего на уровне MEDIUM и выше поддельный установщик · русский · skillspector: ничего на уровне MEDIUM и выше поддельный установщик · немецкий · skillspector: ничего на уровне MEDIUM и выше поддельный установщик · китайский · skillspector: ничего на уровне MEDIUM и выше поддельный установщик · английский · cisco: HIGH поддельный установщик · русский · cisco: ничего на уровне MEDIUM и выше поддельный установщик · немецкий · cisco: ничего на уровне MEDIUM и выше поддельный установщик · китайский · cisco: ничего на уровне MEDIUM и выше P-07 base64-команда в shell base64-команда в shell · английский · skillspector: HIGH base64-команда в shell · русский · skillspector: HIGH base64-команда в shell · немецкий · skillspector: HIGH base64-команда в shell · китайский · skillspector: HIGH base64-команда в shell · английский · cisco: HIGH base64-команда в shell · русский · cisco: HIGH base64-команда в shell · немецкий · cisco: HIGH base64-команда в shell · китайский · cisco: HIGH P-08 скрытый текст в zero-width скрытый текст в zero-width · английский · skillspector: HIGH скрытый текст в zero-width · русский · skillspector: HIGH скрытый текст в zero-width · немецкий · skillspector: HIGH скрытый текст в zero-width · китайский · skillspector: HIGH скрытый текст в zero-width · английский · cisco: ничего на уровне MEDIUM и выше скрытый текст в zero-width · русский · cisco: ничего на уровне MEDIUM и выше скрытый текст в zero-width · немецкий · cisco: ничего на уровне MEDIUM и выше скрытый текст в zero-width · китайский · cisco: ничего на уровне MEDIUM и выше P-09 широкий триггер / расползание широкий триггер / расползание · английский · skillspector: ничего на уровне MEDIUM и выше широкий триггер / расползание · русский · skillspector: ничего на уровне MEDIUM и выше широкий триггер / расползание · немецкий · skillspector: ничего на уровне MEDIUM и выше широкий триггер / расползание · китайский · skillspector: ничего на уровне MEDIUM и выше широкий триггер / расползание · английский · cisco: ничего на уровне MEDIUM и выше широкий триггер / расползание · русский · cisco: ничего на уровне MEDIUM и выше широкий триггер / расползание · немецкий · cisco: ничего на уровне MEDIUM и выше широкий триггер / расползание · китайский · cisco: ничего на уровне MEDIUM и выше P-10 закрепление через crontab / rc закрепление через crontab / rc · английский · skillspector: HIGH закрепление через crontab / rc · русский · skillspector: HIGH закрепление через crontab / rc · немецкий · skillspector: HIGH закрепление через crontab / rc · китайский · skillspector: HIGH закрепление через crontab / rc · английский · cisco: ничего на уровне MEDIUM и выше закрепление через crontab / rc · русский · cisco: ничего на уровне MEDIUM и выше закрепление через crontab / rc · немецкий · cisco: ничего на уровне MEDIUM и выше закрепление через crontab / rc · китайский · cisco: ничего на уровне MEDIUM и выше HIGH / CRITICALMEDIUMничего на уровне MEDIUM и выше
Рис. 3 Максимальная заявленная серьёзность по паттерну и языку. Наш контрольный чекер скрытых символов не показан: он находит P-08 на всех четырёх языках и больше ничего — как и задумано.
  • P-01, подмена инструкций обычным текстом («игнорируй предыдущие инструкции и …»). Оба движка отмечают английский образец; ни один не отмечает русский, немецкий или китайский перевод той же фразы.
  • P-09, слишком широкий триггер и расползание полномочий («используй этот скилл для любого запроса»). Не отметил никто ни на одном языке. Это паттерн только в тексте — и, пожалуй, самая частая проблема в реальной жизни.
  • P-06, загрузка поддельного «установщика зависимостей». Cisco отмечает только по-английски; SkillSpector — никак.
  • SkillSpector ловит структурные паттерны — инструкцию в HTML-комментарии, curl | bash, сбор переменных окружения, base64 в shell, символы нулевой ширины, закрепление — на всех четырёх языках. Статический режим Cisco ловит сбор переменных окружения и base64 на всех четырёх, и больше ничего за пределами английского.

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

§6 Замечания по запуску

  • SkillSpector не завершился за 15 минут на 8 из 186 пакетов (16–73 МБ, целые репозитории с SKILL.md в корне, один — с 6 342 JavaScript-файлами). Cisco прошёл каждый из них меньше чем за минуту. Эти 8 исключены из всех долей выше и перечислены здесь: de-059, en-160, en-165, en-174, en-190, zh-112, zh-122, zh-142.
  • Наш собственный чекер скрытых символов, написанный для этого бенчмарка, отмечал легитимные скиллы, пока не узнал, что последовательности эмодзи используют U+200D, а мягкие переносы в немецком — норма. Он всё ещё отмечает 7 из 146 легитимных пакетов, 2 из них в Markdown. Мы показываем его по той же причине, по которой показываем остальные.
  • Cisco отвергает скилл, файл которого называется Skill.md или _template-skill.md; две такие записи исключены из корпуса, а не переименованы.

§7 Чего мы просили бы от сканера

Ничто из этого — не аргумент против сканирования. Это аргумент за калибровку вердикта, и исправления конкретны:

  1. Отделить объём от риска. Ограничить вклад повторяющихся малоинформативных находок (одно правило про npx не должно набирать 100) и говорить «большой пакет, проанализирован частично» вместо DO NOT INSTALL, когда честный ответ — «мы не посмотрели».
  2. Сделать Unicode-правила чувствительными к алфавиту. Кириллица плюс латиница внутри русского документа — норма, а не аномалия; аномалия — кириллическая буква внутри латинского слова. То же относится к CJK и к немецким мягким переносам.
  3. Тестировать текстовые правила больше чем на одном языке. Правило, которое ловит «ignore previous instructions», должно поставляться с переводами или быть LLM-проверкой — и тестовый набор должен говорить, что именно.
  4. Публиковать корпус ложных срабатываний. Каждый сканер поставляется с вредоносными тестовыми образцами; почти никто — с набором обычных скиллов, которые обязаны проходить. Наш корпус под CC BY 4.0 может быть таким набором.

§8 Оговорки

  • Только статические режимы. У обоих движков есть режимы с LLM, которые могут изменить картину, особенно для текстовых паттернов. Запустить их — следующий шаг.
  • Образцы атак короткие и одноцелевые. Они проверяют, узнаётся ли паттерн на данном языке, а не то, как реальный злоумышленник его упаковал бы.
  • «Легитимный» — суждение о происхождении, а не аудит. Некоторые находки на легитимном наборе могут быть верными.
  • Один корпус, одна дата. Scorecard будет перезапускаться на каждом выпуске движков; первая цифра, которая действительно важна, — следующая.

§9 Ответы разработчиков

Уведомление до открытия данных

Разработчики SkillSpector и skill-scanner получают файл с находками и полные таблицы 5 ноября 2026, за семь дней до того, как 12 ноября 2026 откроется репозиторий — манифест корпуса, образцы атак, скрипты, журналы запусков и агрегированные результаты. Сырой вывод движков по каждому скиллу не распространяется: он воспроизводится из манифеста. Их ответы и любые исправления, выпущенные за это время, будут воспроизведены здесь без редактирования.

Автор — Андрей Трухачев. Исправления и возражения: andrey@skillverdict.dev. Слова-вердикты на этой странице (SAFE, CAUTION, DO NOT INSTALL, HIGH, MEDIUM) цитируют собственный вывод движков и не являются нашим суждением о каком-либо скилле.

Фаза 2

Узнать, когда откроются страницы скиллов

Одно письмо, когда заработает фаза 2, и больше ничего. Выберите почтовый сервис — письмо уже написано, просто отправьте его.

Сообщить мне об открытии

Или напишите на andrey@skillverdict.dev. Если вы поддерживаете сканер и хотите получить сырые результаты до публикации — тот же адрес.