BC tinman
Сканер безопасности ИИ с активной защитой — 168 шаблонов обнаружения, 288 зондов атаки, режимы safer/risky/yolo, самозащита агента через /tinman check, локальная потоковая передача событий Oilcan и простая настройка панели управления через /tinman oilcan.
машинный переводПоказать оригиналСкрыть оригинал«AI security scanner with active prevention - 168 detection patterns, 2…»
AI security scanner with active prevention - 168 detection patterns, 288 attack probes, safer/risky/yolo modes, agent self-protection via /tinman check, local Oilcan event streaming, and plain-language dashboard setup via /tinman oilcan
Сканер безопасности ИИ с активной защитой — 168 шаблонов обнаружения, 288 зондов атаки, режимы safer/risky/yolo, самозащита агента через /tinman check…
Как процесс C 54/100 · Есть пробелы — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 9
✓ Критических и высоких находок нет
Средние и низкие: 9
-
средняя Утечка данных
intent-browser-credential-storetinman_runner.py:533Доступ к хранилищу паролей / cookies браузера (в кавычках — упоминание, а не команда)"browser_data": ["Cookies", "Login Data", "Chrome", "Firefox", "Safari", "Brave"],
в кавычках -
низкая Рискованное назначение
intent-wallet-secretstinman_runner.py:529Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)"seed phrase",
в кавычках -
низкая Рискованное назначение
intent-wallet-secretstinman_runner.py:531Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)"recovery phrase",
в кавычках -
низкая Опасные команды
cmd-execpolicy-bypasstinman_runner.py:555Запуск PowerShell с обходом execution policy (строковый литерал в коде, не выполняется)"-executionpolicy bypass",
строка в коде -
низкая Опасные команды
cmd-background-processtinman_runner.py:589Запуск фонового / автозапускаемого процесса (строковый литерал в коде, не выполняется)"systemctl enable",
строка в коде -
низкая Опасные команды
cmd-privilegetinman_runner.py:631Повышение привилегий / права на запись для всех (строковый литерал в коде, не выполняется)"privilege_escalation": ["sudo", "chmod 777", "chmod +x", "chown", "setuid"],
строка в коде
Ещё 3 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.
Просканировано файлов: 3. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - заметка
frontmatter-keyнеизвестное поле фронтматтера "repository" - заметка
frontmatter-keyнеизвестное поле фронтматтера "requires" - заметка
frontmatter-keyнеизвестное поле фронтматтера "install" - заметка
frontmatter-keyнеизвестное поле фронтматтера "permissions"
Процессный рейтинг: все десять параметров 54/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 40Согласованность. Имя во frontmatter (tinman) не совпадает с папкой (agent-tinman)
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 100Инструменты и файлы. Внешние инструменты не нужны
- 100Шаги. Шагов: 36
- 100Стоимость исполнения. Тело инструкции 2329 токенов
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +2Инструкции на одном языке
- +3Длина description 236 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 20 заголовков
- +3Пошаговые инструкции: 36 пунктов
- +4Есть примеры (16 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 70.