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

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

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

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

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

Категории

Все категории
Loading categories
detect-secrets — Корпоративный способ обнаружения и предотвращения секретов в коде. | Kitploit
Инструменты/GitHubGitHub/yelp/detect-secrets
Статический анализАнализ КодаDevSecOpsОбнаружение СекретовТоп в Обнаружение Секретов №3
GitHubyelp/detect-secrets

detect-secrets

Корпоративный способ обнаружения и предотвращения секретов в коде.

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

Популярное

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

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

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

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

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

Build Status PyPI version Homebrew PRs Welcome AMF

detect-secrets

О проекте

detect-secrets — это удачно названный модуль для (сюрприз, сюрприз) обнаружения секретов в кодовой базе.

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

  1. Предотвращения попадания новых секретов в кодовую базу,
  2. Обнаружения фактов явного обхода таких предотвращений, и
  3. Предоставления контрольного списка секретов для ротации и миграции в более безопасное хранилище.

Таким образом вы создаете разделение ответственности: принимая тот факт, что в вашем большом репозитории в настоящее время могут скрываться секреты (это то, что мы называем базовым уровнем), но предотвращая усугубление этой проблемы, не затрачивая потенциально гигантские усилия по удалению существующих секретов.

Он делает это путем периодического сравнения результатов diff с эвристически составленными регулярными выражениями, чтобы определить, был ли зафиксирован какой-либо новый секрет. Таким образом, это позволяет избежать накладных расходов на просмотр всей истории git, а также необходимости сканировать весь репозиторий каждый раз.

Чтобы ознакомиться с последними изменениями, см. CHANGELOG.md.

Если вы хотите внести свой вклад, см. CONTRIBUTING.md.

Для более подробной документации ознакомьтесь с нашей документацией.

Примеры

Быстрый старт:

Создайте базовый уровень потенциальных секретов, обнаруженных на данный момент в вашем git-репозитории.```bash $ detect-secrets scan > .secrets.baseline

или, чтобы запустить его из другой директории:```bash
$ detect-secrets -C /path/to/directory scan > /path/to/directory/.secrets.baseline

Сканирование файлов, не отслеживаемых git:```bash $ detect-secrets scan test_data/ --all-files > .secrets.baseline

### Добавление новых секретов в базовый уровень:

Это повторно просканирует вашу кодовую базу и:

1. Обновит/улучшит ваш базовый уровень для совместимости с последней версией,
2. Добавит любые новые найденные секреты в ваш базовый уровень,
3. Удалит секреты, которых больше нет в вашей кодовой базе

Это также сохранит любые помеченные вами секреты.```bash
$ detect-secrets scan --baseline .secrets.baseline

Оповещение о вновь добавленных секретах:

Сканирование только промежуточных файлов:

Для базовых линий старше версии 0.9 просто воссоздайте её.```bash $ git diff --staged --name-only -z | xargs -0 detect-secrets-hook --baseline .secrets.baseline

**Сканирование всех отслеживаемых файлов:**```bash
$ git ls-files -z | xargs -0 detect-secrets-hook --baseline .secrets.baseline

Просмотр всех включенных плагинов:```bash

$ detect-secrets scan --list-all-plugins ArtifactoryDetector AWSKeyDetector AzureStorageKeyDetector BasicAuthDetector CloudantDetector DiscordBotTokenDetector GitHubTokenDetector GitLabTokenDetector Base64HighEntropyString HexHighEntropyString IbmCloudIamDetector IbmCosHmacDetector IPPublicDetector JwtTokenDetector KeywordDetector MailchimpDetector NpmDetector OpenAIDetector PrivateKeyDetector PypiTokenDetector SendGridDetector SlackDetector SoftlayerDetector SquareOAuthDetector StripeDetector TelegramBotTokenDetector TwilioKeyDetector

### Отключение плагинов:```bash
$ detect-secrets scan --disable-plugin KeywordDetector --disable-plugin AWSKeyDetector

Если вы хотите запустить только определенный плагин, вы можете сделать следующее:```bash $ detect-secrets scan --list-all-plugins |
grep -v 'BasicAuthDetector' |
sed "s#^#--disable-plugin #g" |
xargs detect-secrets scan test_data

### Аудит базовой линии:

Это необязательный шаг для маркировки результатов в вашей базовой линии. Он может использоваться для сужения
списка секретов для переноса или для лучшей настройки ваших плагинов с целью улучшения соотношения сигнал-шум.```bash
$ detect-secrets audit .secrets.baseline

Использование в других скриптах Python

Базовое использование:```python from detect_secrets import SecretsCollection from detect_secrets.settings import default_settings

secrets = SecretsCollection() with default_settings(): secrets.scan_file('test_data/config.ini')

import json print(json.dumps(secrets.json(), indent=2))

**Более продвинутая конфигурация:**```python
from detect_secrets import SecretsCollection
from detect_secrets.settings import transient_settings

secrets = SecretsCollection()
with transient_settings({
    # Only run scans with only these plugins.
    # This format is the same as the one that is saved in the generated baseline.
    'plugins_used': [
        # Example of configuring a built-in plugin
        {
            'name': 'Base64HighEntropyString',
            'limit': 5.0,
        },

        # Example of using a custom plugin
        {
            'name': 'HippoDetector',
            'path': 'file:///Users/aaronloo/Documents/github/detect-secrets/testing/plugins.py',
        },
    ],

    # We can also specify whichever additional filters we want.
    # This is an example of using the function `is_identified_by_ML_model` within the
    # local file `./private-filters/example.py`.
    'filters_used': [
        {
            'path': 'file://private-filters/example.py::is_identified_by_ML_model',
        },
    ]
}) as settings:
    # If we want to make any further adjustments to the created settings object (e.g.
    # disabling default filters), we can do so as such.
    settings.disable_filters(
        'detect_secrets.filters.heuristic.is_prefixed_with_dollar_sign',
        'detect_secrets.filters.heuristic.is_likely_id_string',
    )

    secrets.scan_file('test_data/config.ini')

Установка```bash

$ pip install detect-secrets ✨🍰✨

Установка через [brew](https://brew.sh/):```bash
$ brew install detect-secrets

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

detect-secrets поставляется с тремя различными инструментами, и часто возникает путаница в том, какой из них использовать. Используйте этот удобный контрольный список, чтобы принять решение:

  1. Хотите добавить секреты в ваш baseline? Если да, используйте detect-secrets scan.
  2. Хотите получать предупреждения о новых секретах, не входящих в baseline? Если да, используйте detect-secrets-hook.
  3. Вы анализируете сам baseline? Если да, используйте detect-secrets audit.
Скачать инструмент