
Вредоносные пакеты и аналитика цепочки поставок
Возможности • Установка • Использование • Запуск depx • JSON • Присоединиться к Discord
depx — это быстрый пассивный CLI для аналитики цепочек поставок. Он сообщает, является ли пакет известно вредоносным (скомпрометированные публикации, похитители учётных данных, бэкдоры в скриптах установки), сверяясь с данными OpenSSF Malicious Packages (MAL-*, формат OSV) и живой лентой аналитики, формируемой на основе X (Grok API) и обновляемой каждый час.
Он отвечает на четыре вопроса за считанные секунды:
depx feed (или --list для одной строки на результат).--require-clean, экспорт SARIF и версионируемая JSON-обёртка.ecosystem:name, простого имени или переданного через конвейер списка.--exclude-pkg для исключения заведомо безопасных пакетов из результатов аудита.curl -sfL https://raw.githubusercontent.com/projectdiscovery/depx/main/scripts/install.sh | sh
Загружает последний релиз для вашей ОС/архитектуры (или собирает через go install как запасной вариант). Скрипт проверяет бинарный файл и при необходимости обновляет переменную PATH вашей оболочки.
Из исходного кода (требуется Go 1.25+):
git clone https://github.com/projectdiscovery/depx.git
cd depx
make build
./bin/depx --help
Или установите напрямую через Go:
go install github.com/projectdiscovery/depx/cmd/depx@latest
Готовые бинарные файлы также доступны на странице GitHub releases.
depx --help
Основные команды и флаги:
Usage:
depx [flags]
depx [command]
Available Commands:
feed Show recently disclosed malicious packages (cards)
audit Audit dependencies for malicious packages (default: $HOME)
github Audit GitHub repositories via dependency-graph SBOM
search Search known malicious packages by name (local index)
id Lookup advisory by ID
version Show version and check for updates
update Update depx to the latest version
Global flags:
-j, --json Machine-readable JSON output
-V, --version Show version and exit
-e, --ecosystem string Restrict lookup to one ecosystem (npm, PyPI, Go, ...)
-v, --verbose Extra audit/github detail
--silent Suppress banner and version info
--no-color Disable ANSI colors
--config string Config file path
--update Update depx to the latest version
--disable-update-check Disable the update check
Default command (intelligence dashboard):
--since string Feed time window (default "3d")
-n, --limit int Dashboard/feed entry cap on default command
depx feed:
--since string Feed time window (default "3d")
-n, --limit int Result limit
--list One header line per result
depx search:
-n, --limit int Max results shown (default 25)
--list One header line per result
depx audit / depx github:
--require-clean Exit 1 if any malicious package is found
--exclude-pkg string File of ecosystem:package lines to exclude from findings
-o, --output string Write export file(s) to this path or basename
--output-format string Comma-separated export formats: json, csv, txt (default: json)
--sarif-export string Write SARIF 2.1.0 report to this path
--sbom-export string Write audited dependency SBOM (audit only)
--sbom-format string SBOM format: cyclonedx (default) or spdx
depx github:
-n, --limit int Max repos for org/user targets (default 100 with token, 10 without)
depx id:
--raw Raw OSV record only
depx # dashboard for last 3 days
depx --since 7d # widen the time window
depx -e npm # npm-only dashboard
depx feed # card feed (no dashboard)
depx feed --list # one line per advisory
depx -j # JSON for dashboards / pipelines
Сканирует lock-файлы и SBOM по локальному индексу вредоносных пакетов — мгновенно после первого запуска. Если путь не указан, depx сканирует $HOME в поисках проектов и глобальных установок.
depx audit # sweep $HOME for projects + global installs
depx audit ./my-app # a single project tree
depx audit ./bom.cdx.json # a CycloneDX / SPDX file
Поддерживает lock-файлы npm, PyPI, Go, Cargo, RubyGems, Maven/Gradle, а также SBOM в форматах CycloneDX / SPDX.
Подавление ложных срабатываний. Если пакет помечен как вредоносный, но вы проверили, что он безопасен, передайте в --exclude-pkg (для audit или github) файл с записями ecosystem:package, разделёнными переводами строк, чтобы исключить их из результатов:
depx audit ./my-app --exclude-pkg .depxignore
depx github google --exclude-pkg .depxignore
# .depxignore: packages to exclude from findings
npm:internal-tool
PyPI:requests
*:shared-lib # '*' matches any ecosystem
Использует SBOM-экспорты графа зависимостей GitHub. Установите GITHUB_TOKEN для доступа к частным репозиториям и обнаружения организаций.
depx github projectdiscovery/depx
depx github google
depx github
Неаутентифицированный доступ к GitHub ограничен ~60 запросами в час, поэтому без токена сканирование организаций/пользователей по умолчанию охватывает 10 репозиториев (против 100 с токеном). Чтобы сканировать больше, задайте GITHUB_TOKEN, GH_TOKEN или DEPX_GITHUB_TOKEN (или явно увеличьте лимит с помощью -n).
depx npm:lodash
depx id MAL-2026-4343
depx search redhat
--require-clean возвращает ненулевой код выхода сразу после обнаружения вредоносного пакета.
depx audit . --require-clean # fail the build if anything is malicious
depx github google --require-clean -j
| Код выхода | Значение |
|---|---|
0 | Чисто / успешно |
Каждый ответ с флагом -j использует стабильную версионируемую обёртку, поэтому её можно безопасно использовать как основу.
{
"schema_version": "1",
"command": "check",
"depx_version": "v0.1.0",
"data": {
"total": 1,
"results": [
{
"ref": "npm:evil-pkg",
"purl": "pkg:npm/evil-pkg",
"verdict": "malicious",
"confidence": "high",
"ids": ["MAL-2026-4343"],
"package_ecosystem": "npm",
"package_name": "evil-pkg",
"registry_url": "https://www.npmjs.com/package/evil-pkg",
"advisories": [
{
"id": "MAL-2026-4343",
"url": "https://github.com/ossf/malicious-packages/blob/main/osv/npm/MAL-2026-4343.json",
"summary": "Malicious code in evil-pkg (npm)",
"modified_at": "2026-06-01T12:00:00Z",
"published_at": "2026-06-01T10:00:00Z"
}
]
}
]
}
}
Для безопасного пакета возвращается "verdict": "clean". Проверки по простому имени могут включать checked_ecosystems, matched_ecosystems и found_ecosystems при поиске по всем экосистемам.
Схемы находятся в schema/v1/.
depx распространяется на условиях лицензии MIT.
Присоединяйтесь к нашему Discord • создано с ❤️ командой ProjectDiscovery
1 | Задан --require-clean, и найдены вредоносные пакеты |
2 | Ошибка использования |
3 | Недоступен вышестоящий источник |