
trufflehog v3.99.3
漏洩した認証情報を発見、検証、分析する
TruffleHog
漏洩した認証情報を検出します。
🔎 スキャン対象
🌐 TruffleHog Enterprise
Git、Jira、Slack、Confluence、Microsoft Teams、Sharepoint(など) を継続的に監視して認証情報を探すことにご興味はありませんか?それを支援できるエンタープライズ製品をご用意しています!詳しくは https://trufflesecurity.com/trufflehog-enterprise をご覧ください。
エンタープライズ製品からの収益は、コミュニティ全体が恩恵を受けられる、より優れたオープンソースプロジェクトの資金に充てています。
TruffleHog とは 🐽
TruffleHog は、最も強力なシークレットの 発見、分類、検証、分析 ツールです。ここでいうシークレットとは、マシンが別のマシンに対して自身を認証するために使用する認証情報を指します。これには API キー、データベースのパスワード、秘密暗号鍵などが含まれます。
発見 🔍
TruffleHog は、Git、チャット、Wiki、ログ、API テストプラットフォーム、オブジェクトストレージ、ファイルシステムなど、さまざまな場所でシークレットを探すことができます。
分類 📁
TruffleHog は 800 種類以上のシークレットを分類し、それらが属する特定の識別情報にマッピングします。AWS のシークレットか?Stripe のシークレットか?Cloudflare のシークレットか?Postgres のパスワードか?SSL 秘密鍵か?見ただけでは判別が難しいこともあるため、TruffleHog は検出したすべてを分類します。
検証 ✅
TruffleHog は分類できるすべてのシークレットについて、ログインしてそのシークレットが有効かどうかを確認することもできます。このステップは、現在アクティブな危険が存在するかどうかを知るうえで極めて重要です。
分析 🔬
最もよく漏洩する 20 種類ほどの認証情報タイプについては、シークレットがログインできるかどうかを確認するために 1 つのリクエストを送る代わりに、TruffleHog は多数のリクエストを送信して、そのシークレットに関するあらゆる情報を調べることができます。誰が作成したのか?どのリソースにアクセスできるのか?それらのリソースに対してどのような権限を持っているのか?
📢 コミュニティに参加しましょう
質問はありますか?フィードバックはありますか?Slack または Discord に参加して、私たちと交流しましょう。
Slack コミュニティに参加する
📺 デモ
docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --org=trufflesecurity
💾 インストール
いくつかのオプションが用意されています:
MacOS ユーザー
brew install trufflehog
Docker:
以下のコマンドを実行する前に、Docker エンジンが起動していることを確認してください:
Unix
docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys
Windows コマンドプロンプト
docker run --rm -it -v "%cd:/=\%:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys
Windows PowerShell
docker run --rm -it -v "${PWD}:/pwd" trufflesecurity/trufflehog github --repo https://github.com/trufflesecurity/test_keys
M1 および M2 Mac
docker run --platform linux/arm64 --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys
バイナリリリース
Download and unpack from https://github.com/trufflesecurity/trufflehog/releases
ソースからコンパイルする
git clone https://github.com/trufflesecurity/trufflehog.git
cd trufflehog; go install
インストールスクリプトの使用
curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin
インストールスクリプトを使用し、チェックサム署名を検証する(cosign がインストールされている必要があります)
curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -v -b /usr/local/bin
インストールスクリプトを使用して特定のバージョンをインストールする
curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin <ReleaseTag like v3.56.0>
🔐 アーティファクトの検証
すべてのアーティファクトにチェックサムが適用され、生成されたチェックサムファイルはcosignを使用して署名されます。
署名を検証するには、以下のツールが必要です:
検証手順は以下のとおりです:
-
必要なアーティファクトファイルと、releasesページから以下のファイルをダウンロードします。
- trufflehog_{version}_checksums.txt
- trufflehog_{version}_checksums.txt.pem
- trufflehog_{version}_checksums.txt.sig
-
署名を検証します:
cosign verify-blob <path to trufflehog_{version}_checksums.txt> \ --certificate <path to trufflehog_{version}_checksums.txt.pem> \ --signature <path to trufflehog_{version}_checksums.txt.sig> \ --certificate-identity-regexp 'https://github\.com/trufflesecurity/trufflehog/\.github/workflows/.+' \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" -
署名が有効であることが確認されたら、SHA256 サムがダウンロードした成果物と一致することを検証できます:
sha256sum --ignore-missing -c trufflehog_{version}_checksums.txt
{version} をダウンロードしたファイルのバージョンに置き換えてください。
あるいは、インストールスクリプトを使用している場合は、-v オプションを渡して署名検証を実行してください。
これには、インストールスクリプトを実行する前に Cosign バイナリがインストールされている必要があります。
🚀 クイックスタート
1: 検証済みのシークレットのみを対象にリポジトリをスキャンする
コマンド:
trufflehog git https://github.com/trufflesecurity/test_keys --results=verified
予想される出力:
🐷🔑🐷 TruffleHog. Unearth your secrets. 🐷🔑🐷
Found verified result 🐷🔑
Detector Type: AWS
Decoder Type: PLAIN
Raw result: AKIAYVP4CIPPERUVIFXG
Line: 4
Commit: fbc14303ffbf8fb1c2c1914e8dda7d0121633aca
File: keys
Email: counter <[email protected]>
Repository: https://github.com/trufflesecurity/test_keys
Timestamp: 2022-06-16 10:17:40 -0700 PDT
...
2: GitHub Org をスキャンして検証済みのシークレットのみを検出する
trufflehog github --org=trufflesecurity --results=verified
3: アーカイブ済みリポジトリを除外して GitHub Org をスキャンする
trufflehog github --org=trufflesecurity --exclude-archived
4: GitHubリポジトリをスキャンして検証済みのシークレットのみを取得し、JSON出力を得る
コマンド:
trufflehog git https://github.com/trufflesecurity/test_keys --results=verified --json
予想される出力:
{"SourceMetadata":{"Data":{"Git":{"commit":"fbc14303ffbf8fb1c2c1914e8dda7d0121633aca","file":"keys","email":"counter \[email protected]\u003e","repository":"https://github.com/trufflesecurity/test_keys","timestamp":"2022-06-16 10:17:40 -0700 PDT","line":4}}},"SourceID":0,"SourceType":16,"SourceName":"trufflehog - git","DetectorType":2,"DetectorName":"AWS","DecoderName":"PLAIN","Verified":true,"Raw":"AKIAYVP4CIPPERUVIFXG","Redacted":"AKIAYVP4CIPPERUVIFXG","ExtraData":{"account":"595918472158","arn":"arn:aws:iam::595918472158:user/canarytokens.com@@mirux23ppyky6hx3l6vclmhnj","user_id":"AIDAYVP4CIPPJ5M54LRCY"},"StructuredData":null}
...
TruffleHogは--jsonの代わりに--sarifを指定することでSARIFを出力することもできます。GitHub code scanningはSARIFをネイティブに理解するため、アップロードするとプルリクエストの差分やリポジトリのSecurityタブに検出結果がインラインで表示され、実行のたびに同じ検出結果を報告するのではなく、スキャン間で新規/修正済みとして検出結果を追跡できます。アップロード方法については、後述のTruffleHog Github Actionセクションを参照してください。なお、他の出力形式とは異なり、SARIFの結果はスキャン全体を通じてメモリにバッファリングされ、最後にまとめて書き出されます。これはSARIFがストリームではなく単一のJSONドキュメントを必要とするためです。通常のスキャンでは問題ありませんが、非常に多くの結果を生成するスキャンでは、それに比例して多くのメモリを使用します。
5: GitHubリポジトリとそのIssueおよびPull Requestをスキャンする
trufflehog github --repo=https://github.com/trufflesecurity/test_keys --issue-comments --pr-comments