ドキュメント

開示

Coroidが非公開の脆弱性の詳細をCoroid内に保持する仕組み、GitHubや通知、エクスポートで表示される内容、およびプライベートな修正の公開方法について説明します。

修正が利用可能になる前に脆弱性の詳細を公開すると、防御側よりも攻撃側に有利になります。セキュリティ機能は、非公開のすべての調査結果の詳細をCoroid内に保持し、いつそれらを公開するかを決定できるのは権限を持つユーザーのみです。

公開と非公開

各調査結果は以下の2種類に分類されます:

  • 公開:脆弱性がすでに公開されている場合。例えば、公開済みのアドバイザリーがある依存関係などです。修正用のプルリクエストではそのアドバイザリー名が記載されることがあります。
  • 非公開:上記以外のもの。例えば監査やCoroidレビュー、コードルールで自身のコード内で発見された問題、漏洩した認証情報などです。

調査結果が公開されるのは、撤回されていない公開済みのアドバイザリーにリンクされている場合、またはオーナーや管理者がそのプライベートな修正を公開した場合のみです。

公開のゲート

CoroidがCoroid外に公開するすべての内容は、まず公開のゲートを通過します。レビュー機関、インラインレビューコメントや要約、チェック結果とその注釈、pull requestのタイトルや説明、コミットメッセージ、課題コメント、Slackやメールメッセージ、エクスポートなどが対象です。このゲートでは、テキスト内のセキュリティ問題(確認済みか否かを問わず)を検出します。

パブリックリポジトリ、またはCoroidがその可視性を確認できないリポジトリの場合、非公開の調査結果はリンク付きの中立的な行に置き換えられます:

Coroidがセキュリティ上の問題の可能性を発見しました。詳細はCoroidに記載されています。

プライベートリポジトリの場合、テキストがそのまま公開されます。まだ確認されていない調査結果には「未検証のセキュリティ主張:Coroidがまだ検証していません」とマークされます。

認証情報は常にどこでも編集されます。詳細は漏洩したシークレット。

リポジトリの可視性

Coroidがリポジトリをプライベートと判断するのは、GitHubのイベントから、またはGitHubに直接問い合わせて得た、1時間以内の明確で最新の情報でプライベートであると判断された場合のみです。内部リポジトリはパブリックとみなされます。Coroidが判断できない場合は、そのリポジトリをパブリックと扱います。

通知とエクスポート

  • ベル:非公開の調査結果の場合、ベルには深刻度とプロジェクト名のみが記載されます。例えば「重大な調査結果に対処が必要」といった内容で、セキュリティ機能内の該当調査結果へのリンクが含まれます。
  • Slackとメールには調査結果に対処が必要であることとリンクのみが記載され、脆弱性やコードの詳細は含まれません。
  • エクスポート:CycloneDXエクスポートでは、公開済みの調査結果のみがリストアップされます。組織設定のバンドルには調査結果は一切含まれません。

パブリックリポジトリでの修正

プライベートリポジトリでは、非公開の調査結果に対する修正は通常のpull requestとして処理されます。そのコミットメッセージや説明には攻撃に関する内容ではなく修正内容が記載されます。

パブリックリポジトリ、またはCoroidがその可視性を確認できないリポジトリの場合、パブリックなpull request、ブランチ、コミットによって修正前に問題が露呈してしまうため、Coroidはそこにそのような修正をコミットしません。修正タスクは調査結果の詳細を明記せずに停止し、準備された変更内容は「プライベートな修正」として保持されます。プライベートな修正。

プライベートな修正

プライベートな修正が適用された調査結果は、以下の「プライベートな修正」に表示されますプライベートな修正。オーナーと管理者のみがこれを閲覧できます。

  • 修正内容をダウンロードでは準備された変更内容が「ファイルとして保存され、自分でレビューまたは適用できます。.patchファイルとして保存され、自分でレビューまたは適用できます。
  • 公開ではその調査結果が現在開示されたことが記録され、準備された変更内容をそのまま適用し、pull requestを開くタスクが作成されます。「公開」をクリックするのは、修正内容と問題が公開される準備が整った時、例えば調整済みのリリース日が来た時などです。Coroidから公開できないほど大きな修正内容も、手動でダウンロードして適用することは可能です。
  • 破棄では準備された変更内容が削除されます。

公開と破棄の操作は組織の監査ログに記録され、どちらの場合もCoroidから準備された変更内容が削除されます。

誰も公開または破棄しないプライベートな修正は、限定された期間のみ保持されます。180日経過するとオーナーと管理者に通知され、365日経過すると削除され、その旨が通知されます。

計画済み

  • プロジェクトごとのセキュリティ連絡先、オーナーや管理者とともにプライベートな修正をレビューし公開できるユーザーです。
  • GitHubのプライベートフォーク:GitHubリポジトリのセキュリティアドバイザリー内のプライベートフォークで修正を準備し、リグレッションテストを実施する方法。Coroid内に保持するのではありません。
  • メンテナーへのレポート:依存ライブラリのコードに脆弱性が存在する場合、そのメンテナー向けに非公開の報告書を作成し、これを送信するのは人間のみです。