BF Crypto Audit
Детектор слабой криптографии (OWASP A02:2021 — Криптографические сбои). Сканирует исходный код Python, JavaScript/TypeScript, Go, Java и PHP на наличие 10 классов небезопасной криптографии — хеширование паролей MD5/SHA1, ГПСЧ для критически важных значений безопасности, жестко закодированные IV, режим ECB, DES/RC4/Blowfish, размер ключа RSA менее 2048 бит, слабые секреты JWT, слишком низкое количество раундов bcrypt, принятие TLS 1.0/1.1 и жестко закодированные криптографические ключи в исходном коде. Нулевые внешние зависимости. Включен триггер сбоя CI.
машинный переводПоказать оригиналСкрыть оригинал«Weak cryptography detector (OWASP A02:2021 — Cryptographic Failures).…»
Weak cryptography detector (OWASP A02:2021 — Cryptographic Failures). Scans Python, JavaScript/TypeScript, Go, Java, and PHP source code for 10 classes of insecure cryptography — MD5/SHA1 password hashing, PRNG for security-sensitive values, hardcoded IVs, ECB mode, DES/RC4/Blowfish, RSA key size under 2048 bits, weak JWT secrets, bcrypt rounds too low, TLS 1.0/1.1 acceptance, and hardcoded cryptographic keys in source. Zero external dependencies. CI fail-gate included.
Детектор слабой криптографии (OWASP A02:2021 — Криптографические сбои).
Как процесс F 26/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: ?:md5|sha1|sha256|sha224, ?:MD5|SHA-?1|SHA-?256, ?:md5|sha1|sha256
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
В файлах лежит чужой ключ или токен. Если он живой, ваш агент начнёт ходить в чужие сервисы от чужого имени; если ключ уже отозван, скрипты скилла просто сломаются. Такой ключ мог попасть в скилл вместе с целым рабочим пространством автора, включая личные данные.
Ключ виден всем, кто скачал скилл, и уже мог быть скопирован ботами, которые сканируют каталоги. Отзовите его сейчас, проверьте счета и логи доступа, а потом перевыпустите.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 1
✓ Критических и высоких находок нет
Средние и низкие: 1
-
средняя Секреты в коде
secret-labelled-tokenSKILL.md:112Токен / ключ рядом с меткой (формат неизвестен — проверьте, что это не живой секрет)Hardcoded AES key: SECRET_KEY = "my-s…234"
Просканировано файлов: 2. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
name-formatname должен быть в kebab-case (строчные буквы, цифры, дефисы) - предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
body-longтело SKILL.md ≈ 7135 токенов (рекомендуется < 5000); вынесите детали в references/ - предупреждение
missing-refссылка на отсутствующий файл: ?:md5|sha1|sha256|sha224 - предупреждение
missing-refссылка на отсутствующий файл: ?:MD5|SHA-?1|SHA-?256 - предупреждение
missing-refссылка на отсутствующий файл: ?:md5|sha1|sha256 - предупреждение
missing-refссылка на отсутствующий файл: ?:md5|sha1 - предупреждение
missing-refссылка на отсутствующий файл: (?:[A-Za-z0-9+/=]{16,}|[0-9a-fA-F]{16,} - предупреждение
missing-refссылка на отсутствующий файл: ?:DES|DESede|RC4|ARCFOUR|Blowfish - предупреждение
missing-refссылка на отсутствующий файл: ?:des|des-ede3|rc4|bf - предупреждение
missing-refссылка на отсутствующий файл: ?:DES|3DES|RC4|BF - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 26/100
- 0Инструменты и файлы. Не хватает 8 файла(ов): ?:md5|sha1|sha256|sha224, ?:MD5|SHA-?1|SHA-?256, ?:md5|sha1|sha256
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 1, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (Crypto Audit) не совпадает с папкой (phy-crypto-audit)
- 70Стоимость исполнения. Тело инструкции 7135 токенов
- 100Шаги. Шагов: 15
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +2Инструкции на одном языке
- +3Длина description 474 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 19 заголовков
- +3Пошаговые инструкции: 15 пунктов
- +4Есть примеры (4 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 45.