シークレットスキャンにおける Hugging Face と TruffleHog のパートナーシップ

Hugging Face は Truffle Security と提携し、オープンソースのシークレットスキャンツールである TruffleHog をプラットフォームに統合しました。このパートナーシップは、公開リポジトリやプライベートリポジトリにおける認証情報、トークン、暗号鍵などの機密情報の偶発的な漏洩を防止することを目的としています。

自動セキュリティスキャンパイプライン

Hugging Face は自動セキュリティスキャンパイプラインを拡張し、シークレットスキャンに TruffleHog を組み込みました。プラットフォームは現在、すべてのリポジトリとコミットに対して 3 種類のスキャンを実施しています。

  • Malware Scanning: ClamAV を利用して既知のマルウェアシグネチャを検出します。
  • Pickle Scanning: picklescan を使用して pickle ファイル内の悪意ある実行コードを特定します。
  • Pickle Scanning: picklescan を使用して pickle ファイル内の悪意ある実行コードを特定します。
  • Secret Scanning: TruffleHog を使用して、リポジトリへのプッシュごとに新規または変更されたすべてのファイルに対して trufflehog filesystem コマンドを実行します。

検証済みシークレット(プロバイダーへの認証に有効であることが確認されたシークレット)が検出された場合、Hugging Face はユーザーにメールで通知します。同社は、検証されていないシークレットでも、プロバイダーのダウンタイムなど技術的な理由で検証に失敗する可能性があるため、脅威となり得ることに言及しています。

TruffleHog のネイティブ Hugging Face スキャナー

TruffleHog には現在、Hugging Face 用のネイティブ統合が含まれており、ユーザーやセキュリティチームが自分のアカウントデータを積極的にスキャンできるようになっています。この統合は、モデル、データセット、Spaces に加えて、関連するプルリクエスト(PR)やディスカッションもスキャンできます。

スキャン機能と制限事項

ネイティブスキャナーは特定のユーザー、組織、または個別のモデル、データセット、Spaces を対象にできますが、現在のところ Large File Storage(LFS)に保存されたファイルはスキャンしません。LFS のサポートは TruffleHog チームによって開発中です。

使用コマンド

ユーザーは以下のコマンドを使用してアカウントデータをスキャンできます。

  • User-level scan: trufflehog huggingface --user <username>
  • Organization-level scan: trufflehog huggingface --org <orgname>
  • Organization and User scan: trufflehog huggingface --user <username> --org <orgname>
  • Targeted scans: --model <model_id>--dataset <dataset_id>--space <space_id> などの特定フラグを使用して特定のアセットをスキャンできます。

オプションフラグ --include-discussions--include-prs を指定すると、Hugging Face のディスカッションや PR コメントをスキャンできます。

認証は --token フラグで行うか、HUGGINGFACE_TOKEN 環境変数を設定することで処理できます。

Sources