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

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

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

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

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

Категории

Все категории
Loading categories
foxguard — Быстрый универсальный сканер безопасности кода, написанный на Rust. Всё включено: поддержка 14 языков, TUI для триажа, секреты, постквантовые аудиты, сканирование с учётом изменений и многое другое 𓃥 | Kitploit
Инструменты/GitHubGitHub/0sec-labs/foxguard
Статический анализСканеры уязвимостейИнструменты шифрования/дешифрованияАнализ КодаАудит конфигурацииКриптографияDevSecOpsОбнаружение СекретовБезопасность Цепочки ПоставокМашинное ОбучениеНеправильная Конфигурация
28015453 дней назадПроверено Kitploit
GitHub0sec-labs/foxguard

foxguard

Быстрый универсальный сканер безопасности кода, написанный на Rust. Всё включено: поддержка 14 языков, TUI для триажа, секреты, постквантовые аудиты, сканирование с учётом изменений и многое другое 𓃥

РепозиторийСайт

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
<p align="center">
  <img src="https://raw.githubusercontent.com/0sec-labs/foxguard/main/www/public/foxguard-logo.png" width="128" alt="foxguard" />
</p>

<h1 align="center">foxguard</h1>

<p align="center">
  <strong>Быстрое локальное сканирование безопасности кода, секретов, зависимостей и криптографических рисков.</strong>
  <br />
  <sub>Интегрирован в <a href="https://github.com/0sec-labs/0sec">0sec</a>, открытый инструмент кибербезопасности.</sub>
</p>

<p align="center">
  <a href="https://github.com/0sec-labs/foxguard/actions/workflows/ci.yml"><img src="https://github.com/0sec-labs/foxguard/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
  <a href="https://github.com/0sec-labs/foxguard"><img src="https://img.shields.io/badge/foxguard-clean-3fb950" alt="foxguard: clean" /></a>
  <a href="https://crates.io/crates/foxguard"><img src="https://img.shields.io/crates/v/foxguard?color=d97706&amp;label=crates.io" alt="crates.io" /></a>
  <a href="https://www.npmjs.com/package/foxguard"><img src="https://img.shields.io/npm/v/foxguard?color=d97706&amp;label=npm" alt="npm" /></a>
  <a href="https://pypi.org/project/foxguard/"><img src="https://img.shields.io/pypi/v/foxguard?color=d97706&amp;label=PyPI" alt="PyPI" /></a>
  <a href="https://github.com/apps/foxguard-app/installations/new"><img src="https://img.shields.io/badge/GitHub_App-Install-2ea44f?logo=github" alt="Install GitHub App" /></a>
</p>

```sh
npx foxguard .
```

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/13909/2ce579a58299a47cd3e965f13b97bf1c5dcaf020496d4a4eb2141d414ff7bd0c.gif" alt="foxguard scan demo" width="640" />
</p>

## Зачем

- <img height="14" src="https://raw.githubusercontent.com/0sec-labs/.github/main/profile/assets/icons/checklist.png" alt="">&nbsp; Более 200 встроенных правил для 12 языков программирования, а также проверки конфигураций и манифестов
- <img height="14" src="https://raw.githubusercontent.com/0sec-labs/.github/main/profile/assets/icons/git-branch.png" alt="">&nbsp; Отслеживание распространения данных (taint tracking) для 14 языков с межфайловым анализом для Python, JavaScript, Go, Java, Ruby, PHP, C# и Kotlin
- <img height="14" src="https://raw.githubusercontent.com/0sec-labs/.github/main/profile/assets/icons/zap.png" alt="">&nbsp; Быстрые локальные и CI-сканирования с режимом diff для ответа на вопрос «что добавила эта ветка?»
- <img height="14" src="https://raw.githubusercontent.com/0sec-labs/.github/main/profile/assets/icons/key.png" alt="">&nbsp; Сканирование секретов, сканирование зависимостей на базе OSV и постквантовый криптоаудит
- <img height="14" src="https://raw.githubusercontent.com/0sec-labs/.github/main/profile/assets/icons/plug.png" alt="">&nbsp; Совместимый с Semgrep/OpenGrep YAML-мост, загружающий ~98% публичного реестра ([отчёт о покрытии](https://github.com/0sec-labs/foxguard/blob/main/docs/parity/registry-coverage.md))
- <img height="14" src="https://raw.githubusercontent.com/0sec-labs/.github/main/profile/assets/icons/file-code.png" alt="">&nbsp; Вывод в терминал, JSON, SARIF, CycloneDX 1.6 CBOM и совместимый с Semgrep JSON

## Установка

```sh
npx foxguard .                                      # без установки
pipx install foxguard                               # готовый CLI из PyPI
curl -fsSL https://foxguard.dev/install.sh | sh     # готовый бинарник (macOS/Linux)
cargo install foxguard                              # из исходников
```

Автономные установщики бинарников проверяют бинарники релизов GitHub по `checksums.txt`. Бинарники релизов также публикуют аттестации артефактов GitHub; для ручной проверки используйте `gh attestation verify` или см. [происхождение релиза](https://github.com/0sec-labs/foxguard/blob/main/docs/release-provenance.md).

Колёса PyPI поддерживают Python 3.9+ на Linux glibc 2.28+ (x86_64/ARM64), macOS
(Intel/Apple Silicon) и Windows x86_64. В существующем виртуальном окружении Python
используйте `python -m pip install foxguard`. Они устанавливают нативный
CLI без компилятора Rust или загрузки бинарника во время выполнения; Python API
не предоставляется. Пользователям Alpine/musl следует использовать автономные бинарники релизов Linux.

**GitHub Action:**

```yaml
- uses: 0sec-labs/foxguard/[email protected]
  with:
    path: .
    severity: medium
    fail-on-findings: "true"
    upload-sarif: "true"
```

**pre-commit:**

```yaml
repos:
  - repo: https://github.com/0sec-labs/foxguard
    rev: v0.14.0
    hooks:
      - id: foxguard
```

Интеграции: [GitHub App](https://github.com/apps/foxguard-app/installations/new), [VS Code](https://marketplace.visualstudio.com/items?itemName=peaktwilight.foxguard), [плагин Claude Code](https://github.com/0sec-labs/foxguard/blob/main/docs/claude-code-integration.md) и [MCP-сервер](https://github.com/0sec-labs/foxguard/blob/main/docs/mcp-server.md).

### Работа размещённого GitHub App

`foxguard-github-app` записывает логи в формате JSON с разделителями-переводами строк. Завершённые и неудачные
сканирования используют `event=foxguard.scan.completed` и `event=foxguard.scan.failed` с
полями доставки, установки, репозитория, PR, коммита, длительности и `usage_scope`
для корреляции. Храните идентификаторы как поля логов, а не как метки метрик.

Задайте `FOXGUARD_INTERNAL_ACCOUNTS` как список ваших собственных аккаунтов и организаций GitHub,
разделённых запятыми. Сопоставление нечувствительно к регистру. Другие владельцы
классифицируются как `external`; неустановленный список или отсутствующий владелец даёт `unknown`.
Внешняя активность не является доказательством платящего клиента, а сканирования — не люди.

Реестр установок сверяется со всеми страницами API установок GitHub App
при запуске и ежечасно. Неудачные обновления сохраняют существующее состояние;
параллельные вебхуки имеют приоритет. Разреженные метаданные вебхуков сохраняют известные
сведения об аккаунте и наблюдаемые имена репозиториев. Эти имена не являются полным
перечнем доступных репозиториев установки.

Храните `FOXGUARD_INSTALLATIONS_PATH` и `FOXGUARD_PULL_REQUEST_JOBS_PATH` на
долговременном хранилище. Следите за `foxguard.installations.reconcile_failed` наряду с
сбоями сканирования; `foxguard.installations.reconciled` сообщает общее число и
количество внутренних/внешних/неизвестных установок после успешного обновления.
Подбирайте размер `FOXGUARD_PR_WORKERS` исходя из измеренного пикового потребления памяти сканером и
лимита памяти контейнера: дочерние процессы могут быть убиты из-за OOM без перезапуска
размещённого приложения.

## Быстрый старт

```sh
foxguard .                              # сканировать всё
foxguard diff main .                    # только новые находки относительно main
foxguard tui .                          # интерактивный просмотр в терминале
foxguard secrets .                      # утёкшие учётные данные и ключи
foxguard sca .                          # уязвимости зависимостей из OSV
foxguard pqc .                          # постквантовый криптоаудит
foxguard --format sarif . > results.sarif
foxguard --format semgrep-json .        # JSON, совместимый с Semgrep CLI
```

Используйте `foxguard --fix src/` или `foxguard --fix src/app.py`, чтобы применить поддерживаемые исправления
taint на месте. Цели проверяются по каноническому каталогу сканирования или
выбранному файлу; находки вне этой области пропускаются. Исправления command-injection для Python
добавляют `import subprocess` при необходимости, сохраняя docstring модуля и future
imports. Просмотрите сгенерированные изменения перед коммитом.

Ошибки чтения файлов, метаданных и обхода каталогов в нативном сканере кода
приводят к выходу с кодом `2` вместо формирования успешного отчёта или перезаписи базовой линии.
Намеренные исключения и неподдерживаемые, бинарные или слишком большие файлы остаются пропусками;
проверяйте уведомления о пропущенных файлах при проверке покрытия сканирования.

## Просмотр в терминале

Запустите `foxguard tui .` и выберите **Scan**, **Diff**, **Secrets** или **PQC** с
помощью стрелок или Tab. В режиме Diff введите целевую ветку перед нажатием Enter.
Широкие терминалы показывают находки рядом с их деталями; меньшие терминалы используют список
с раскрываемым представлением деталей. Контекст исходного кода, поток данных и исправления остаются
прокручиваемыми, когда находка их предоставляет.

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

Если контекст исходного кода не удаётся загрузить, сохранённый фрагмент находки остаётся доступным.
Секреты используют отредактированные фрагменты вместо загрузки исходного кода в панель деталей.

Карточка загрузки показывает неопределённую активность и фактическое прошедшее время, а не
оценку в процентах. Ctrl+C завершает работу во время сканирования.

| Клавиша | Действие |
|-----|--------|
| `j` / `k`, стрелки, Home / End | Перемещение между находками |
| `v` | Раскрыть детали или вернуться к списку/разделённому виду |
| PageUp / PageDown | Постранично пролистать список или прокрутить видимые детали |
| `/`, Enter | Редактировать и применить поиск |
| Ctrl+U | Очистить редактируемый поиск |
| Esc | Закрыть модальное окно, отменить правки поиска, выйти из раскрытых деталей или очистить применённые фильтры |
| `0`–`4`, `c`, Shift+C | Минимальная серьёзность, порог уверенности и порядок сортировки |
| `f` | Цикл All → Unreviewed → Todo → Reviewed → Ignore |
| `i` | Предпросмотр и применение действий триажа |
| Space, `a`, `x` | Отметить одну находку, переключить видимые выделения и предпросмотр пакетного действия |
| Shift+F | Сохранить, загрузить, заменить или удалить именованные фильтры; восстановить хранилище проверок |
| `b` | Цикл категорий базовой линии, когда доступно сравнение |
| Tab, Enter / `o` | Выбрать finding/source/sink и открыть его в вашем редакторе |
| `w`, `[` / `]` | Показать уведомления и прокрутить их историю; новые уведомления появляются первыми |
| `e` | Экспорт CBOM, JSON или SARIF |
| `?`, `q` / Ctrl+C | Справка и выход; Ctrl+C также работает внутри каждого модального окна |

Enter и `o` используют непустой `$VISUAL`, затем `$EDITOR`. Без любой из этих настроек
foxguard ищет `nvim`, `vim`, `nano` или `vi` в `PATH`, прежде чем рассматривать
доступный десктопный открыватель. Headless-терминалы не требуют `xdg-open`.
Например, запустите `VISUAL="nvim" foxguard tui .` или задайте
`EDITOR='code --wait'`. Сломанная явная настройка редактора сообщается, а не
молча заменяется; если редактор недоступен, TUI остаётся открытым с руководством по настройке.
Поддерживаемые редакторы переходят к выбранной строке finding/source/sink.

Отметки проверки сохраняются автоматически в пользовательском хранилище, привязанном к каноническому
корню проекта и режиму сканирования (включая цель в режиме Diff). Именованные фильтры
восстанавливают поиск, серьёзность, уверенность, статус проверки, сортировку и категорию базовой линии
при загрузке с Shift+F. Они не изменяют конфигурацию сканирования репозитория.
Список показывает видимые/общие находки и прогресс проверки; изменение фильтров или
сортировки сохраняет ту же выбранную находку, пока она остаётся видимой. Отмена правок поиска
восстанавливает ранее применённый запрос.

Отмеченные находки переживают изменения фильтров. `x` открывает пакетные действия; Enter показывает
точные цели, количество скрытых выделений, назначение и область действия. Только `y`
применяет предпросмотр; повторный Enter не подтверждает его, а Esc отменяет без
записи. Действия с базовой линией добавляют точные отпечатки. Действия конфигурации для правила/файла и
проекта также могут затрагивать невыбранные находки, о чём предупреждает предпросмотр.
Если цель конфигурации не удаётся, успешные записи остаются, а результаты
сообщаются; пакет не является транзакцией.

Хранилище использует `$XDG_STATE_HOME/foxguard/tui` (или
`~/.local/state/foxguard/tui`) в Linux, Application Support в macOS и
`%LOCALAPPDATA%` в Windows. Атомарные записи и проверки ревизий предотвращают молчаливую
перезапись одним терминалом другого. Ошибки хранилища оставляют локальные изменения видимо
**UNSAVED**. В Shift+F `w` повторяет сохранение, `r` явно перезагружает с диска, а
Shift+R подтверждает резервное копирование и сброс текущего проекта/режима. Перезагрузка/сброс могут
отбросить несохранённые изменения; сброс сохраняет предыдущие байты на диске, а не несохранённые
отметки. Хранилище проверок содержит отпечатки и настройки фильтров, а не исходный код.

Экспорты включают результаты текущего сканирования, а не только видимые отфильтрованные строки,
и записываются в текущий рабочий каталог. Существующие обычные файлы требуют
явного подтверждения `y`; Esc отменяет. Записи атомарны, а симлинки назначения, включая
висячие ссылки, отклоняются.

Используйте `foxguard tui --baseline .foxguard/baseline.json .` для просмотра сохранённого
сравнения с базовой линией. В отличие от подавления в CLI, терминальный просмотр сохраняет текущие
находки и разделяет записи **introduced**, **recurring** и **resolved**.
Resolved означает отсутствие в выводе текущего сканирования, а не подтверждённое устранение:
сравнивайте эквивалентные область, правила и пороги. Идентичность базовой линии включает
файл и расположение в исходном коде, поэтому перемещение находки может отобразиться как introduced плюс
resolved. Строки resolved — это доступные только для чтения исторические метаданные; применяется только поиск,
а `v` раскрывает их прокручиваемые детали. Переключитесь обратно на категорию текущих находок,
чтобы выполнить триаж или экспортировать текущее сканирование.
Git Diff остаётся отдельным сравнением с веткой.

## Покрытие языков

| Язык | Встроенные правила | Отслеживание taint | Правила с учётом фреймворков |
|----------|:-:|:-:|---|
| JavaScript / TypeScript | Да | Да | Express, Next.js |
| Python | Да | Да | Django, Flask, FastAPI |
| Go | Да | Да | Gin |
| Kotlin | Да | Да | Spring |
| Java | Да | Да | Spring |
| Ruby | Да | Да | Rails |
| PHP | Да | Да | Laravel |
| Rust | Да | -- | -- |
| C# | Да | Да | .NET |
| Swift | Да | Да | iOS |
| Haskell | Да | -- | Правила Cardano seed |

Отслеживание taint также охватывает C, Bash и Solidity. Сканирование конфигураций, манифестов и внешних правил охватывает Dockerfile, Nginx, Apache, HAProxy, HCL/Terraform, YAML/JSON/XML/HTML, C через Semgrep YAML/Coccinelle и многое другое.

## Режимы безопасности

```sh
foxguard sca .
foxguard pqc .
foxguard --rules ./semgrep-rules .
```

SCA поддерживает `Cargo.lock`, `package-lock.json`, `pnpm-lock.yaml`, `requirements.txt`, `poetry.lock` и `Pipfile.lock`. Аудит PQC — это двусторонняя оценочная карта: он отмечает квантово-уязвимые примитивы (RSA, ECDSA/DSA, ECDH/DH) с крайними сроками миграции CNSA 2.0, а также обнаруживает уже используемые постквантовые алгоритмы (ML-KEM, ML-DSA, SLH-DSA, FN-DSA, HQC и гибриды вроде X25519MLKEM768) как информационную, квантово-устойчивую инвентаризацию — сообщая процент готовности к миграции. Обе стороны экспортируются в CycloneDX 1.6 CBOM, где постквантовые алгоритмы отображаются как квантово-устойчивые активы, а не уязвимости.

## Конфигурация

foxguard автоматически обнаруживает `.foxguard.yml` от пути сканирования вверх.

```yaml
scan:
  baseline: .foxguard/baseline.json
  disable_rules: [py/no-eval]

secrets:
  exclude_paths: [fixtures, testdata]
```

Подавите принятую находку встроенно с помощью `// foxguard: ignore[rule-id]`.

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

Начните с [индекса документации](https://github.com/0sec-labs/foxguard/blob/main/docs/README.md). Ключевые справочники: [архитектура](https://github.com/0sec-labs/foxguard/blob/main/docs/architecture.md), [совместимость с Semgrep/OpenGrep](https://github.com/0sec-labs/foxguard/blob/main/docs/compatibility.md) и [руководство по релизам](https://github.com/0sec-labs/foxguard/blob/main/docs/releasing.md).

## Бенчмарки

| Репозиторий | LoC | foxguard | Semgrep | Ускорение |
|------|-----|----------|---------|---------|
| express | 15K JS | 0.28s | 6.09s | **22x** |
| flask | 14K Py | 0.33s | 6.51s | **20x** |
| gin | 18K Go | 0.50s | 4.95s | **10x** |
| sentry | 1.3M Py | 35s | 194s | **5x** |

Воспроизведите с помощью `./benchmarks/run.sh`; результаты зависят от машины. См. [`benchmarks/README.md`](https://github.com/0sec-labs/foxguard/blob/main/benchmarks/README.md).

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

См. [`CONTRIBUTING.md`](https://github.com/0sec-labs/foxguard/blob/main/CONTRIBUTING.md) для написания правил, тестов и настройки разработки.

## Лицензия

MIT OR Apache-2.0 -- [0sec Labs](https://0sec.ai)
Скачать инструмент