ソフトウェアサプライチェーンでの秘密の出会い

全ての記事

ソフトウェア サプライ チェーンのリスクの 1 つは機密漏洩です。秘密はソフトウェア サプライ チェーンのいたるところにあります。開発者と CI/CD パイプラインは、SCM、パイプライン、アーティファクト レジストリ、クラウド環境、および外部サービスにアクセスするためにシークレットを使用する必要があります。そして、秘密があちこちにある場合、漏洩するのは時間の問題です。 

このリスクは十分に認識されており、多くのソフトウェア サプライ チェーン フレームワークは、シークレット スキャンとシークレットの自己期限切れを要求することでこのリスクに対処しています。

では、セキュリティ専門家としてこれらのガードレールを設置した場合、何が問題になる可能性があるでしょうか? 

今週、秘密のスキャン ツールを調査しているときに、1 つの答えを見つけました。答えは簡単です。シークレット スキャナーはシークレットのパターンを検索するため、シークレットの形式が変わると検出に失敗する可能性があります。そして、これはまさに、GitHub が新しいセキュリティ機能を導入したときに起こったことです。 きめの細かいトークン。このベータ機能は、秘密漏洩のリスクを軽減する GitHub の方法の 1 つです。個人アクセス トークンの許可を制限すると、これらの秘密が侵害された場合のリスクも制限されます。

GitHub のスクリーンショット

新しいトークンの形式は少し異なることがわかりましたが、古いトークンの形式は次のようなものでした。

ghp_123456789012345678901234567890123456

新しいトークンの形式は次のようになります。

github_pat_123456789012345678901234567890123456789012345678901234567890…

プレフィックスとシークレットの長さは両方とも異なります。 

そして実際、一部の秘密スキャナーは新しい形式を検出できません。

実験のために、シークレットを含む Dockerfile と Trivy アクションを実行するワークフローを含むリポジトリを作成しました。実験の開始時の Dockerfile は次のようになります。

GitHub のスクリーンショット

以下は、新しくフォーマットされたシークレットを検出する GitHub Secret Scanner のスナップショットです。

GitHiub のスクリーンショット

ご覧のとおり、GitHub のシークレット スキャナーはシークレットを検出しますが、コード スキャン セクションにアラートは表示されません。

ツールが正しく設定されていることを確認するために、Dockerfile (以下を参照) に従来のシークレットを追加し、スキャンを再度実行します。コード スキャン アラートが表示されるようになりました (クラシック シークレットのみ)。

GitHub のスクリーンショット

一方、Github のスキャナーは、次の 2 つの秘密を検出します。

GitHub のスクリーンショット

Trivy のセキュリティ問題をオープンしました。 Trivy のチームは、これは脆弱性でもセキュリティ上の問題でもないと回答しました。あとは問題を解決するだけでした。 

この実験は多くの懸念を引き起こします。

  • GitHub ユーザーは、なぜ新機能によってトークン形式が変更されるのではないかと疑う必要があるのでしょうか? 
  • シークレットがランダムな文字列のように見えるはずであることを考えると、なぜ GitHub ユーザーはシークレットの形式を気にする必要があるのでしょうか?
  • GitHub はそのような変更について顧客に最新情報を提供する責任を負うべきでしょうか? 
  • このシークレット検出の失敗は、GitHub のきめ細かいシークレットの脆弱性なのか、Trivy の脆弱性なのか、それとも Aqua Security の見解ではまったく脆弱性ではないのでしょうか? 
  • Trivy の背後にある会社である Aqua Security が更新を担当する必要がありますか? 
  • Trivy はオープンソース プロジェクトであり、現状のまま提供されているため、Trivy によって保護されているパイプラインから機密が漏洩した場合、誰かが責任を負うでしょうか?それは誰でしょう? GitHub?アクアセキュリティ?トリビーユーザー? 
  • この実験は、ソフトウェア サプライ チェーンを保護するためにインストールされたセキュリティ ツールを信頼することについて何を教えてくれますか? 

これらの質問はオープンのままとさせていただきます。

ただし、明らかなことが 1 つあります。ソフトウェア サプライ チェーンの保護は複雑であり、この任務を永続的に成功させるには高度な専門性を備えたコミュニティが必要です。

この投稿は Avi Waxman、Scribe Security のインターン

このコンテンツは、エンドツーエンドのソフトウェア サプライ チェーン セキュリティ ソリューションの大手プロバイダーである Scribe Security によって提供されており、ソフトウェア サプライ チェーン全体のコード成果物とコード開発および配信プロセスに最先端のセキュリティを提供しています。 詳しくはこちら。