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

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

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

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

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

Категории

Все категории
Loading categories
muad-dib — Обнаружение угроз цепочки поставок npm/PyPI в реальном времени. Анализ поведенческих цепочек, сканирование AST, фиды IOC и комплексный механизм оценки. | Kitploit
Инструменты/GitHubGitHub/dnszlsk/muad-dib
Управление индикаторами компрометации (IOC)Статический анализСканеры уязвимостейДинамический анализ (песочница)Анализ КодаАнализ вредоносных программDevSecOpsОбнаружение СекретовРазведка угрозБезопасность Цепочки ПоставокОбучение и Образование
156371 месяц назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
GitHubdnszlsk/muad-dib

muad-dib

Обнаружение угроз цепочки поставок npm/PyPI в реальном времени. Анализ поведенческих цепочек, сканирование AST, фиды IOC и комплексный механизм оценки.

РепозиторийСайт
Поделиться
<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/10373/84132538a800a2879cff088259fe9e98e975a3fe37f8462fe731d6a06f82314a.png" alt="MUAD'DIB Logo" width="700">
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/muaddib-scanner"><img src="https://img.shields.io/npm/v/muaddib-scanner" alt="npm version"></a>
  <a href="https://github.com/DNSZLSK/muad-dib/actions/workflows/scan.yml"><img src="https://github.com/DNSZLSK/muad-dib/actions/workflows/scan.yml/badge.svg" alt="CI"></a>
  <a href="https://codecov.io/gh/DNSZLSK/muad-dib"><img src="https://codecov.io/gh/DNSZLSK/muad-dib/branch/master/graph/badge.svg" alt="Coverage"></a>
  <a href="https://scorecard.dev/viewer/?uri=github.com/DNSZLSK/muad-dib"><img src="https://api.scorecard.dev/projects/github.com/DNSZLSK/muad-dib/badge" alt="OpenSSF Scorecard"></a>
  <img src="https://img.shields.io/badge/license-AGPL--3.0--only-blue" alt="License">
  <img src="https://img.shields.io/badge/node-%3E=18-brightgreen" alt="Node">
  <img src="https://img.shields.io/badge/IOCs-225,000+-red" alt="IOCs">
</p>

<p align="center">
  <a href="#installation">Установка</a> |
  <a href="#usage">Использование</a> |
  <a href="#features">Возможности</a> |
  <a href="#vs-code">VS Code</a> |
  <a href="#cicd">CI/CD</a>
</p>

<p align="center">
  <a href="https://github.com/dnszlsk/muad-dib/blob/master/docs/README.fr.md">Version francaise</a>
</p>

---

## Зачем нужен MUAD'DIB?

Атаки на цепочки поставок npm и PyPI взрываются. Shai-Hulud скомпрометировал более 25 тыс. репозиториев в 2025 году. Существующие инструменты обнаруживают угрозы, но не помогают реагировать на них.

MUAD'DIB объединяет **<!--stat:scanners-->22<!--/stat:scanners--> параллельных сканеров** (<!--stat:rulesTotal-->278<!--/stat:rulesTotal--> правил обнаружения), **движок деобфускации**, **межмодульный анализ потоков данных**, **составное скорингование** (<!--stat:compound-->21<!--/stat:compound--> составное правило) и песочницу gVisor/Docker для обнаружения известных угроз и подозрительных поведенческих паттернов в пакетах npm и PyPI. Классификатор XGBoost существует в кодовой базе, но **в настоящее время неактивен** (см. [Оценка](#evaluation)).

---

## Позиционирование

MUAD'DIB — это бесплатный, открытый и полностью проверяемый сканер цепочек поставок для npm и PyPI. Он обнаруживает **известные** угрозы (225 000+ IOCs), RCE во время установки, потоки «кража учётных данных — затем эксфильтрация», обфусцированные полезные нагрузки и другие подозрительные поведенческие паттерны — локально, без телеметрии.

Он распространяется под лицензией **AGPL-3.0**; **коммерческая лицензия** доступна для организаций, которым необходимо встроить его в проприетарный продукт или запускать как закрытый хостинг-сервис (см. [Лицензия](#license)).

Он намеренно не пытается делать всё — см. [Область применения](#scope), чтобы узнать, что именно он обнаруживает, а что нет.

---

## Область применения

**Обнаруживает** (npm и PyPI): известные вредоносные пакеты (совпадение по имени + SHA256 IOC), typosquatting, RCE во время установки (жизненный цикл `preinstall`/`postinstall`, `curl | sh`, время импорта Python, `binding.gyp`), чтение учётных данных с последующей сетевой эксфильтрацией (внутри и между файлами), обфусцированные / высокоэнтропийные / заглушечные полезные нагрузки, бинарные дропперы (`chmod +x` + exec/spawn) и маркеры уклонения от анти-анализа.

**Вне области применения**: атаки только через браузер (DOM/`window`, без Node.js API), *содержимое* нативных бинарников / WASM (без бинарного анализа), неизвестные zero-day пакеты (канал IOC реактивен) и экосистемы, отличные от npm/PyPI (RubyGems, Maven, Go). Целенаправленный анти-песочничный фингерпринтинг и многоэтапные удалённые полезные нагрузки — известные риски ложных отрицательных результатов. Полные детали: [Модель угроз](https://github.com/dnszlsk/muad-dib/blob/master/docs/threat-model.md).

**Без телеметрии.** Ваш код и результаты сканирования никогда не покидают вашу машину — MUAD'DIB только *загружает* каналы threat-intel (`muaddib update`) и, для скоринга, читает публичные метаданные реестра npm. Вебхук-оповещения — по желанию.

---

## Установка

### npm (рекомендуется)

```bash
npm install -g muaddib-scanner
```

### Из исходников

```bash
git clone https://github.com/DNSZLSK/muad-dib
cd muad-dib
npm install
npm link
```

---

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

### Базовое сканирование

```bash
muaddib scan .
muaddib scan /path/to/project
```

Сканирует зависимости как npm (package.json, node_modules), так и Python (requirements.txt, setup.py, pyproject.toml).

### Интерактивный режим

```bash
muaddib
```

### Безопасная установка

```bash
muaddib install <package>
muaddib install lodash axios --save-dev
muaddib install suspicious-pkg --force    # Принудительная установка, несмотря на угрозы
```

Сканирует пакеты на угрозы ДО установки. Блокирует известные вредоносные пакеты.

### Оценка риска

Каждое сканирование отображает оценку риска от 0 до 100:

```
[SCORE] 58/100 [***********---------] HIGH
```

### Режим объяснения

```bash
muaddib scan . --explain
```

Показывает ID правила, технику MITRE ATT&CK, ссылки и плейбук реагирования для каждого обнаружения.

### Экспорт

```bash
muaddib scan . --json > results.json     # JSON
muaddib scan . --html report.html        # HTML
muaddib scan . --sarif results.sarif     # SARIF (GitHub Security)
```

### Порог серьёзности

```bash
muaddib scan . --fail-on critical  # Ошибка только при CRITICAL
muaddib scan . --fail-on high      # Ошибка при HIGH и CRITICAL (по умолчанию)
```

### Параноидальный режим

```bash
muaddib scan . --paranoid
```

Сверхстрогое обнаружение с более низким допуском. Обнаруживает любой сетевой доступ, выполнение подпроцессов, динамическую оценку кода и доступ к чувствительным файлам.

### Вебхук-оповещения

```bash
muaddib scan . --webhook "https://discord.com/api/webhooks/..."
```

Строгая фильтрация (v2.1.2): оповещения только при совпадении IOC, подтверждённых песочницей угрозах или эксфильтрации canary-токенов. Приоритетная триаж (v2.10.21): P1 (красный, IOC/песочница/canary), P2 (оранжевый, высокий балл/составные), P3 (жёлтый, остальное).

### Обнаружение поведенческих аномалий (v2.0)

```bash
muaddib scan . --temporal-full     # Все 4 временных признака
muaddib scan . --temporal          # Обнаружение внезапных скриптов жизненного цикла
muaddib scan . --temporal-ast      # Разница AST между версиями
muaddib scan . --temporal-publish  # Аномалия частоты публикаций
muaddib scan . --temporal-maintainer # Обнаружение смены мейнтейнера
```

Обнаруживает атаки на цепочки поставок **до** их появления в базах IOC, анализируя изменения между версиями пакетов. Подробности см. в [Методология оценки](https://github.com/dnszlsk/muad-dib/blob/master/docs/EVALUATION_METHODOLOGY.md).

### Песочница Docker

```bash
muaddib sandbox <package-name>
muaddib sandbox <package-name> --strict
```

Динамический анализ в изолированном Docker-контейнере: strace, tcpdump, разница файловых систем, canary-токены, среда с поддержкой CI и предзагрузка monkey-patching для обнаружения бомб замедленного действия (многократный запуск со смещениями [0ч, 72ч, 7д]).

### Другие команды

```bash
muaddib watch .                    # Мониторинг в реальном времени
muaddib daemon                     # Режим демона (автосканирование npm install)
muaddib update                     # Обновление IOC (быстро, ~5с)
muaddib scrape                     # Полное обновление IOC (~5мин)
muaddib diff HEAD~1                # Сравнение угроз с предыдущим коммитом
muaddib init-hooks                 # Pre-commit хуки (husky/pre-commit/git)
muaddib scan . --breakdown         # Объяснимая декомпозиция оценки
muaddib replay                     # Проверка на основе истины (90/94 TPR@3, v2.11.48)
```

---

## Возможности

### <!--stat:scanners-->22<!--/stat:scanners--> параллельных сканера

| Сканер | Обнаружение |
|---------|-----------|
| AST Parse (acorn) | eval, Function, кража учётных данных, бинарные дропперы, хуки прототипов |
| Pattern Matching | Shell-команды, reverse shell, «мёртвый переключатель» |
| Dataflow Analysis | Чтение учётных данных + сетевая отправка (внутри файла и между файлами) |
| Obfuscation Detection | Паттерны обфускации JS (пропуск .min.js) |
| Deobfuscation Pre-processing | Конкатенация строк, charcode, base64, hex-массив, распространение констант |
| Inter-module Dataflow | Распространение заражения между файлами (цепочки из 3 переходов, методы классов) |
| Intent Coherence | Сопряжение источник-приёмник внутри файла (учётные данные + eval/сеть) |
| Typosquatting | npm + PyPI (расстояние Левенштейна) |
| Python Scanner | requirements.txt, setup.py, pyproject.toml, 14K+ PyPI IOCs |
| Shannon Entropy | Строки с высокой энтропией (мин. 5.5 бит + 50 символов) |
| AI Config Scanner | Инъекции в .cursorrules, CLAUDE.md, copilot-instructions.md |
| Package/Dependencies | Скрипты жизненного цикла, сопоставление IOC (225K+ пакетов) |
| GitHub Actions | Обнаружение бэкдора Shai-Hulud |
| Hash Scanner | Известные вредоносные хэши файлов |
| IOC Strings (intel-triage P1.1) | Сопоставление строк в стиле YARA (Axios 2026, TeamPCP, GlassWorm, CanisterSprawl) |
| Anti-Forensic AST (intel-triage P1.2) | Составной XOR-цикл + самоудаление + запись-приманка (csec autodelete) |
| Stub Package (intel-triage P1.3) | Крошечный main-файл + внешний URL зависимости + хук жизненного цикла (цепочка ltidi) |
| Monorepo Scanner | Обнаружение Lerna/pnpm-workspace/turbo (аудит Sprint 1, исправление MR-C2) |
| Trusted-Dep-Diff (по желанию) | Разница с доверенными tarball-зависимостями из реестра (v2.10.x) |
| Python Source (PYSRC) | Паттерны RCE во время импорта/установки в `__init__.py` / `setup.py` (v2.11.41 — закрывает пробел TrapDoor PyPI) |
| Python AST (PYAST) | Tree-sitter-Python AST с детекторами с учётом заражения (v2.11.42+) |
| Anti-Scanner Injection (ASI) | Текст prompt-инъекции в комментариях/строках, который принуждает LLM-ревьюера кода к чистому вердикту или к пропуску обфусцированной полезной нагрузки (ASI-001..004, кампания Hades 2026-06) |

### <!--stat:rulesTotal-->278<!--/stat:rulesTotal--> правил обнаружения

Все правила (<!--stat:rulesCore-->273<!--/stat:rulesCore--> RULES + <!--stat:rulesParanoid-->5<!--/stat:rulesParanoid--> PARANOID) сопоставлены с техниками MITRE ATT&CK. Полный справочник правил см. в [SECURITY.md](https://github.com/dnszlsk/muad-dib/blob/master/SECURITY.md#detection-rules).

### Обнаруженные кампании

| Кампания | Статус |
|----------|--------|
| GlassWorm (2026, 433+ пакетов) | Обнаружена |
| Shai-Hulud v1/v2/v3 (2025) | Обнаружена |
| event-stream (2018) | Обнаружена |
| eslint-scope (2018) | Обнаружена |
| Protestware (node-ipc, colors, faker) | Обнаружена |
| Typosquats (crossenv, mongose, babelcli) | Обнаружены |

---

## VS Code

Расширение VS Code автоматически сканирует ваши npm-проекты.

```bash
code --install-extension dnszlsk.muaddib-vscode
```

- `MUAD'DIB: Scan Project` — Сканировать весь проект
- `MUAD'DIB: Scan Current File` — Сканировать текущий файл
- Настройки: `muaddib.autoScan`, `muaddib.webhookUrl`, `muaddib.failLevel`

Полную документацию см. в [vscode-extension/README.md](https://github.com/dnszlsk/muad-dib/blob/master/vscode-extension/README.md).

---

## CI/CD

### GitHub Actions (Marketplace)

Минимальный вариант (остановить сборку при угрозах HIGH+, одно сканирование):

```yaml
name: Security Scan

on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: DNSZLSK/[email protected]   # закрепить за выпущенным тегом
        with:
          fail-on: 'high'
```

С загрузкой SARIF на вкладку **Security** (требуется `security-events: write`; выполняется второй проход для генерации SARIF):

```yaml
jobs:
  scan:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      security-events: write
    steps:
      - uses: actions/checkout@v4
      - uses: DNSZLSK/[email protected]
        with:
          path: '.'
          fail-on: 'high'
          sarif: 'results.sarif'
```

**Входные параметры**

| Входной параметр | Описание | По умолчанию |
|-------|-------------|---------|
| `path` | Путь для сканирования | `.` |
| `fail-on` | Минимальная серьёзность для остановки (`critical`/`high`/`medium`/`low`/`none`) | `high` |
| `sarif` | Путь к выходному файлу SARIF — укажите, чтобы также загрузить на вкладку Security | |
| `paranoid` | Сверхстрогое обнаружение (выше FPR) | `false` |
| `version` | Версия npm-пакета `muaddib-scanner` для установки | `latest` |

**Выходные параметры** (используйте на последующих шагах через `steps.<id>.outputs.*`)

| Выходной параметр | Описание |
|--------|-------------|
| `risk-score` | Оценка риска 0–100 |
| `risk-level` | `SAFE` / `LOW` / `MEDIUM` / `HIGH` / `CRITICAL` |
| `threats-count` | Общее количество обнаруженных угроз |
| `critical-count` / `high-count` | Угрозы по серьёзности |
| `exit-code` | `0` = прошёл порог `fail-on`, иначе ненулевой |
| `sarif-file` | Путь к файлу SARIF (пусто, если `sarif` не задан) |

### Pre-commit хуки

```bash
muaddib init-hooks                        # Автоопределение (husky/pre-commit/git)
muaddib init-hooks --type husky           # Принудительно husky
muaddib init-hooks --mode diff            # Блокировать только НОВЫЕ угрозы
```

С фреймворком pre-commit:
```yaml
repos:
  - repo: https://github.com/DNSZLSK/muad-dib
    rev: v2.11.139
    hooks:
      - id: muaddib-scan
```

---

## Оценка

Последнее измерение **v2.11.48** (2026-05-26), **только правила** (ML-классификатор неактивен — см. ниже). Истина: 94 реальные атаки в области применения + 200 случайных npm + 124 PyPI + 107 состязательных/holdout.

| Метрика | Результат |
|--------|--------|
| Доля обнаружения (TPR@3) | **95.74%** (90/94) |
| Доля оповещений (TPR@20) | **88.30%** (83/94) |
| FPR — курируемый npm (548) | **1.10%** (6/545) |
| FPR — случайный npm (200) | **2.50%** (5/200) |
| FPR — PyPI (132) | **9.68%** (12/124) |
| ADR — состязательные + holdout | **96.26%** (103/107) |
| Wild TPR (Datadog 17K) | **92.8%** (13,538/14,587) |

**ML-классификатор: неактивен.** Модель XGBoost находится в `src/ml/`, но никогда не подключается к `muaddib scan` и работает в режиме LOG-ONLY в мониторе с 2026-04-08 (обученная модель схлопнулась, ожидается переобучение). Все приведённые выше цифры — только правила.

Полный протокол, история по трекам, оговорка PyPI cap-35, операционное (в номинации GHSA) покрытие и методология переобучения ML: [Методология оценки](https://github.com/dnszlsk/muad-dib/blob/master/docs/EVALUATION_METHODOLOGY.md).

---

## Вклад в проект

### Добавление IOC

Редактируйте YAML-файлы в `iocs/`:

```yaml
- id: NEW-MALWARE-001
  name: "malicious-package"
  version: "*"
  severity: critical
  confidence: high
  source: community
  description: "Threat description"
  references:
    - https://example.com/article
  mitre: T1195.002
```

### Разработка

```bash
git clone https://github.com/DNSZLSK/muad-dib
cd muad-dib
npm install
npm test
```

### Тестирование

- **<!--stat:tests-->4545<!--/stat:tests--> тестов** в <!--stat:testFiles-->155<!--/stat:testFiles--> модульных тестовых файлах
- **56 фаззинг-тестов** — Некорректные входные данные, ReDoS, unicode, бинарные данные
- **Бенчмарк Datadog 17K** — 14 587 подтверждённых образцов вредоносного ПО (в области применения)
- **Проверка на основе истины** — 96 реальных атак (95.74% TPR@3, 88.30% TPR@20 — полное измерение v2.11.48 на 94 в области применения)
- **Проверка ложных срабатываний** (измерение v2.11.48) — 1.10% FPR правил (6/545 просканировано), 2.50% на 200 случайных, 9.68% на 124/132 PyPI (первое честное измерение после исправления загрузки Track-D). ML-классификатор в настоящее время неактивен — см. Метрики оценки → ML-классификатор.

---

## Сообщество

- Discord: https://discord.gg/y8zxSmue

---

## Документация

- [Блог](https://dnszlsk.github.io/muad-dib/blog/) — Технические статьи об обнаружении угроз цепочкам поставок
- [Carnet de bord](https://github.com/dnszlsk/muad-dib/blob/master/docs/CARNET_DE_BORD_MUADDIB.md) — Журнал разработки (на французском)
- [Индекс документации](https://github.com/dnszlsk/muad-dib/blob/master/docs/INDEX.md) — Вся документация в одном месте
- [Методология оценки](https://github.com/dnszlsk/muad-dib/blob/master/docs/EVALUATION_METHODOLOGY.md) — Экспериментальный протокол, оценки holdout
- [Модель угроз](https://github.com/dnszlsk/muad-dib/blob/master/docs/threat-model.md) — Что MUAD'DIB обнаруживает и не обнаруживает
- [Политика безопасности](https://github.com/dnszlsk/muad-dib/blob/master/SECURITY.md) — Справочник правил обнаружения (<!--stat:rulesTotal-->278<!--/stat:rulesTotal--> правил)
- [Аудит безопасности](https://github.com/dnszlsk/muad-dib/blob/master/docs/SECURITY_AUDIT.md) — Отчёт о проверке обхода
- [Анализ FP](https://github.com/dnszlsk/muad-dib/blob/master/docs/EVALUATION.md) — Исторический анализ ложных срабатываний

---

## Лицензия

MUAD'DIB распространяется под лицензией **GNU Affero General Public License v3.0 only** (`AGPL-3.0-only`) — см. [LICENSE](https://github.com/dnszlsk/muad-dib/blob/master/LICENSE) и [NOTICE](https://github.com/dnszlsk/muad-dib/blob/master/NOTICE).

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

**Коммерческое лицензирование:** для встраивания MUAD'DIB в проприетарный / закрытый продукт или предоставления его как хостинг-сервиса без обязательств AGPL по раскрытию исходного кода доступна отдельная коммерческая лицензия. Откройте issue или свяжитесь с автором ([DNSZLSK](https://github.com/DNSZLSK)).

Copyright (C) 2026 DNSZLSK.

---

<p align="center">
  <strong>Пряность должна течь. Черви должны умереть.</strong>
</p>
Скачать инструмент