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

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

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

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

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

Категории

Все категории
Loading categories
keyhog — Сканер секретов с открытым исходным кодом на Rust | Kitploit
Инструменты/GitHubGitHub/santhreal/keyhog
Статический анализСканеры уязвимостейБезопасность контейнеровАнализ КодаАудит конфигурацииБезопасность облачных средDevSecOpsОбнаружение СекретовРазведка угрозБезопасность Цепочки ПоставокРеагирование на Инциденты
8813391 день назадПроверено Kitploit
GitHubsanthreal/keyhog

keyhog

Сканер секретов с открытым исходным кодом на Rust

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
<p align="center">
  <img src="https://raw.githubusercontent.com/santhreal/keyhog/HEAD/docs/assets/keyhog-banner.svg" alt="KeyHog — GPU-ускоряемый сканер секретов с открытым исходным кодом для кода, истории Git, облака, контейнеров, браузерных ресурсов и CI" width="960" />
</p>

<p align="center">
  <a href="https://crates.io/crates/keyhog"><img src="https://img.shields.io/crates/v/keyhog?style=flat-square&amp;color=ffd60a&amp;label=crates.io&amp;labelColor=0a0a0a" alt="KeyHog на crates.io" /></a>&nbsp;
  <a href="https://santhreal.github.io/keyhog/"><img src="https://img.shields.io/badge/docs-KeyHog-ffd60a?style=flat-square&amp;labelColor=0a0a0a" alt="Документация KeyHog" /></a>&nbsp;
  <a href="https://github.com/santhreal/keyhog/actions"><img src="https://img.shields.io/github/actions/workflow/status/santhreal/keyhog/ci.yml?style=flat-square&amp;label=CI&amp;labelColor=0a0a0a" alt="CI" /></a>&nbsp;
  <a href="https://github.com/santhreal/keyhog/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-9aa0b4?style=flat-square&amp;labelColor=0a0a0a" alt="MIT OR Apache-2.0" /></a>&nbsp;
  <a href="https://github.com/santhreal/keyhog/blob/main/metrics/stars.svg"><img src="https://img.shields.io/github/stars/santhreal/keyhog?style=flat-square&amp;color=ffd60a&amp;label=stars&amp;labelColor=0a0a0a" alt="Звёзды GitHub и история звёзд, принадлежащая репозиторию" /></a>
</p>

<p align="center">
  <strong><a href="https://santh.dev/keyhog/">Веб-сайт</a></strong> ·
  <strong><a href="https://santhreal.github.io/keyhog/">Документация</a></strong> ·
  <strong><a href="https://santh.dev/blog/keyhog/">Архитектура</a></strong> ·
  <strong><a href="https://github.com/santhreal/vyre">GPU-движок Vyre</a></strong>
</p>

# KeyHog: GPU-ускоряемый сканер секретов для кода, облака и CI

**KeyHog — это сканер секретов с открытым исходным кодом на Rust, который находит и проверяет утёкшие
API-ключи, токены, пароли и учётные данные в исходном коде, истории Git,
контейнерах, облачных хранилищах, браузерных ресурсах, корпоративном контенте и работающих
системах.**

Большинство сканеров секретов останавливаются на CPU-сопоставлении регулярных выражений в копии репозитория.
KeyHog объединяет **934 детектора, специфичных для конкретных сервисов**, сквозное декодирование скрытых
учётных данных, контекстно-зависимые доказательства и подавление, проверку в реальном времени у провайдеров,
а также полноценное **исполнение через CUDA, Metal и WGPU с помощью
[Vyre](https://github.com/santhreal/vyre)**. Калибровка измеряет каждый подходящий
чисто-Rust CPU, Hyperscan/SIMD и GPU бэкенд. Автоматическая маршрутизация затем использует
самый быстрый маршрут с доказанным паритетом для конкретного хоста и класса рабочей нагрузки.

| GPU — это реальный бэкенд | Сканируйте фактическую поверхность атаки | Отделяйте сигнал от шума | Действуйте по результату |
|---|---|---|---|
| CUDA, нативный Metal и WGPU — это измеренные равноправные участники, а не молчаливая резервная цепочка. | Сканируйте историю Git, слои Docker, архивы, облачные корзины, source maps, WASM, HAR-захваты, размещённые коллекции Git и целые системы. | Декодируйте base64, hex, URL, protobuf, многострочные и структурированные конфигурации перед применением доказательств, подавления примеров и базовых линий. | Проверяйте подходящие учётные данные через API провайдеров, создавайте SARIF или структурированные конверты и сохраняйте точную семантику покрытия и выхода. |```sh
cargo install --locked keyhog
keyhog scan .
```
<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/7654/dfb768a9b8e8fa64082992f11d0b284d5ec6a199fc1eac85e0352fb20452186f.gif" alt="Сканирование KeyHog с указанием серьёзности, доказательств, файла и строки, способов устранения, результатов и статуса покрытия" width="900" />
</p>

## Сканер секретов, построенный вокруг GPU

KeyHog не передаёт несколько регулярных выражений в универсальный вычислительный шейдер.
Его GPU-путь построен на [Vyre](https://github.com/santhreal/vyre) — Rust GPU
вычислительной подложке, разработанной вместе с KeyHog. Триггеры детекторов компилируются в
неизменяемые таблицы, размещаемые в GPU. Ограниченные исходные пакеты дают полные позиции
совпадений для того же конвейера подтверждения, подавления, сбора доказательств и отчётности,
который используется в CPU- и Hyperscan-маршрутах.

- **Три физических GPU-пира.** CUDA, нативный Metal и портативный WGPU
  подключаются, измеряются и учитываются независимо.
- **Точное совпадение результатов.** Калибровка отклоняет кандидата, чья
  идентичность находки отличается от эталонного маршрута. Более быстрый неверный ответ никогда не попадает
  в таблицу маршрутизации.
- **Постоянные доказательства маршрута.** KeyHog записывает бинарный файл, корпус детекторов,
  конфигурацию, класс рабочей нагрузки, хост, ускоритель, драйвер и измеренные временные
  показатели. Обычные сканирования не выполняют бенчмаркинг на горячем пути.
- **Резидентное выполнение.** Фоновые рабочие процессы демона поддерживают скомпилированные детекторы и состояние
  ускорителя в тёплом виде для повторяющихся пакетов файлов, архивов, истории, удалённых и облачных источников.
- **Нет скрытого запасного пути на CPU.** Явно выбранный ускоритель, который не может
  инициализироваться или выполнить диспетчеризацию, завершается с видимой ошибкой, а не возвращает находки CPU под
  меткой GPU.

Установка crates.io по умолчанию использует портативный чисто-Rust CPU-маршрут, поэтому она работает
на чистом Rust-хосте. Включите три GPU-пира без приобретения Hyperscan:```sh
cargo install --locked keyhog --no-default-features --features portable,gpu
```
Включите пира Hyperscan или Vectorscan SIMD regex:```sh
cargo install --locked keyhog --no-default-features --features portable,simd
```
Запустите диагностику продакшен-бэкенда, затем проверьте измеренный маршрут:```sh
keyhog backend --self-test
keyhog calibrate-autoroute --policy all
keyhog backend --autoroute --json
```
[Руководство по бэкендам](https://santhreal.github.io/keyhog/backends.html) описывает
резидентные таблицы, ограниченную модель диспетчеризации, контракт паритета и воспроизводимые
перекрёстные доказательства.

## Начало работы

### Установка и запуск первого сканирования

Две команды выше устанавливают последний релиз crates.io и сканируют текущее
дерево с помощью переносимого чисто-Rust маршрута.

Зафиксируйте CI-окружение на одной точной версии с помощью
`cargo install --locked --version '=0.5.86' keyhog`. KeyHog требует Rust 1.89
или новее. См. [руководство по установке](https://santhreal.github.io/keyhog/install.html)
для профилей GPU, Hyperscan, CI, переносимого и сборки из исходников.

KeyHog завершается с кодом `1`, когда находка блокирует активную политику доказательств. Политика по умолчанию
блокирует находки уровня `likely` и `confirmed`, оставляя находки уровня `review`
видимыми с кодом выхода `0`; `--evidence-policy paranoid` блокирует все уровни. Проверяйте
точный уровень доказательств каждой находки, код причины, файл, строку, детектор и
способ устранения. Другие ненулевые коды описывают ошибки ввода, системы, проверки или
покрытия; см.
[справочник кодов выхода](https://santhreal.github.io/keyhog/reference/exit-codes.html).

Полный контракт процесса выглядит так:

| Код выхода | Значение |
|---|---|
| `0` успех | Ни одна находка не блокирует активную политику доказательств, и ошибок покрытия не произошло. Находки уровня review могут оставаться видимыми при политике по умолчанию. |
| `1` блокирующие находки | По крайней мере одна находка блокирует активную политику доказательств, но ни одна не была подтверждена как активная. |
| `2` ошибка оператора | Исправьте аргументы, конфигурацию, корпус детекторов или ввод, исправимый оператором. |
| `3` системная ошибка | Исправьте или повторите запуск. Сюда входят низкоуровневые ошибки ввода-вывода, фатальные ошибки службы демона, инкрементального кэша и явно выбранные ошибки SIMD. |
| `4` сбой проверки работоспособности/самотестирования | Проверка работоспособности `doctor` или `backend --self-test` завершилась неудачно. |
| `10` активные учётные данные | По крайней мере одно учётное данное было подтверждено как активное. |
| `11` паника сканера | Отбросьте результат сканирования, так как состоянию сканера доверять нельзя. |
| `12` требуемый сбой GPU | Явно выбранный или требуемый путь GPU не смог выполниться. |
| `13` неполное покрытие | Запрошенный источник завершился с ошибкой или покрытие ввода было неполным, и ни один результат находки не имел приоритета. |
| `130` прервано | SIGINT или Ctrl-C прервали процесс. |

**Фильтр, формат, шлюз:**

Создайте базовый уровень перед использованием его в качестве фильтра:```sh
keyhog scan . --create-baseline .keyhog-baseline.json
keyhog scan . --baseline .keyhog-baseline.json --format json-envelope --output keyhog.json
```
Первая команда сохраняет просмотренные находки и завершается с кодом `0`, не выводя
их. Зафиксируйте этот файл, затем используйте вторую команду, чтобы сообщать только о новых
идентификаторах находок. Базовая запись сопоставляется по детектору и значению учётных данных,
но никогда по пути к файлу, поэтому перемещение записанного секрета не приводит к сбою проверки, а вот
его ротация — приводит. Изменённые учётные данные и неполное покрытие остаются видимыми.
Полный путь, включая разделы монорепозитория, описан в разделе [Сбой только при новых
секретах](https://santhreal.github.io/keyhog/workflows/ci.html#fail-only-on-new-secrets).

Для следующего сканирования используйте [поваренную книгу
рецептов](https://santhreal.github.io/keyhog/recipes.html) или копируемые
команды из раздела [Выберите подходящий рабочий процесс](#choose-the-right-workflow). Вы можете
сканировать историю Git, образы контейнеров, облачные хранилища, коллекции репозиториев,
URL-адреса и целую машину, не меняя инструменты.

### Защита репозиториев для быстрых pre-commit сканирований

Зарегистрируйте репозиторий в постоянном демоне KeyHog для быстрого
обнаружения секретов перед коммитом (требуется Unix; в Windows используйте внутрипроцессный `keyhog scan`):```sh
# 1. Start the daemon (accelerated by CUDA, Metal, WGPU, or SIMD)
keyhog guard up

# 2. Guard your repository (indexes baseline and installs pre-commit hook in one step)
keyhog guard add /path/to/repo

# 3. Every staged commit checks only changed blobs against in-memory attestations
keyhog scan --git-staged

# 4. View all active guarded repositories and their states
keyhog guard list

# 5. Turn the daemon on and off cleanly without losing registrations or durable index
keyhog guard down
```
См. [руководство по постоянной защите](https://santhreal.github.io/keyhog/workflows/guard.html)
и [рабочий процесс pre-commit](https://santhreal.github.io/keyhog/workflows/precommit.html)
для полной конфигурации, жизненного цикла конечного автомата и автоматизации хуков.

### Добавьте его в GitHub Actions

Создайте `.github/workflows/keyhog.yml`:```yaml
name: keyhog
on:
  push:
    branches: [main]
  pull_request:
permissions:
  contents: read
  security-events: write
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - uses: santhreal/keyhog@v0
        with:
          path: .
          severity: high
```
Действие сканирует извлечённое дерево, завершается с ошибкой при обнаружении находок уровня `high` или `critical`, загружает SARIF в Code Scanning и сохраняет отчёт как артефакт рабочего процесса. Сбои установки, покрытия, бэкенда и публикации отчёта также приводят к провалу задания.

Используйте [руководство по GitHub Action](https://santhreal.github.io/keyhog/workflows/github-action.html) для получения информации о входных данных, выходных данных, принятии базовой линии, разбиении монорепозиториев, проверке и поведении при сбоях. Используйте [руководство по CI](https://santhreal.github.io/keyhog/workflows/ci.html) для GitLab, CircleCI, Jenkins, Buildkite и универсальных shell-заданий. Используйте [руководство по массовому сканированию](https://santhreal.github.io/keyhog/guides/mass-scanning.html) для организации репозиториев, размещённых Git-групп, облачных хранилищ и сегментированных инвентаризаций.

## Поверхности сканирования, которые другие инструменты считают отдельными продуктами

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

| Поверхность воздействия | Пример |
|---|---|
| Финальный артефакт пакета | Выполните `npm pack`, затем просканируйте полученный `.tgz` с помощью `keyhog scan package.tgz`. Распаковка архива проверяет сгенерированные файлы, source maps, фикстуры и метаданные, отсутствующие в ожидаемом дереве исходников. |
| Развёрнутое браузерное приложение | `keyhog scan --url https://app.example.com/assets/app.js` выполняет ограниченное декодирование JavaScript, source-map, WASM и ответов, не превращая сканер в неограниченный краулер. |
| GitHub issues, pull requests, обсуждения, вики и gists | `keyhog scan --github-collaboration owner/repo --github-all` сканирует все поверхности совместной работы за пределами извлечённого дерева. |
| Конфигурация AI-агентов и MCP | `keyhog scan ~/.config ~/.claude ~/.codex` применяет тот же конвейер детекторов, декодирования, доказательств и отчётов к локальной конфигурации инструментов. |
| Слои контейнерных образов | `keyhog scan --docker-image registry.example.com/team/app:v1` сканирует содержимое образа, которое будет запущено, включая файлы, добавленные во время сборки. |
| Инвентаризации облачных объектов | `keyhog scan --s3-bucket BUCKET`, `--gcs-bucket BUCKET` или `--azure-container-url URL` сохраняет пагинацию провайдера, объекты и ограничения по байтам в терминальном отчёте. |
| Весь хост разработки | `sudo keyhog scan-system --space 50G` обнаруживает смонтированные файловые системы и достижимую историю Git в рамках жёсткого бюджета хранилища. |

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

## Выберите правильный рабочий процесс

Сначала выберите границу источника. Пресет меняет работу обнаружения, а бэкенд — способ выполнения. Ни то, ни другое не расширяет сканирование рабочего дерева до истории Git, инвентаризации провайдера, облачного хранилища или аудита хоста.

Не существует честного ярлыка `scan everything`. Полный обзор окружения запускает соответствующие границы ниже как отдельные задания и сохраняет каждый отчёт `json-envelope` с его исходным кодом выхода.

| Потребность | Начните с | Пропускная способность и повторное использование | Граница покрытия |
|---|---|---|---|
| Быстрая локальная обратная связь | `keyhog scan . --fast --incremental` | Повторно использует хэши неизменённых файлов. Быстрый пресет пропускает работу по декодированию, энтропии и ML. | Запустите политику по умолчанию перед слиянием, потому что быстрый режим намеренно уже. |
| Полное сканирование репозитория | `keyhog scan .` | Калиброванный `auto` и стандартное количество рабочих процессов по числу ядер CPU. Добавьте `--incremental` для повторных сканирований одного и того же доверенного дерева. | Только текущие файлы. История Git не добавляется. |
| Шлюз для staged-коммитов | `keyhog scan --git-staged` или `keyhog hook install` | Читает точные blob-объекты индекса, поэтому незакоммиченные правки не могут изменить результат. | Только staged-содержимое. Запустите сканирование рабочего дерева отдельно, если важны локальные незакоммиченные байты. |
| Постоянная защита репозитория | `keyhog guard add . --mode repo`, затем `keyhog guard status .` | Демон-резидентный корневой реестр с 7-состояний машиной, чистым кэшем аттестаций и отслеживанием идентичности политики. | Требуется запущенный демон. Guard дополняет, а не заменяет сканирование staged и рабочего дерева. |
| Шлюз GitHub pull request | `santhreal/keyhog@v0` | Action устанавливает, сканирует, публикует SARIF и артефакт, затем сохраняет статус KeyHog. | Один извлечённый путь. Для организации используйте сканирование инвентаризации провайдера. |
| GitLab, Jenkins, Buildkite или shell CI | `keyhog scan . --format json-envelope --output keyhog.json` | Сохраняйте отчёт и код выхода при успехе, находках и ошибках. Используйте `--git-diff <base>` только для явно более узкого шлюза изменённых строк. | Байты, присутствующие в извлечённом дереве, или выбранный diff. |
| Принятие репозитория с известными находками | Создайте `.keyhog-baseline.json`, закоммитьте его, затем сканируйте с `--baseline .keyhog-baseline.json`. | Существующие идентичности остаются видимыми в базовой линии, а шлюз проваливают только новые находки. | Базовая линия не подавляет изменённые учётные данные или неполное покрытие. |
| Рекурсивное восстановление Git | `keyhog scan --deep --git-history . --git-blobs . --daemon=off` | Калибруйте глубокую политику один раз на класс рабочих процессов. Запускайте в процессе. | Один репозиторий. `--git-history` покрывает только предков текущего извлечённого дерева, поэтому ветка, которую вы никогда не извлекали, пропускается без пробела покрытия; `--git-blobs` также достигает висячих blob-объектов, коммитов, удалённых через amend, stash, заметок, сообщений аннотированных тегов и упакованных ссылок. |
| Проверка контейнера или архива | `keyhog scan --docker-image registry/app:v1` или `keyhog scan incoming/` | Сохраняйте отчёт-конверт, чтобы пропущенные, повреждённые, зашифрованные, небезопасные или слишком большие элементы оставались видимыми. | Только выбранный образ или путь файловой системы и поддерживаемые вложенные форматы. |
| Проверка URL, ответа или HAR | `keyhog scan --url https://api.example.com/config` или `keyhog scan capture.har` | Используйте ограниченные лимиты источника и сохраняйте терминальный конверт. | Только полученные ответы или записи захвата. Это не краулер. |
| Инвентаризация организации или облака | `keyhog scan --daemon=off --github-org acme --format json-envelope --output acme.json` | Разделяйте по провайдеру, владельцу или bucket. Запускайте независимые разделы параллельно с одним отчётом и статусом для каждого. | Одна выбранная инвентаризация провайдера на задание. Лимиты пагинации или объектов остаются границами покрытия. |
| Подтверждение, активны ли подходящие находки | `keyhog scan . --verify` | Параллелизм провайдера и контроль скорости отделены от рабочих процессов сканера. | Отправляет запросы, производные от учётных данных, на объявленные конечные точки провайдера. Не каждый детектор поддерживает проверку. |
| Проверка здоровья всего хоста | `sudo keyhog scan-system --space 50G` | По умолчанию использует все ядра CPU и сканирует обнаруженную историю Git после данных файловой системы. | Локальные смонтированные файловые системы. Сетевые монтирования — по желанию, а потолок пространства жёсткий. |
| Каталог, история, архив, удалённый источник или облачная инвентаризация с GPU на Unix | Калибруйте autoroute, запустите `keyhog daemon start --mass`, затем выполните `keyhog scan --daemon=mass <SOURCE>`. | Потоковая передача ограниченных пакетов через один скомпилированный CPU, Hyperscan, CUDA, Metal или WGPU-рабочий процесс. Добавьте `--incremental` для тёплых неизменённых деревьев файловой системы. Терминальная квитанция сообщает точные итоги и GPU-пакеты, чанки, байты, долю GPU и пропускную способность. | Базовые линии, проверка, lockdown, пресеты, оверлеи и другие изменения политики сканера отклоняются до сбора. Инкрементальное состояние применяется только к локальным корням файловой системы демона. |

### Сканируйте каждую поддерживаемую границу источника

Используйте одну команду на границу. Сохраняйте отчёт `json-envelope` и исходный статус выхода для каждого раздела инвентаризации.

| Источник или вариант использования | Команда |
|---|---|
| Несколько локальных корней | `keyhog scan services/api services/web deploy/` |
| Постоянно изменяемые файлы | `keyhog watch services/api deploy/` |
| Staged-байты, изменённые строки, достижимая история или blob-объекты | `keyhog scan --git-staged`, `--git-diff main`, `--git-history .` или `--git-blobs .` |
| Нативные бинарники и строки прошивки | `keyhog scan --binary firmware.bin` (обычное сканирование каталога пропускает бинарники и всё равно завершается с кодом `0`) |
| Архивы и сжатые источники | `keyhog scan incoming/` (поддерживаемые элементы распаковываются автоматически) |
| Слои Docker-образов | `keyhog scan --docker-image registry/app:v1` |
| JavaScript, source maps, WASM или ответ конечной точки | `keyhog scan --url https://api.example.com/config` |
| Захваты HTTP-запросов и ответов | `keyhog scan capture.har` |
| GitHub issues, pull requests, обсуждения, вики и gists | `keyhog scan --github-collaboration owner/repo --github-all` |
| Инвентаризации GitHub, GitLab или Bitbucket | `--github-org ORG`, `--gitlab-group GROUP` или `--bitbucket-workspace WORKSPACE` |
```

---

[Read more](https://github.com/santhreal/keyhog)
Скачать инструмент