Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

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

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/dhawaldesai/agentic-ioc-scanner
Управление индикаторами компрометации (IOC)Статический анализСканеры уязвимостейАнализ КодаАнализ вредоносных программРазведка угрозБезопасность Цепочки ПоставокСтатьи и ИсследованияОбучение и Образование

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Реагирование на Инциденты
Подобранные Ресурсы
GitHubdhawaldesai/agentic-ioc-scanner

agentic-ioc-scanner

Сканер IOC для агентских инструментов ИИ для кодирования — обнаруживает Mini Shai-Hulud, Gemini CLI RCE, Cursor CVE-2026-26268 и DPRK PromptMink.

Репозиторий
3 месяцев назадЕщё не проверено

agentic-ioc-scanner

Сканер IOC для агентных инструментов ИИ-кодирования — обнаруживает Mini Shai-Hulud, Gemini CLI RCE, Cursor CVE-2026-26268 и DPRK PromptMink.

Набор для обнаружения компрометации агентных помощников ИИ-кодирования (Claude Code, Gemini CLI, Cursor) и зависимостей, которые они привносят в ваши репозитории. Одиннадцать проверок, охватывающих инъекцию хуков, конфигурации RCE, вредоносные зависимости, бэкдоры в git-хуках и подделку CI-рабочих процессов. Список IOC вынесен во внешний файл — добавление новых индикаторов не требует изменений в коде.

Сопутствующая статья в блоге: When the Tool Fights Back.

Что включено

1. Сканер IOC (scanner/ais.sh)

Одиннадцать проверок, каждая с встроенными What: (назначение) и Fix: (устранение), которые выводятся под заголовком раздела, чтобы отчёт был понятен без дополнительных пояснений. Список IOC находится в scanner/iocs.txt (версионируется; можно переопределить с помощью IOC_FILE=/path/to/iocs.txt).

Использование:

root@kitploit:~
bash scanner/ais.sh
# Enter your project folder when prompted

# Custom IOC list:
IOC_FILE=./my-iocs.txt bash scanner/ais.sh

# Custom report path (default: ./agentic-ioc-scan-YYYYMMDD-HHMMSS.log):
REPORT_FILE=/var/log/agentic-scan.log bash scanner/ais.sh

Вывод

  • Результаты выводятся в терминал (с цветами) и в текстовый файл отчёта (agentic-ioc-scan-YYYYMMDD-HHMMSS.log по умолчанию, с удалёнными ANSI-кодами через tee → sed).
  • Теги серьёзности: [CRITICAL] (действовать немедленно), [WARNING] (вероятно, вредоносное — проверить), [REVIEW] (возможно легитимное использование — подтвердить), [OK] (чисто).
  • Результаты по содержимому файлов включают номер строки, где был найден индикатор (формат path:line). Разделы, в которых отображаются номера строк: §1 хук, §2 сигнатура Bun, §3 сигнал обфускации, §5 ключ preinstall, §7 метасимволы Gemini, §8 ссылка на git-hook в AGENTS.md, §9 подозрительное содержимое хука.
  • Результат §11 (червь-remote) дополнительно сообщает о проблемной строке .git/config и соответствующем URL удалённого репозитория, чтобы вы могли сразу перейти к записи, которую нужно удалить.
  • Перенаправление core.hooksPath (§9) сообщает абсолютный путь к .git/config репозитория, чтобы переназначение было проверяемым.

Пример результата

root@kitploit:~
[CRITICAL] Repo points to known worm exfil name
           Repo:   /home/dev/projects/myrepo
           Config: /home/dev/projects/myrepo/.git/config:9
           URL:    https://github.com/dhawaldesai/A-Mini-Shai-Hulud-has-Appeared

[CRITICAL] Malicious hook: /home/dev/projects/myrepo/.claude/settings.json:3
[CRITICAL] Suspicious git post-checkout hook: /home/dev/projects/myrepo/.git/hooks/post-checkout:2

Обновление IOC

Отредактируйте scanner/iocs.txt и измените заголовок # version:. Формат: TYPE|VALUE|NOTES. Поддерживаемые типы:

Не требуется изменений в коде при появлении новых IOC — сканер читает их при запуске и выводит загруженную версию в заголовке.

Зависимости

Обязательные: bash, find, grep, awk, sed, git. Опциональные: jq (предпочтительно для §1 — при отсутствии используется эвристика grep), npm (требуется для проверки глобальных пакетов в §10; раздел пропускается без сообщения, если недоступен).

2. Сканер версий затронутых пакетов (scanner/pkg_version_check.sh)

Дополнение к сканеру IOC. Читает CSV с парами package,version затронутых пакетов (например, канал IOC Mini Shai-Hulud в ~/Downloads/Mini Shai-Hulud - Sheet1.csv — 633 пары npm-пакет/версия) и проверяет, присутствуют ли они в:

  1. Указанном пользователем локальном каталоге проекта — сканирует package.json, package-lock.json, yarn.lock, pnpm-lock.yaml и установленные node_modules/<pkg>/package.json. Манифесты PyPI (requirements.txt, poetry.lock, Pipfile.lock) также проверяются, если CSV содержит имена без области видимости.
  2. Репозиториях GitHub пользователя — через CLI gh: поиск по коду среди типов файлов блокировки, затем проверка точной версии через API SBOM графа зависимостей (/repos/{owner}/{repo}/dependency-graph/sbom).

Модель серьёзности: точное совпадение pkg@version в файле блокировки, node_modules/ или SBOM → [CRITICAL]. Спецификатор диапазона (^1.2.3, ~1.2.3, >=…), который может включать затронутую версию → [REVIEW]. Совпадение имени пакета без подтверждения версии → [REVIEW]. Вывод направляется в терминал и в ./shai-hulud-pkg-scan-YYYYMMDD-HHMMSS.log (с удалёнными ANSI-кодами), с итоговой сводкой по серьёзности в конце.

Использование:

root@kitploit:~
# Interactive — prompts for project directory
bash scanner/pkg_version_check.sh

# Fully scripted (env-var overrides)
PROJECT_DIR=/path/to/project \
  IOC_CSV="$HOME/Downloads/Mini Shai-Hulud - Sheet1.csv" \
  REPORT_FILE=/var/log/pkg-scan.log \
  bash scanner/pkg_version_check.sh --skip-node-modules

Формат CSV: col1 = имя пакета (поддерживаются имена с областью видимости, например @scope/pkg), col2 = точная затронутая версия. Строка заголовка автоматически обнаруживается и пропускается. Переопределите путь с помощью IOC_CSV=….

Зависимости: bash, find, grep, awk, sed. Опциональные: jq (улучшает точность разбора node_modules/<pkg>/package.json), gh (требуется для этапа GitHub — этап пропускается с понятным сообщением, если отсутствует или не аутентифицирован).

Известные ограничения:

  • Поиск кода GitHub не учитывает файлы блокировки >384 КБ и индексирует только ветки по умолчанию — путь SBOM является авторитетной проверкой.
  • Этап GitHub ограничен по скорости (10 запросов/мин при аутентификации); ограничение примерно 5 пакетов за 7 секунд, поэтому полный CSV из 633 строк займёт ~22 минуты при проверке через GitHub. Сначала выполняйте локальные сканирования, этап GitHub отдельно.
  • Разбор файлов блокировки основан на grep, а не на полном синтаксическом анализе — глубокая вложенность или необычное форматирование могут давать ложноотрицательные результаты. Наиболее ценным последующим улучшением был бы разбор на основе jq.
  • API SBOM требует, чтобы граф зависимостей репозитория был включён и проиндексирован; репозитории без этого переходят в [REVIEW].

3. Политика безопасности Claude Code (claude-code-policy/)

Уровень предотвращения для Claude Code, дополняющий описанный выше уровень обнаружения.

  • Блокирует выполнение хуков на уровне проекта (allowManagedHooksOnly)
  • Блокирует запись в .claude/settings.json
  • Блокирует выполнение известных шаблонов дропперов
  • Блокирует команды curl, wget и bun при использовании инструментов агентом

Установка:

root@kitploit:~
# Copy managed settings (cannot be overridden by projects)
cp claude-code-policy/managed-settings.json ~/.claude/managed-settings.json

# Copy the PreToolUse hook
mkdir -p ~/.claude/hooks
cp claude-code-policy/hooks/block_shai_hulud.py ~/.claude/hooks/
chmod +x ~/.claude/hooks/block_shai_hulud.py

План развития / известные пробелы

  • Глобальное сканирование PyPI, эквивалентное §10 (сейчас реализовано только npm ls -g).
  • Серверный хук pre-receive для отклонения push-операций, добавляющих файлы .claude/settings.json, .vscode/tasks.json или .gemini/ от авторов, не входящих в список разрешённых.
  • Опциональная интеграция с GitHub push-protection / Advanced Security.

Ссылки

  • When the Tool Fights Back — сопутствующий анализ
  • Sophos: Атака на цепочку поставок Mini Shai-Hulud на npm-пакеты SAP
  • Mend.io: Shai-Hulud атакует SAP — червь цепочки поставок использует Claude Code
  • Wiz: Цепочка поставок Mini Shai-Hulud на SAP npm
  • Novee Security: Google Gemini CLI RCE — уведомление CVSS 10.0
  • The Hacker News: Google исправляет CVSS 10 Gemini CLI CI/CD RCE (также охватывает Cursor CVE-2026-26268)
  • ReversingLabs: PromptMink — северокорейское вредоносное ПО, внедрённое в кодовую базу через Claude
  • Endor Labs: Mini Shai-Hulud возвращается — 42 вредоносных npm-пакета с поддельными значками Sigstore в атаке на экосистему @antv

Участие в разработке

Принимаются Issues и PR — особенно для новых заявок IOC (добавить в scanner/iocs.txt и обновить заголовок версии), дополнительных платформо-специфичных корней сканирования и шаблонов обнаружения для смежных агентных инструментов (Continue, Cody, Codex CLI, Aider).

Лицензия

MIT

Скачать инструмент
§ПроверкаОхватываемая угроза
1Инъекция хука SessionStart Claude Code в любом settings.json (на основе jq, низкий уровень ложных срабатываний)Персистентность Mini Shai-Hulud
2Сигнатуры дроппера Bun-runtime в setup.mjsЭтап установки Mini Shai-Hulud
3Обфусцированные полезные нагрузки execution.js — размер плюс сигнал обфускации (однострочный, base64, eval(atob(, child_process)Похититель учётных данных Mini Shai-Hulud
4Файлы блокировки вредоносного ПО в $TMPDIR (имена из списка IOC)Сторожевой процесс Mini Shai-Hulud
5Скрипты preinstall в package.json, ссылающиеся на имена файлов дроппераТочка входа для универсального supply-chain червя
6Коммиты, созданные ИИ и затрагивающие .github/workflows/ (фильтр по разрешённым email-адресам)Подделка CI скомпрометированным агентом ИИ
7Конфигурационные файлы .gemini/ с шаблонами shell-метасимволовGemini CLI CVSS 10.0 RCE (до версии v0.39.1)
8Конфигурации Cursor AGENTS.md и .cursor/, ссылающиеся на git-хуки / bare-репозиторииCursor CVE-2026-26268
9Git-хуки post-checkout / post-merge / post-rewrite / pre-commit, содержащие примитивы fetch-and-execute, а также core.hooksPath, перенаправленный за пределы безопасного списка разрешенийПримитив выполнения CVE-2026-26268 + перехват хуков общего типа
10Глобально установленные и локальные пакеты node_modules, сверяемые со списком IOCНабор SAP CAP Mini Shai-Hulud, DPRK PromptMink, будущие вредоносные пакеты
11Git-remotes, совпадающие с известными именами репозиториев эксфильтрации червя (Shai-Hulud, A Mini Shai-Hulud has Appeared)Сигнал подтверждённой компрометации
  • Поддержка worktree: если .git является файлом (содержит gitdir: …), фактический git-каталог определяется до проверки.
  • ТипИспользуется вПример
    FILENAME§5 шаблон preinstallsetup.mjs
    LOCKFILE§4 сканирование файлов блокировкиtmp.987654321.lock
    NPM§10 сканирование глобальных и локальных пакетов@validate-sdk/v2
    PYPI§10 (перекрёстная проверка при добавлении сканера PyPI)lightning
    HOOKSTRING§1 соответствие содержимого хука (сейчас встроено в код)SessionStart
    REPONAME§11 соответствие git-remoteA Mini Shai-Hulud has Appeared
    EMAILSUBSTRINGзарезервировано для будущего сопоставления IOC по автору коммитов—
    CONFIGPATHсписок путей конфигурации агентных инструментов для справки.claude/settings.json