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

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

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

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

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

Категории

Все категории
Loading categories
shai-scan — CLI-сканер без зависимостей для выявления компрометаций цепочки поставок npm/PyPI. Обнаруживает скомпрометированные пакеты в lock-файлах и системные индикаторы компрометации (IOC) от таких атак, как Mini Shai-Hulud (CVE-2026-45321). | Kitploit
Инструменты/GitHubGitHub/digi4care/shai-scan
Управление индикаторами компрометации (IOC)Статический анализСканеры уязвимостейАнализ КодаDevSecOpsОбнаружение СекретовРазведка угрозБезопасность Цепочки ПоставокРеагирование на Инциденты
GitHubdigi4care/shai-scan

shai-scan

CLI-сканер без зависимостей для выявления компрометаций цепочки поставок npm/PyPI. Обнаруживает скомпрометированные пакеты в lock-файлах и системные индикаторы компрометации (IOC) от таких атак, как Mini Shai-Hulud (CVE-2026-45321).

73 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Репозиторий
Поделиться

shai-scan

CLI-сканер без зависимостей для выявления компрометаций цепочек поставок npm и PyPI.

npm version License: MIT Node.js

Почему?

11 мая 2026 года самовоспроизводящийся червь цепочки поставок под названием Mini Shai-Hulud (CVE-2026-45321, GHSA-g7cv-rxg3-hmpx) скомпрометировал экосистему npm. Приписываемый группе TeamPCP (также известной как DeadCatx3, PCPcat, ShellForce, CipherForce), вредонос похищал OIDC-токены GitHub Actions для публикации вредоносных пакетов с действительной провенанс-информацией SLSA Build Level 3. Он похищал учётные данные из CI/CD-пайплайнов, облачных провайдеров и криптовалютных кошельков, а также устанавливал хуки персистентности в Claude Code и VS Code. Встроенный предохранительный механизм (dead-man switch) угрожал стереть домашний каталог пользователя, если npm-токены будут отозваны.

Затронутые пакеты включали TanStack router и start-пакеты, SDK Mistral AI, клиент OpenSearch, инструменты UiPath и десятки других. Поскольку атаки на цепочки поставок распространяются быстро, организациям нужен лёгкий и надёжный сканер, который можно запускать где угодно, не добавляя новые зависимости к собственной поверхности атаки.

Возможности

  • Сканирование lock-файлов — обнаруживает скомпрометированные npm- и PyPI-пакеты в package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lock, bun.lockb, poetry.lock, Pipfile.lock и requirements.txt
  • Проверка системных IOC — сканирует запущенные процессы, артефакты файловой системы, сетевые подключения и известные пути персистентности на предмет индикаторов компрометации
  • Ноль зависимостей во время выполнения — использует только встроенные модули Node.js/Bun (fs, path, child_process, os). Сканер не увеличивает ваш риск в цепочке поставок
  • Несколько форматов вывода — читаемый текст, машиночитаемый JSON и SARIF для GitHub Code Scanning

Установка

Установка не требуется. Запускайте напрямую с помощью любого предпочитаемого пакетного раннера:

root@kitploit:~
# npx
npx @digi4care/shai-scan

# bunx
bunx @digi4care/shai-scan

# pnpm dlx
pnpm dlx @digi4care/shai-scan

Глобальная установка (необязательно):

root@kitploit:~
npm install -g @digi4care/shai-scan
# or
pnpm add -g @digi4care/shai-scan

Из исходного кода:

root@kitploit:~
git clone https://github.com/digi4care/shai-scan.git
cd shai-scan
pnpm install
bun run src/cli.ts --help   # Bun (рекомендуется для разработки)
# или соберите и запустите с Node.js:
pnpm run build && node dist/cli.js --help

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

Сканирование текущего проекта

root@kitploit:~
npx @digi4care/shai-scan

Сканирование конкретного пути

root@kitploit:~
npx @digi4care/shai-scan ~/projects/my-app

JSON-вывод для автоматизации

root@kitploit:~
npx @digi4care/shai-scan --json .

SARIF-вывод для GitHub Code Scanning

root@kitploit:~
npx @digi4care/shai-scan --sarif --sarif-file results.sarif .

Коды выхода для CI/CD

root@kitploit:~
#!/bin/bash
npx @digi4care/shai-scan --severity high . || {
  code=$?
  if [ "$code" -eq 1 ]; then
    echo "Supply chain findings detected"
    exit 1
  elif [ "$code" -eq 2 ]; then
    echo "Scanner error"
    exit 2
  fi
}

Интеграция с CI/CD

GitHub Actions (текстовый вывод)

root@kitploit:~
name: Supply Chain Scan
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: pnpm install --frozen-lockfile
      - run: npx @digi4care/shai-scan --severity high .

GitHub Actions (загрузка SARIF)

root@kitploit:~
name: Supply Chain Scan SARIF
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: '0 6 * * 1'

jobs:
  scan:
    runs-on: ubuntu-latest
    permissions:
      security-events: write
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: pnpm install --frozen-lockfile
      - run: npx @digi4care/shai-scan --sarif --sarif-file results.sarif .
      - uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

Форматы вывода

FormatFlagDescription
Text(default)

Пример фрагмента JSON:

root@kitploit:~
[
  {
    "package": "@tanstack/react-router",
    "version": "1.169.5",
    "ecosystem": "npm",
    "severity": "critical",
    "campaign": "mini-shai-hulud-wave4",
    "cve": "CVE-2026-45321",
    "reference": "https://github.com/TanStack/router/security/advisories/GHSA-g7cv-rxg3-hmpx"
  }
]

Коды выхода

CodeMeaning
0No compromised packages or IOCs detected
1One or more findings detected
2Runtime error (invalid path, unreadable lockfile, etc.)

Добавление новых кампаний

Когда обнаруживается новая атака на цепочку поставок, обновите src/db.ts:

  1. Добавьте новый массив CompromisedVersion[] с затронутыми пакетами и версиями
  2. Добавьте новый объект Campaign в массив CAMPAIGNS, включая идентификаторы CVE/GHSA, уровень серьёзности, описание, ссылки и IOC-индикаторы
  3. Функция buildLookup() автоматически пересоберёт карту поиска при следующем запуске

При использовании Bun шаг пересборки не требуется. Изменения в src/db.ts вступают в силу немедленно при запуске bun run src/cli.ts. Для npm-пакета выполните pnpm run build после редактирования.

Соображения безопасности

  • Ноль зависимостей во время выполнения: сканер использует только встроенные модули Node.js/Bun. Он не загружает и не выполняет сторонний код во время работы, что исключает риск того, что сам сканер станет вектором компрометации.

  • pnpm в качестве пакетного менеджера: pnpm использует строгие lock-файлы, по умолчанию не выполняет lifecycle-скрипты и поддерживает контентно-адресуемое хранилище. Эти свойства уменьшают поверхность атаки по сравнению с другими пакетными менеджерами.

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

    root@kitploit:~
    ignore-scripts=true
    engine-strict=true
    
  • Без сетевых запросов: shai-scan не отправляет данные наружу, не загружает сигнатуры и не требует API-ключ. Все данные о кампаниях поставляются вместе с пакетом.

Затронутые пакеты (текущая кампания)

Следующие пакеты и версии известны как скомпрометированные в CVE-2026-45321 (Mini Shai-Hulud Wave 4). Это репрезентативная выборка; полный список поддерживается в src/db.ts.

Лицензия

MIT. Подробнее см. в LICENSE.

Отказ от ответственности

shai-scan — это вспомогательное средство обнаружения, а не замена комплексным аудитам безопасности, ревизии зависимостей или платформам анализа угроз. Он выявляет известные скомпрометированные версии на основе поставляемой базы данных; новые или zero-day атаки на цепочки поставок могут быть не обнаружены до добавления соответствующей кампании. Всегда применяйте эшелонированную защиту: аудируйте зависимости, фиксируйте версии, проверяйте провенанс и контролируйте CI/CD-пайплайны.

Скачать инструмент
  • Нативно для CI/CD — коды выхода, предназначенные для автоматизации (0 — чисто, 1 — обнаружены находки, 2 — ошибка)
  • Не зависит от пути — принимает любую директорию; по умолчанию используется текущая рабочая директория
  • База данных на основе кампаний — новые волны атак добавляются как отдельные кампании в src/db.ts; обновите файл и запустите снова
  • Human-readable table of findings with severity, package name, version, and campaign details
    JSON--jsonStructured JSON array of findings, suitable for ingestion into SIEMs or custom dashboards
    SARIF--sarifOASIS SARIF 2.1.0 format for upload to GitHub Code Scanning, GitLab Secure, or other SARIF consumers
    PackageEcosystemCompromised Versions
    @tanstack/react-routernpm1.169.5, 1.169.8
    @tanstack/vue-routernpm1.169.5, 1.169.8
    @tanstack/solid-routernpm1.169.5, 1.169.8
    @tanstack/router-corenpm1.169.5, 1.169.8
    @tanstack/react-startnpm1.167.68, 1.167.71
    @mistralai/mistralainpm2.2.2, 2.2.3, 2.2.4
    @mistralai/mistralai-azurenpm1.7.2, 1.7.3
    mistralaipypi2.4.6
    @opensearch-project/opensearchnpm3.5.3, 3.6.2, 3.7.0, 3.8.0
    @uipath/robotnpm1.3.4
    @squawk/airwaysnpm0.4.2, 0.4.3, 0.4.5
    @draftauth/corenpm0.13.1, 0.13.2
    @tallyui/corenpm0.2.1, 0.2.2, 0.2.3
    safe-actionnpm0.8.3, 0.8.4
    cmux-agent-mcpnpm0.1.3 - 0.1.8
    nextmove-mcpnpm0.1.3, 0.1.4, 0.1.5, 0.1.7
    ts-dnanpm3.0.1, 3.0.2, 3.0.4
    cross-stitchnpm1.1.3, 1.1.4, 1.1.6
    git-git-gitnpm1.0.8 - 1.0.12
    git-branch-selectornpm1.3.3 - 1.3.7
    agentwork-clinpm0.1.4, 0.1.5
    wot-apinpm0.8.1, 0.8.2, 0.8.4
    ml-toolkit-tsnpm1.0.4, 1.0.5
    @beproduct/nestjs-authnpm0.1.2 - 0.1.19
    @dirigible-ai/sdknpm0.6.2, 0.6.3
    @taskflow-corp/clinpm0.1.24 - 0.1.29
    @tolka/clinpm1.0.2, 1.0.3, 1.0.4, 1.0.6
    @supersurkhet/clinpm0.0.2 - 0.0.7
    guardrails-aipypi0.10.1