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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/arnica/depsguard
Анализ уязвимостейАудит конфигурацииБезопасность облачных средDevSecOpsОбнаружение СекретовБезопасность Цепочки Поставок
GitHubarnica/depsguard

depsguard

Укрепите конфигурации вашего менеджера пакетов против атак на цепочку поставок.

Репозиторий
3821862 месяцев назадПроверено Kitploit
Сайт

Популярное

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

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

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

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

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

depsguard

CI Security Audit crates.io License: MIT MSRV```text _ _ | | ___ _ __ ___ __ _ _ _ __ _ _ __ | | / |/ _ \ '_ \/ __|/ _ | | | |/ | '__/ _ | | (| | __/ |) _ \ (| | || | (| | | | (| | _,_|_| ./|/_, |_,|_,|| _,| || |___/

root@kitploit:~
Защитите свои зависимости от атак на цепочку поставок. **Один статический бинарник, нулевые зависимости от Rust крейтов.**

От **[[arnica](https://arnica.io?utm_source=depsguard&utm_medium=referral&utm_campaign=community)]**

## Содержание

- [Обзор](#overview)
- [Установка](#install)
- [Использование](#usage)
- [Что проверяется](#what-gets-checked)
- [Расположение конфигурационных файлов](#config-file-locations)
- [Срочное исправление безопасности](#urgent-security-fix)
- [Резервное копирование и восстановление](#backups-and-restore)
- [Как это работает](#how-it-works)
- [Устранение неполадок](#troubleshooting)
- [Помощь и обратная связь](#help--feedback)
- [Руководства](#guides)
- [См. также](#see-also)
- [Лицензия](#license)

## Обзор

DepsGuard ищет **npm**, **pnpm**, **yarn**, **bun**, **uv**, **pip**, **poetry** и **aube** на вашей машине, читает их конфигурационные файлы, сравнивает их с рекомендуемыми настройками цепочки поставок и может **интерактивно применять исправления**. Он также сканирует конфигурации **Renovate** и **Dependabot** в ваших репозиториях. Он никогда не запускает установку пакетов; он только редактирует утверждённые вами конфигурационные файлы и создаёт **резервные копии** перед любыми изменениями.

### Ключевые возможности

- Интерактивный TUI: сканирование, просмотр, включение/отключение исправлений, применение
- Подкоманда `scan` для отчёта только для чтения
- Подкоманда `restore` для выбора резервной копии и отката файла
- Кроссплатформенность: Linux, macOS, Windows
- Нет встроенных сторонних Rust крейтов (только stdlib + небольшое количество платформенного FFI для терминала)

### Технический стек

| Область | Подробности |
|---------|-------------|
| Язык | Rust (MSRV **1.74**, см. `Cargo.toml`) |
| CLI / TUI | `src/main.rs`, `src/ui.rs`, `src/term.rs` |
| Логика конфигурации | `src/manager.rs`, `src/fix.rs` |
| Веб-сайт | Статический сайт в `docs/` (отдельно от бинарника) |

## Установка

### Предварительно собранные бинарники

Каждый [релиз на GitHub](https://github.com/arnica/depsguard/releases) включает архивы для:

- Linux: `x86_64` (glibc), `x86_64` (musl), `aarch64` (glibc)
- macOS: Intel и Apple Silicon
- Windows: `x86_64` ZIP, содержащий `depsguard.exe`

Скачайте архив для вашей платформы, распакуйте его и поместите бинарник в ваш `PATH`.

Проверьте целостность с помощью соответствующего файла `.sha256`, расположенного рядом с каждым артефактом на странице релиза.

### Установка по платформе

#### Linux (Debian/Ubuntu через APT)```bash
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://depsguard.com/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/depsguard.gpg
echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/depsguard.gpg] https://depsguard.com/apt stable main" | sudo tee /etc/apt/sources.list.d/depsguard.list >/dev/null
sudo apt update
sudo apt install depsguard

macOS / Linux (Homebrew)```bash

Homebrew

brew install depsguard

root@kitploit:~
DepsGuard находится в [homebrew-core](https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/d/depsguard.rb), поэтому не требуется дополнительный tap.

> **Переход со старого `arnica/depsguard` tap?** Переключитесь на основную формулу:
>
> ```bash
> brew uninstall depsguard
> brew untap arnica/depsguard
> brew update
> brew install depsguard
> ```

#### Windows```powershell
# WinGet
winget install Arnica.DepsGuard

# Scoop
scoop bucket add depsguard https://github.com/arnica/depsguard
scoop install depsguard

Или загрузите вручную через PowerShell:```powershell $zip = "$env:TEMP\depsguard.zip" Invoke-WebRequest -Uri "https://github.com/arnica/depsguard/releases/latest/download/depsguard-x86_64-pc-windows-msvc.zip" -OutFile $zip Expand-Archive -LiteralPath $zip -DestinationPath "$env:TEMP\depsguard" -Force Copy-Item "$env:TEMP\depsguard\depsguard.exe" "$HOME\AppData\Local\Microsoft\WindowsApps\depsguard.exe" -Force depsguard.exe --help

root@kitploit:~
### crates.io```bash
cargo install depsguard

Требуется цепочка инструментов Rust с cargo.

Менеджеры пакетов (когда опубликованы вашим поставщиком)

Если ваша организация распространяет DepsGuard через Homebrew, Scoop или WinGet, используйте их инструкции. Настройка или автоматизация этих каналов (PR для Homebrew core, buckets, PR для WinGet, секреты CI) относится к документации мейнтейнера; см. AGENTS.md в разделе Релиз и распространение.

Магазины приложений / менеджеры пакетов

КаналLinuxmacOSWindowsКоманда установки
APT (пользовательский репозиторий)данетнетsudo apt install depsguard (после настройки репозитория выше)
crates.ioдададаcargo install depsguard
Homebrew (homebrew-core)даданетbrew install depsguard
Scoop (пользовательский bucket)нетнетдаscoop bucket add depsguard https://github.com/arnica/depsguard ; scoop install depsguard
WinGetнетнетдаwinget install Arnica.DepsGuard

Обновление до последней версии

Используйте тот канал, с помощью которого вы устанавливали:

КаналКоманда обновления
Homebrewbrew update && brew upgrade depsguard
APT (пользовательский репозиторий)sudo apt update && sudo apt install --only-upgrade depsguard
crates.iocargo install --force depsguard (переустанавливает последний релиз)
Scoopscoop update && scoop update depsguard
WinGetwinget upgrade Arnica.DepsGuard

Проверить установленную версию можно в любое время с помощью depsguard --version, а последнюю версию можно найти на странице релизов.

Сборка из исходников```bash

git clone https://github.com/arnica/depsguard.git cd depsguard cargo build --release

root@kitploit:~
Бинарный файл — `target/release/depsguard` (`.exe` на Windows). Rust **1.74+** требуется.

## Использование```bash
depsguard              # interactive: scan, choose fixes, apply
depsguard scan         # report only; no writes (exits 1 if action is needed)
depsguard --no-search  # skip recursive file search, check local configs only
depsguard restore      # restore from a previous backup
depsguard --help       # CLI help

Как использовать

  1. Установите – выберите вашу платформу выше.
  2. Запустите depsguard, чтобы открыть интерактивный TUI. Он просканирует вашу систему и покажет таблицу результатов. Нажмите любую клавишу, чтобы перейти к выбору исправлений. Поиск конфигураций уровня репозитория начинается с текущей директории и идёт вниз. Используйте depsguard scan для отчёта только для чтения или depsguard --no-search, чтобы пропустить рекурсивный поиск файлов и проверять только конфиги пользовательского уровня.

    Примечание: некоторые настройки требуют определённой минимальной версии. Если ваша версия слишком старая, вы увидите: ℹ min-release-age – requires npm ≥ 11.10 (have 10.2.0). Обновитесь с помощью npm install -g npm@latest и запустите снова.

  3. Навигация и выбор – используйте ↑ ↓ для перемещения по списку (^u ^d для пролистывания). Нажмите Space, чтобы включить или отключить исправление. Используйте клавиши быстрой фильтрации для массового выбора по файлу: a – всё, n – .npmrc, u – uv.toml и т.д. – нажмите один раз для выбора, ещё раз для отмены, третий раз для очистки фильтра. Нажмите f, чтобы показать только выбранные исправления.
  4. Предпросмотр – нажмите d, чтобы увидеть diff того, что изменится, прежде чем что-либо применять.
  5. Применение – нажмите Enter, чтобы применить выбранные исправления. Перед записью любого файла создаётся резервная копия с меткой времени.
  6. Повторное сканирование – DepsGuard автоматически запускает повторное сканирование после применения, чтобы вы могли убедиться, что всё в порядке.
  7. Восстановление – выполните depsguard restore в любое время, чтобы откатиться из списка резервных копий. Нажмите q или Esc для выхода.

Что проверяется

МенеджерКонфигНастройкаЦелевое значениеЗачем
npm~/.npmrcmin-release-age7 (дней)Задержка свежих релизов (требуется npm >= 11.10)
npm/pnpm~/.npmrcignore-scriptstrueСнижение риска от скриптов установки (npm учитывает это в .npmrc; pnpm >= 11 читает это из pnpm-workspace.yaml / глобального config.yaml, а не из .npmrc)
pnpm~/.npmrcminimum-release-age10080 (минут)Задержка новых версий на 7 дней (pnpm 10.16–10.x только; pnpm >= 11 игнорирует .npmrc; используйте pnpm-workspace.yaml)
pnpmглобальный rc (pnpm <= 10)minimum-release-age10080 (минут)Задержка новых версий на 7 дней (требуется pnpm >= 10.16)
pnpmглобальный rc (pnpm <= 10)block-exotic-subdepstrueБлокировка недоверенных транзитивных зависимостей (требуется pnpm >= 10.26)
pnpmглобальный rc (pnpm <= 10)trust-policyno-downgradeБлокировка понижения уровня проверки происхождения (требуется pnpm >= 10.21)
pnpmглобальный rc (pnpm <= 10)strict-dep-buildstrueОшибка при непроверенных скриптах сборки (требуется pnpm >= 10.3)
pnpmглобальный rc (pnpm <= 10)ignore-scriptstrueБлокировка вредоносных скриптов установки
pnpmглобальный config.yaml (pnpm >= 11)minimumReleaseAge

Расположение конфигурационных файлов

МенеджерLinuxmacOSWindows
npm/pnpm/aube~/.npmrc~/.npmrc%USERPROFILE%\.npmrc
pnpm глобальный (pnpm <= 10)$XDG_CONFIG_HOME/pnpm/rc или ~/.config/pnpm/rc$XDG_CONFIG_HOME/pnpm/rc или ~/Library/Preferences/pnpm/rc%LOCALAPPDATA%\pnpm\config\rc
pnpm глобальный (pnpm >= 11)$XDG_CONFIG_HOME/pnpm/config.yaml или ~/.config/pnpm/config.yaml$XDG_CONFIG_HOME/pnpm/config.yaml или ~/Library/Preferences/pnpm/config.yaml%LOCALAPPDATA%\pnpm\config\config.yaml
yarn~/.yarnrc.yml~/.yarnrc.yml%USERPROFILE%\.yarnrc.yml
pnpmpnpm-workspace.yamlpnpm-workspace.yamlpnpm-workspace.yaml
bun$XDG_CONFIG_HOME/.bunfig.toml или ~/.bunfig.toml$XDG_CONFIG_HOME/.bunfig.toml или ~/.bunfig.toml%USERPROFILE%\.bunfig.toml
uv$XDG_CONFIG_HOME/uv/uv.toml или ~/.config/uv/uv.toml$XDG_CONFIG_HOME/uv/uv.toml или ~/.config/uv/uv.toml%APPDATA%\uv\uv.toml
pip$XDG_CONFIG_HOME/pip/pip.conf или ~/.config/pip/pip.conf~/Library/Application Support/pip/pip.conf или ~/.config/pip/pip.conf (или $XDG_CONFIG_HOME/pip/pip.conf, если задан)%APPDATA%\pip\pip.ini
poetry$XDG_CONFIG_HOME/pypoetry/config.toml или ~/.config/pypoetry/config.toml

Конфигурационные файлы пользовательского уровня читаются из стандартных расположений (включая пути на основе XDG, если инструмент их поддерживает). Конфиги уровня репозитория обнаруживаются путем поиска вниз от текущей директории, пропуская известные большие каталоги (node_modules, .git, target, Library, .cache и другие), чтобы сканирование оставалось быстрым. Ищутся .npmrc, .yarnrc.yml, pnpm-workspace.yaml, конфиги Renovate и Dependabot на уровне репозитория. Настройки pnpm могут находиться в ~/.npmrc (только pnpm <= 10; pnpm >= 11 читает из .npmrc только настройки аутентификации/реестра), глобальном конфигурационном файле pnpm (rc для pnpm <= 10, config.yaml для pnpm >= 11) или pnpm-workspace.yaml; DepsGuard проверяет все три расположения независимо. Для pip, uv и poetry DepsGuard определяет единственный действующий конфиг пользовательского уровня и сообщает только о нём, а не помечает отдельно скрытые файлы. pip и poetry объединяют свои конфигурационные файлы по приоритету (файл с наивысшим приоритетом, задающий время задержки, побеждает, или предпочтительное расположение, если ни один не задаёт); uv читает один пользовательский файл ($XDG_CONFIG_HOME/uv/uv.toml, если XDG_CONFIG_HOME задан, иначе ~/.config/uv/uv.toml), а не объединяет оба. Для bun, если существует несколько конфигурационных файлов пользовательского уровня (например, и путь XDG, и путь в домашней директории), DepsGuard проверяет каждый существующий файл отдельно. aube читает тот же ~/.npmrc, что и npm/pnpm (minimumReleaseAge, в минутах), и также проверяется в обнаруженных файлах .npmrc на уровне репозитория; pip и poetry сканируются в своих конфигах пользовательского уровня (pip.conf / pypoetry/config.toml).

Срочное исправление безопасности

Если пропатченная версия новее, чем ваш период задержки, добавьте узкое исключение, установите исправление, а затем удалите исключение.

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

МенеджерКак обойти задержку
npmnpm install <pkg>@<ver> --min-release-age=0
pnpmДобавьте запись в minimumReleaseAgeExclude в pnpm-workspace.yaml, выполните pnpm add <pkg>@<ver>, затем удалите запись. Исключение по имени пакета работает в pnpm 10.16+; привязка к конкретной версии (<pkg>@<ver>) дополнительно требует pnpm 10.19+. В pnpm нет документированного переопределения CLI для minimumReleaseAge.
yarnДобавьте <pkg> (или шаблон) в npmPreapprovedPackages в .yarnrc.yml или выполните YARN_NPM_MINIMAL_AGE_GATE=0s yarn up <pkg>@<ver> для одной команды. npmPreapprovedPackages освобождает совпадения от всех проверок пакетов Yarn, не только от проверки возраста.
bunДобавьте <pkg> в install.minimumReleaseAgeExcludes в bunfig.toml на уровне репозитория или в пользовательском ~/.bunfig.toml, или выполните bun add <pkg>@<ver> --minimum-release-age 0.
aubeДобавьте <pkg> в minimumReleaseAgeExclude в .npmrc или установите AUBE_MINIMUM_RELEASE_AGE=0 (или npm_config_minimum_release_age=0) для одной установки.
uvДобавьте "<pkg>" = false в exclude-newer-package в uv.toml или pyproject.toml, выполните uv add <pkg>==<ver>, затем удалите запись. exclude-newer-package — это отдельное попакетное переопределение глобального порога exclude-newer. CLI uv принимает --exclude-newer-package PACKAGE=DATE, но не PACKAGE=false.
pipВыполните pip install <pkg>==<ver> --uploaded-prior-to=P0D для одной установки. P0D отключает задержку только для этой команды; в pip нет попакетного исключения в конфиге.
poetryДобавьте <pkg> в solver.min-release-age-exclude (через запятую) в /, выполните , затем удалите запись. освобождает все пакеты из указанного индекса.

Перед обходом задержки:

  1. Проверьте, действительно ли CVE влияет на ваше использование.
  2. Проверьте, доступна ли уже заведомо рабочая старая версия. Возможно, откат будет безопаснее.
  3. Удалите временные исключения после обновления.

Резервные копии и восстановление

Перед изменением файла DepsGuard создаёт резервную копию в ~/.depsguard/backups/.

Выполните depsguard restore, чтобы вывести список резервных копий и восстановить одну из них.

Как это работает```

src/ main.rs CLI args, run loop term.rs Raw mode + input (Unix termios / Windows console FFI) manager.rs Detection, scanning, recommendations fix.rs Read/write .npmrc, TOML, YAML; backup/restore ui.rs Banner, tables, selector

root@kitploit:~
- **Ноль сторонних крейтов**: намеренно для небольшого инструмента, связанного с безопасностью; смотрите `AGENTS.md`, если измените эту политику.
- **Цвета** используют ANSI-последовательности; поддерживаются современные терминалы на Windows (например, Windows Terminal).

## Устранение неполадок

| Симптом | Что попробовать |
|---------|-------------------|
| `depsguard: command not found` | Убедитесь, что каталог установки находится в `PATH`, или используйте полный путь к бинарному файлу. |
| Ошибки разрешений при записи конфигурации | DepsGuard редактирует только файлы в вашем профиле пользователя; запускайте как обычный пользователь, а не с повышенными правами, если только эти файлы не принадлежат администратору. |
| Клавиши не работают в Windows | Используйте **Windows Terminal** или другой терминал с поддержкой VT; устаревший `cmd.exe` может не обрабатывать все клавиши. |
| Отсутствуют рабочие пространства pnpm | Убедитесь, что `pnpm-workspace.yaml` находится в дереве вашего домашнего каталога; очень необычные макеты могут быть не обнаружены. |
| `cargo install` не удается | Установите Rust через [rustup](https://rustup.rs/) и используйте Rust **≥ 1.74**. |

## Помощь и обратная связь

- [Сообщить об ошибке или предложить функцию](https://github.com/arnica/depsguard/issues)
- [Сообщить об уязвимости безопасности](https://github.com/arnica/depsguard/security/advisories/new) (см. [`SECURITY.md`](https://github.com/arnica/depsguard/blob/main/SECURITY.md))
- Рабочий процесс разработки для участников описан в [`AGENTS.md`](https://github.com/arnica/depsguard/blob/main/AGENTS.md).

## Руководства

Углубленные руководства на [depsguard.com](https://depsguard.com) объясняют каждую настройку ужесточения безопасности и атаки на цепочку поставок, от которых они защищают:

- [Как защититься от атак на цепочку поставок npm](https://depsguard.com/guide/) (полное руководство по ужесточению)
- [Остывание зависимостей (минимальный возраст релиза)](https://depsguard.com/cooldown/)
- [Блокировка скриптов установки с помощью ignore-scripts](https://depsguard.com/ignore-scripts/)
- [Блокировка ненадёжных транзитивных зависимостей (block-exotic-subdeps)](https://depsguard.com/block-exotic-subdeps/)
- [Ошибка при непроверенных скриптах сборки (strict-dep-builds)](https://depsguard.com/strict-dep-builds/)
- [Блокировка понижения происхождения (trust-policy)](https://depsguard.com/trust-policy/)
- Отчёты об инцидентах: [axios](https://depsguard.com/axios-npm-attack/) · [Shai-Hulud](https://depsguard.com/shai-hulud/) · [TanStack](https://depsguard.com/tanstack-npm-attack/)

## См. также

- [**Остывание зависимостей** (`cooldowns.dev`)](https://cooldowns.dev/): справочное руководство и вспомогательный скрипт (`cooldowns.sh`), сфокусированные конкретно на **остывании по минимальному возрасту релиза**. Дополняет DepsGuard: охватывает более широкий набор экосистем по оси охлаждения (pip, uv, npm, pnpm, Yarn, Bun, Deno, Cargo), в то время как DepsGuard охватывает npm/pnpm/yarn/bun/aube/uv/pip/poetry плюс Renovate/Dependabot и добавляет другие настройки ужесточения (`ignore-scripts`, `block-exotic-subdeps`, `trust-policy`, `strict-dep-builds`) с интерактивным TUI, предварительным просмотром различий и резервным копированием/восстановлением.

## Лицензия

MIT

---

**Ссылки:** [Репозиторий](https://github.com/arnica/depsguard) · [Сайт документации](https://depsguard.com)
Скачать инструмент
10080 (минут)
Задержка новых версий на 7 дней
pnpmглобальный config.yaml (pnpm >= 11)blockExoticSubdepstrueБлокировка недоверенных транзитивных зависимостей
pnpmглобальный config.yaml (pnpm >= 11)trustPolicyno-downgradeБлокировка понижения уровня проверки происхождения
pnpmглобальный config.yaml (pnpm >= 11)strictDepBuildstrueОшибка при непроверенных скриптах сборки
pnpmглобальный config.yaml (pnpm >= 11)ignoreScriptstrueБлокировка вредоносных скриптов установки
yarn.yarnrc.ymlnpmMinimalAgeGate7dЗадержка новых версий на 7 дней (требуется yarn >= 4.10)
pnpmpnpm-workspace.yamlminimumReleaseAge10080 (минут)Задержка новых версий на 7 дней (требуется pnpm >= 10.16)
pnpmpnpm-workspace.yamlstrictDepBuildstrueОшибка при непроверенных скриптах сборки (требуется pnpm >= 10.3)
pnpmpnpm-workspace.yamltrustPolicyno-downgradeБлокировка понижения уровня проверки происхождения (требуется pnpm >= 10.21)
pnpmpnpm-workspace.yamlblockExoticSubdepstrueБлокировка недоверенных транзитивных зависимостей (требуется pnpm >= 10.26)
pnpmpnpm-workspace.yamlignoreScriptstrueБлокировка вредоносных скриптов установки (требуется pnpm >= 10.16)
bun~/.bunfig.tomlinstall.minimumReleaseAge604800 (секунд)~7 дней задержки (требуется bun >= 1.3)
aube~/.npmrcminimumReleaseAge10080 (минут)Задержка новых версий на 7 дней
uvuv.tomlexclude-newer7 daysЗадержка новых публикаций (требуется uv >= 0.9.17)
pippip.conf ([install])uploaded-prior-toP7D (7 дней)Задержка новых публикаций (требуется pip >= 26.1)
poetryconfig.toml ([solver])min-release-age7 (дней)Задержка новых публикаций (требуется poetry >= 2.4)
renovaterenovate.json и т.д.minimumReleaseAge7 daysЗадержка PR с обновлением зависимостей на 7 дней
dependabot.github/dependabot.ymlcooldown.default-days7Задержка PR с обновлением зависимостей на 7 дней
$XDG_CONFIG_HOME/pypoetry/config.toml (если задан) или ~/Library/Application Support/pypoetry/config.toml
%APPDATA%\pypoetry\config.toml
renovaterenovate.json, .renovaterc, .github/renovate.json и т.д.(то же)(то же)
dependabot.github/dependabot.yml(то же)(то же)
poetry.toml
config.toml
poetry add <pkg>@<ver>
solver.min-release-age-exclude-source
RenovateОбновления безопасности уже обходят minimumReleaseAge. Для обновления версии добавьте запись в packageRules с matchPackageNames: ["<pkg>"] и minimumReleaseAge: null.
DependabotОбновления безопасности уже обходят cooldown. Для обновления версии добавьте <pkg> в cooldown.exclude.