Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
credactor — スキャン。編集。クリーンコミット。 | Kitploit
ツール/GitHubGitHub/rxb06/credactor
静的分析脆弱性スキャナーコード分析DevSecOpsシークレット検出サプライチェーンセキュリティ
GitHubrxb06/credactor

credactor

スキャン。編集。クリーンコミット。

リポジトリを見る
82711日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

PyPI CI License

Credactor

秘密を発見し、修正し、クリーンにコミットする。

シークレットスキャナは警告を発するのは得意だが、その問題を解決するのはあまり得意ではない。漏洩した認証情報のリストを渡して、後始末はあなたに任せる。Credactor はこのループを閉じる。ハードコードされた秘密を発見し、その場で書き換えるので、漏洩は検出から修正まで1つのコマンドで完了する。

Credactor: scan, redact, commit clean 認証情報をソースコードに含めないことは、オプションではなく基本的なセキュリティプラクティスである。Credactor はその基本を低コストで維持できるようにする。コミット前のあなたのマシン上でも、マージ前の CI でも。単独で実行することも、すでに信頼しているスキャナと並行して実行することもできる。
# Credactor finds this:
db_password = "h8Tq2vKp9mRz4Wd"

# By default it rewrites the secret as a sentinel that fails loudly at runtime:
db_password = "REDACTED_BY_CREDACTOR"

# With --replace-with env, it writes a reference that reads from the environment:
db_password = os.environ["DB_PASSWORD"]

リダクションは作業ツリー内のファイルを書き換える。秘密がすでにコミットされている場合は、キーをローテーションし、履歴もクリーンアップすること(例えば git filter-repo を使用)。ファイルの書き換えは、漏洩した認証情報の失効の代わりにはならない。


Credactor を選ぶ理由

  • 検出だけでなくリダクション。 ほとんどのスキャナは検出して終わり。Credactor はその場で秘密を置き換える。デフォルトでは実行時に失敗する大きな REDACTED_BY_CREDACTOR センチネル、または言語を認識した環境変数参照(Python、JavaScript/TypeScript、Go、Java/Kotlin、Ruby、PHP、シェル)例えば os.environ["KEY"]。置き換えは有効なコードである。ファイルに一致するインポート(例えば import os)がまだ含まれていない場合は、追加すること。
  • デフォルトで安全。 アトミック書き込み、自動 .bak バックアップ、シンボリックリンク境界とファイルパーミッションのガード、すべての出力での完全な秘密のマスキング。安全なバックアップを書き込めない場合、Credactor は盲目的に書き換えるのではなくファイルをスキップし、書き込み中のクラッシュでも元のファイルは無傷のまま残る。
  • ランタイム依存ゼロ。 純粋な Python 3.11+ 標準ライブラリ、加えて非 UTF-8 エンコーディング用のオプションの追加機能。
  • パイプライン向けに構築。 GitHub Code Scanning 用の SARIF 出力、正確な終了コードを備えた読み取り専用の --ci ゲート、pre-commit フック、Gitleaks、TruffleHog、Betterleaks レポートの取り込み。すでに実行しているスキャナで検出し、Credactor で修復する。

インストール

pip install credactor

Python 3.11+ が必要。他の依存関係はない。Linux、macOS、Windows で動作する(CI は Linux と Windows でテスト済み)。

macOS と Linux では、代わりに Homebrew でインストールできる:

brew install rxb06/tap/credactor

この formula は独自の virtualenv にインストールし、オプションの [encoding] extra を含むため、Homebrew インストールでは非 UTF-8 ファイル内の秘密も検出できる。通常の pip install credactor ではこの extra は含まれない。同じカバレッジが必要な場合は pip install 'credactor[encoding]' で追加する。

ソースから:

git clone https://github.com/rxb06/credactor.git
cd credactor
pip install -e .

これで credactor はどのディレクトリからでも動作する。

クイックスタート

まず --dry-run を実行し、リダクションの前に検出結果を確認すること。誤検出の可能性があり、--fix-all では誤検出も書き換えられる。既知の安全な値は # credactor:ignore または .credactorignore エントリで抑制する。

credactor --dry-run .                 # scan, change nothing
credactor .                           # scan, then redact interactively (y/n per finding)
credactor --fix-all .                 # redact everything after one confirmation
credactor --fix-all --yes .           # redact non-interactively (CI / scripts)
credactor --ci .                      # read-only gate: exit 1 on findings
credactor --replace-with env .        # redact to env-var references instead of the sentinel

Pre-commit フック

フックはステージングされた内容のみをゲートするため、すでにコミットされた秘密は再検出されない。リポジトリにすでに含まれているものを確認するには credactor --scan-history . を使用する。

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/rxb06/credactor
    rev: v2.7.4   # pin to the latest release tag
    hooks:
      - id: credactor

GitHub Action

- uses: rxb06/[email protected]

このアクションは常に --ci を渡すため、報告とゲートは行うがチェックアウトを書き換えることはない。検出結果はステップを失敗させる。ゲートせずに報告するには fail-on-findings: false を設定する。エラーはどちらの場合もステップを失敗させる。

検出結果で失敗させる代わりに Code Scanning にアップロードする:

- uses: rxb06/[email protected]
  with:
    format: sarif
    upload-sarif: true
    fail-on-findings: false

アップロードにはジョブに permissions: security-events: write が必要。Gitleaks、TruffleHog、Betterleaks レポートの取り込みを含むすべての入力については、CI 統合ガイドを参照。

検出

Credactor は最も頻繁に漏洩する認証情報の種類を検出し、それぞれに重大度を割り当てるので、一目でトリアージできる。

カテゴリ例重大度
クラウドプロバイダーキーAWS (AKIA…)、GCP (AIza…)、Stripe (sk_live_…)、Slack (xoxb-…)Critical
プラットフォームトークンGitHub (ghp_、github_pat_)、GitLab (glpat-)、npm (npm_)、PyPI (pypi-)Critical
秘密鍵PEM ブロック (-----BEGIN … PRIVATE KEY-----)Critical
JWTeyJ… の3セグメントトークンHigh
接続文字列インライン認証情報を含む URL (scheme://user:pass@host)High
認証情報変数password = "…"、api_key = "…"、secret_key = "…"High/Medium/Low
XML 属性<add key="Password" value="…" />High/Medium/Low
高エントロピー文字列引用符付き hex (32–64 文字) / Base64 (60+ 文字)Medium/Low

決定論的なプロバイダートークン(上記のプレフィックス)はエントロピーに関係なく検出される。ヒューリスティック検出器(JWT、接続文字列、hex、Base64)はエントロピーの下限をクリアする必要がある。単独の hex または Base64 は引用符で囲まれている場合にのみ検出される。引用符で囲まれていない高エントロピー値は、認証情報名の変数でのみ検出されるため、git SHA やチェックサムは除外される。完全な検出と重大度のルールについては、マニュアルを参照。

Credactor のネイティブルールセットは専用スキャナよりも狭く、一部のプロバイダー形式(例えば SendGrid、Twilio、Slack webhook)は検出されない。その強みは修復にある。最も広い検出には Gitleaks、TruffleHog、Betterleaks と組み合わせるか、単独で実行する。

別のスキャナと組み合わせて、まとめてリダクション

Credactor は単独でも機能するが、組み合わせるとさらに強力になる。すでに Gitleaks、TruffleHog、Betterleaks を実行している?そのレポートを Credactor に渡すと、統合されたセットをリダクションし、自身の検出結果と重複排除する(重複する場合は重大度が高い方が優先される)。1回の修復パスで、あなたのスキャンと彼らのスキャンの両方をカバーする:

gitleaks dir . -f json -r gitleaks.json
credactor --from-gitleaks gitleaks.json --fix-all --yes .

betterleaks dir . -f json -r betterleaks.json
credactor --from-betterleaks betterleaks.json --fix-all --yes .

--from-gitleaks / --from-trufflehog / --from-betterleaks(または .credactor.toml の [ingest] テーブル)にはディレクトリターゲットが必要である。スキャナが実行されたのと同じルートを Credactor に指定すること。レポートパスは作業ディレクトリを基準に解決され、レポートはスナップショットである。リダクション後またはツリーの変更後に再生成すること。CI 統合ガイドを参照。

その他の機能

  • 対話的またはバッチリダクション、--replacement によるカスタム置換文字列、git コミット履歴をスキャンする --scan-history
  • 安全なバックアップ:--secure-delete(.bak を上書きして削除する。カジュアルな復元に対するハードルを上げるが、フォレンジック保証ではない)または --secure-backup-dir でリポジトリ外にバックアップを保存
  • インライン # credactor:ignore と .credactorignore 許可リスト(glob、file:line、値リテラル)
  • .credactor.toml によるリポジトリごとの設定
  • 29 種類のソース/設定/ノートファイルタイプを標準でサポート(.txt を含む)。JSON を含めるには --scan-json、ファイルを読み取れない場合に失敗するには --fail-on-error

スキャン対象ファイルタイプ

.py .js .ts .jsx .tsx .sh .bash .env .cfg .ini .toml .yaml .yml .rb .go .java .php .cs .kt .tf .hcl .conf .config .properties .xml .pem .key .crt .txt

さらに .env.* / .env-* バリアント(.env.local、.env.production)と SSH / 秘密鍵ファイル(id_rsa、id_dsa、id_ecdsa、id_ed25519)があり、これらはすべて拡張子ではなくファイル名でマッチされる。JSON は API レスポンスが高い誤検出率を生むためデフォルトで除外される。含めるには --scan-json を追加する。コマンドラインで直接指定されたファイルは、その拡張子がこのリストにない場合でもスキャンされる。

終了コード

コード意味
0検出結果なし、またはすべて解決済み
1未解決の検出結果
2エラー(例:不正なパス、危険な --replacement、--ci --fix-all、取り込みレポートの欠落または無効、または読み取れないファイルを伴う --fail-on-error)

サプライチェーンの強化

セキュリティツールは、実行するだけでなくインストールするのも安全であるべきだ。Credactor のビルドとリリースパイプラインはエンドツーエンドで強化されている。詳細はセキュリティドキュメントを参照。

ツールをダウンロード