Skip to main content

セキュリティ インシデントの調査ツール

セキュリティ インシデントの調査に使用できるコア GitHub ツール、各ツールの用途、使用可能なデータに影響する一般的な考慮事項。

このリファレンスを使用して、セキュリティ調査中に使用する GitHub ツール、各ツールが回答できる質問、および表示できるデータに影響する可能性のある要因を決定します。

メモ

各ツール (および提供されるデータ) の可用性は、 GitHub プラン、ロールとアクセス許可、機能の有効化、インシデント前の構成によって異なります (たとえば、監査ログ ストリーミングと IP アドレスの漏えいには事前に設定する必要があります)。

アクティビティ ビュー

用途

  • 特定のリポジトリ内 のアクティビティの概要 (マージ、プッシュ、強制プッシュ、ブランチの作成、削除など) を、定義された期間にわたって特定のアクターに属性付けして取得します。
  • 疑わしいコードの外観を 関連するプッシュまたはマージと関連付ける。
  • 変更 がいつ 行われたか、 が行ったか、 どのブランチで行われたかについての質問に回答し、差分またはコミット履歴を調べる。

Permissions

リポジトリへの読み取りアクセス。

主要なリソース

注意事項と制限事項

  • アクティビティ ビューは、初期ナビゲーションと相関サーフェスとして最適に使用されます。これは、生の監査ログのエクスポートと同じ完全性またはクエリ能力を持ちません。
  • 一部のインシデントでは、リポジトリまたは組織間の相関関係が必要であり、監査ログの方が簡単な場合があります。

監査ログ

用途

  • 企業または組織全体で 何が変更されたか、 いつ誰が変更されたか についての質問に回答します。
  • 侵害を有効にした可能性があるイベントを調査するか、メンバーシップ、ロール、アクセス許可の変更、アクセス トークンの生成または使用などのイベントを示します。
  • セキュリティ関連のアクションをアクター (ユーザーまたは統合) に属性付けし、調査タイムラインを作成します。
  • アクター、アクション、IP アドレス (有効な場合)、またはトークンでフィルター処理して、疑わしいアクティビティまたはトレース トークンの使用状況を識別します。
  • 複数のリポジトリまたは組織間でアクティビティを関連付ける。

Permissions

  • 組織の監査ログを表示するには、組織の所有者である必要があります。
  • エンタープライズ監査ログを表示するには、エンタープライズ管理者である必要があります。
  • セキュリティ ログ (個人用アカウント) を表示するには、アカウント所有者である必要があります。
  • 外部のセキュリティ情報イベント管理 (SIEM) システム、ログ管理システム、またはその他のツールやサービスにエクスポートされた監査ログ データを表示するには、そのシステムにアクセスする必要があります。

主要なリソース

注意事項と制限事項

  • GitHub には、 エンタープライズ組織、ユーザーの セキュリティ ログの 3 つの監査ログが用意されています。
  • GitHub監査ログ UI には、フィルター処理と検索機能が制限されています。 このため、企業は、より高度なクエリを実行するために、エンタープライズ監査ログを外部 SIEM またはログ管理システムに ストリーミング することをお勧めします。
    • 外部 SIEM またはログ管理システムへの監査ログ ストリーミングには、事前の構成が必要です。 「企業の監査ログのストリーミング」を参照してください。
    • 監査ログ ストリーミングがないと、組織やリポジトリ間でイベントを関連付けたり、特定のトークンから関連するすべてのイベントにピボットしたりするなど、より複雑なクエリを実行することはできません。
    • Git イベント データはストリームに含まれます。
  • API 要求イベントをストリーミングすることをお勧めします。これには、以前の構成が必要です。 「企業の監査ログのストリーミング」を参照してください。
  • GitHub Enterprise Cloud上の企業の場合は、監査ログに IP アドレスを表示することをお勧めします。これには、以前の構成が必要です。 「Enterprise の監査ログに IP アドレスを表示する」を参照してください。
  • GitHubプランによって、データの可用性とデータ保持のオファリングが異なります。
    • GitHub Free プランと GitHub Team プランでは、API アクティビティまたは Git イベントをまったく表示できません。
    • スタンドアロン組織 (企業に所属していない組織) は、監査ログをストリーミングできない、API 要求イベントを表示できない、Git イベント データの場合は 7 日間に制限されています。
    • GitHub Enterprise Cloud上の企業の場合:
      • 企業で Enterprise Managed Users を使用している場合、監査ログにはユーザー セキュリティ ログ (ログイン アクティビティやトークンの使用状況など、ユーザー アカウントに関連するイベント) も含まれます。
      • 企業がEnterprise Managed Users場合、GitHub監査ログには、エンタープライズ アカウントとその中の組織に関連するイベントのみが含まれます。
  • 監査ログには ページ ビューやリポジトリ参照テレメトリは含まれません。

依存関係グラフ

用途

  • リポジトリが 脆弱または侵害されたパッケージ (または バージョン) に依存しているかどうかを確認します。
  • インシデント中に導入された可能性のある 新しい依存関係または疑わしい依存関係 を確認します。
  • エコシステムまたは関係 (直接的または推移的) によって依存関係をフィルター処理して調査します。
  • 監査のために、または証拠を保持するために、ソフトウェア部品表 (SBOM) をエクスポートします。

Permissions

  • リポジトリへのアクセスを書き込むか、維持します。

主要なリソース

注意事項と制限事項

  • 依存関係グラフは、サポートされているマニフェスト/ロック ファイル (およびオプションのビルド時の申請) から生成されるため、不完全であったり、実際にビルドおよびデプロイされたものとは異なる場合があります。 最も正確な情報を得るためには、特に CI/ビルド中に解決される依存関係について、依存関係グラフをビルド時の依存関係の提出(SBOM などの他のビルドの証跡を含む)で補完する必要があります。
          GitHub コード検索

用途

  • 既知の悪意のあるワークフローやパッケージ名など、リポジトリ間で侵害インジケーター (IoC) を検索します。
  • 漏洩したシークレットや悪意のあるコード スニペットなどの疑わしいコード パターンが組織全体または企業の他のリポジトリに表示されるかどうかを確認することで、潜在的な爆発半径の範囲をすばやく指定します。
  • インシデント中に役立つ可能性のあるさまざまな修飾子で検索の範囲を指定します。次に例を示します。
    • ( repo:org:enterprise: 修飾子を使用して) 特定のリポジトリ、組織、または企業内で検索します。
    • 特定のファイル パス (path:.github/workflows repo:ORG-NAME/REPO-NAME) 内で検索します。

権限が必要です

  • パブリック リポジトリ間で検索するには、 GitHub アカウントにサインインしている必要があります。
  • プライベート リポジトリ間で検索するには、それらのリポジトリへの読み取りアクセス権が必要です。

主要なリソース

注意事項と制限事項

  • 正規表現検索をサポートします。
  • リポジトリの既定のブランチのみを検索します。 疑わしいコードが既定以外のブランチで導入され、マージされていない場合、コード検索では見つかりません。
  • コード検索を使用して、パターンまたは IoC が存在するかどうかを判断できますが、コードがいつ追加されたか、誰によって追加されたかなどのコンテキストは提供されません。 コード検索は、監査ログ、アクティビティ ビュー、リポジトリの非難ビュー、コミット履歴、プル要求履歴などの他のツールと組み合わせて使用する必要があります。

セキュリティの概要とセキュリティアラート

用途

  • 組織内または企業のリポジトリ全体のすべてのセキュリティ アラート (secret scanning、 code scanning、 Dependabot アラート) の概要を確認します。
  • 既に検出された GitHub をトリアージし、影響を受けるリポジトリを特定します。
  • インシデント中に作成された新しいアラートを追跡します (アクティブな悪用または拡散を示す可能性があります)。

権限が必要です

  • エンタープライズ レベルの組織のデータを表示するには、エンタープライズ管理者が関連する組織の組織所有者またはセキュリティ マネージャーの役割を持っている必要があります。
  • 組織レベルでリポジトリのデータを表示するには、組織の所有者またはセキュリティ マネージャーの役割が必要です。

主要なリソース

注意事項と制限事項

  • 漏洩したシークレット、脆弱なコード、脆弱な依存関係、マルウェアに関するアラートは、インシデントの前に関連する機能が有効で構成されている場合にのみ表示されます。

ワークフローの実行とログ

用途

  • 特定の時点で CI/CD で実行された内容 (実行されたコマンド、インストールされている依存関係など) を確認します。
  • 不審なワークフローの実行 (不慣れなユーザーや通常とは異なるタイミングでトリガーされたものなど) を調査して、実行されたアクション、アクセスされたシークレット、実行されたコードを確認します。
  • ワークフローがシークレットにアクセスできるかどうかを判断します。

権限が必要です

  • リポジトリへの読み取りアクセス。

主要なリソース

注意事項と制限事項

  • GitHub は、ワークフロー ログからシークレットを自動的に編集します。
  • 既定では、ワークフロー ログは GitHub によって 90 日間保持されますが、この保持期間を長く (プライベート リポジトリの場合は最大 400 日) 構成できます。