Skip to main content

一般的なセキュリティ インシデントの調査領域

GitHubで確認する主要な表面やツールなど、複数の攻撃ベクトルにわたるセキュリティ インシデントの調査に関するリファレンス。

このリファレンス記事では、使用する GitHub ツールと、セキュリティ インシデントに対応するタイミングを確認する GitHub サーフェスについて説明します。 この記事を使用して、主要な脅威カテゴリ全体の調査をガイドします。

封じ込め戦略など、セキュリティ インシデントに対応する方法の完全なガイダンスについては、セキュリティ インシデントへの対応 を参照してください。

重要

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

実際のセキュリティ インシデントには、1 つの攻撃ベクトルが含まれることはほとんどありません。 資格情報の侵害により、悪意のあるコードが挿入され、データの流出が可能になる可能性があります。 脅威シグナルを調査するときは、侵害の新しいインジケーターを明らかにし、脅威モデルの理解が進化するにつれて、他の調査領域に移動し、封じ込め、より深い調査と修復をループ処理する準備をします。

資格情報の公開または侵害

このセクションは、次の場合に適用される場合があります。

トークンまたはキーが盗まれたり悪用されたり、 secret scanning アラートを受け取ったり、コード、ログ、またはパブリック リポジトリで公開されている資格情報が見つかった可能性があります。

確認すべきこと

  • 監査ログで次の情報を検索します。
    • 侵害されたトークンによって実行されるアクション。そのトークンに関連付けられているすべてのイベントを検索します。 「アクセス トークンによって実行される監査ログ イベントの識別」を参照してください。
    • 予期しないアクターまたは不明な IP アドレスによって実行されるアクション (IP アドレスの漏えいが有効になっている場合)。
  • secret scanningアラートで関連する調査結果を確認し、漏洩したシークレットの場所、公開、有効性を評価します。
  • 企業または組織のセキュリティの概要を使用して、リポジトリ全体の傾向やアクティビティを特定します。
  • GitHubコード検索を使用して、リポジトリ間でコード、.env ファイル、または構成ファイルで公開されているシークレットを確認します。

主要なツール

ツールPurpose
監査ログトークンの使用状況をトレースする
セキュリティの概要組織レベルまたはエンタープライズ レベルのセキュリティ アラートとアクティビティ (特に secret scanning アラート) を表示する
[
GitHub コード検索](/code-security/reference/security-incident-response/investigation-tools#github-code-search)コードで公開されている資格情報を検索する

主要なリソース

未承認のアクセスとアカウントの侵害

このセクションは、次の場合に適用される場合があります。

異常なログイン アクティビティ、予期しないコミットまたは変更、または疑わしいアカウントの動作が検出されました。

確認すべきこと

  • 監査ログで 、メンバーのアクセス、アクセス許可、またはロールの変更を検索します。 たとえば、 org.add_memberrepo.add_memberorg.add_outside_collaboratororg.update_memberrepo.update_memberrole.createrole.updateなどのイベントを探します。
  • 監査ログ内の疑わしいイベントの場合は、 アクターを特定します。 アクターが不明なユーザー、侵害された可能性のあるアカウント、または認識されないアプリであるかどうかを確認します。
  • IP アドレスの可視性が有効になっている場合は、異常なイベントまたは疑わしいアクティビティに関連付けられている IP アドレス が認識されているかどうかを確認します。
  • 監査ログで、 新しく作成されたデプロイ キーまたはアプリ に関連するイベント ( public_key.createintegration_installation.createなど) を検索します。
  • 監査ログで、新しいパブリック リポジトリやリポジトリの可視性の変更 (プライベートからパブリック) などの 予期しないリポジトリの変更 ( repo.createrepo.accessなど) を確認します。
  • アクティビティ ビュー (リポジトリ レベル) を使用して、 最近のプッシュのタイムラインを作成します。 予期しないユーザーからのプッシュや強制プッシュ、または通常とは異なるブランチ名がないか探します。

主要なツール

ツールPurpose
監査ログアクション、アクター、IP アドレスの検索とクロスチェック
アクティビティ ビュー特定のリポジトリのアクティビティを確認する

主要なリソース

データ窃盗

このセクションは、次の場合に適用される場合があります。

大量のダウンロード、通常とは異なる API アクティビティ、または外部に表示されるデータのレポートを受信したことを検出しました。

確認すべきこと

  • 大量の git 操作 (git.clonegit.fetch) または API 要求 (特に、未知のアクター (actor) または IP アドレス (IP アドレスの可視性が有効な場合) からの監査ログを検索します。これは、一括データ収集を示します。
    • 監査ログ内の Git イベントには、他の監査ログ イベントとは異なる特別なアクセス要件と保持ポリシーがあることに注意してください。 GitHub Enterprise Cloudの場合、REST API を使用して Git イベントにアクセスでき、監査ログをストリーミングしている場合を除き、データは 7 日間保持されます。 GitHub Enterprise Serverの場合、Git イベントは監査ログ構成で有効にする必要があり、検索結果には含まれません。
    • 同様に、監査ログで API アクティビティをキャプチャするには、以前の構成が必要であり、既定では使用できません。
  • 監査ログで、リポジトリのレプリケーションまたは公開イベント (リポジトリの可視性の変更 (プライベートからパブリック)、予期しない新しいリポジトリ (新しいパブリック リポジトリなど)、名前の変更または転送中のリポジトリ (repo.createrepo.access (可視性の変更)、 repo.renamerepo.transferなど) を確認します。
  • 送信メカニズム (たとえば、作成または更新される webhook (監査ログ内のhook.create または同様のイベント) を確認し、Webhook が認識できないドメインを指しているかどうかを確認します。

主要なツール

ツールPurpose
監査ログ関連するアクションを検索する

主要なリソース

悪意のあるコードとワークフローの変更

このセクションは、次の場合に適用される場合があります。

リポジトリに疑わしいコードが見つかったか、セキュリティ研究者から問題が報告されたか、予期しないワークフローの動作に気付きました。

確認すべきこと

  • [ アクション] タブで、予期しないワークフローの実行 、特に未知のユーザーや異常な時間にトリガーされるワークフローの実行を確認します。
  • ワークフロー実行ログで疑わしい出力がないか調べます。
  • 既定の GITHUB_TOKEN、 personal access tokens、 GitHub App トークン、シークレットとして格納されているその他の資格情報など、疑わしいワークフロー実行にアクセスできる資格情報を確認します。 GITHUB_TOKENはジョブにスコープが設定され、ジョブが完了すると有効期限が切れますが、他の資格情報には独自のライフサイクルがあり、ジョブで期限切れになりません。 漏えいした可能性のある認証情報は、漏えいしたものとみなして、直ちにローテーションまたは置き換えを行う必要があります。
  • ワークフロー実行ログでは、ワークフロー ステップからの標準出力のみがキャプチャされることに注意してください。 標準出力に書き込まないアクティビティ (ネットワーク呼び出し、ファイル システムの変更、バックグラウンド プロセスなど) はログに表示されません。 より包括的な調査を行う場合は、監査ログ イベントと関連付けます。
  • GitHubコード検索を使用して、疑わしいファイルやコードの追加 (特にワークフロー ファイル (.github/workflows/)、シェル スクリプト、または構成ファイル) を検索します。
  • [アクティビティ] ビューを使用して、通常でないブランチ名へのプッシュ、強制プッシュ、予想外のアクターからのプッシュを確認します。
  • 監査ログで、セキュリティ設定または無効化アクションの変更を確認します ( repository_ruleset.destroyrepository_secret_scanning_push_protection.disable、その他の .delete.disable.destroy イベントなどのイベントを探します)。
  • 追加される新しいセルフホステッド ランナーに関連するイベント ( org.register_self_hosted_runnerrepo.register_self_hosted_runner イベントなど) の監査ログを確認します。
  • ワークフローで使用されるに関連するアドバイザリについては、またはを確認してください。

主要なツール

ツールPurpose
ワークフローの実行とログワークフローの実行を確認し、ログ出力を検査する
アクティビティ ビュー予期しないプッシュ、強制プッシュ、または未知のアクターからのプッシュを特定する
[
GitHub コード検索](/code-security/reference/security-incident-response/investigation-tools#github-code-search)疑わしいコード パターンを検索する
監査ログアクションでフィルター処理してセキュリティ設定の変更を見つける

主要なリソース

メモ

ランナー IP アドレスは共有インフラストラクチャから動的に割り当てられ、関連のないアクティビティが原因でフラグが設定される可能性があります。 詳細については、「トラブルシューティングのワークフロー」を参照してください。

マルウェアとサプライ チェーン攻撃

このセクションは、次の場合に適用される場合があります。

マルウェアまたは依存関係のアラートを受け取った、悪意のあるパッケージが疑われる、またはプロジェクトに予期しない依存関係があることに気付いた。

確認すべきこと

  • 悪意のあるパッケージ (パッケージ名、影響を受けるバージョン、修正プログラムが適用されたバージョンなど) に関する詳細と修復手順を示す Dependabot マルウェア アラートを確認します。 現在、 npm エコシステム内のパッケージでのみサポートされています。
  • GitHub Advisory Database を検索して、GitHubが、プロジェクトで使用している依存関係 (または依存関係のバージョン) に関するアドバイザリを報告しているかどうかを確認します。 具体的には、マルウェアの場合は、アドバイザリ データベースで type:malware 検索します。
  • GitHubコード検索を使用して、組織全体で疑わしいパッケージまたはアクションへの参照を検索します。
  • リポジトリの依存関係グラフを確認して、新しい依存関係または予期しない依存関係を特定します。
  • アクティビティ ビューとコミット履歴を使用して、依存関係マニフェストまたはロックファイル ( package.jsonpackage-lock.jsonGemfile.lockなど) に対する最近の変更を確認します。 責任のビューとプル要求を確認して、変更を導入したユーザーと、変更がレビューされたかどうかを特定します。
  • 組織のセキュリティの概要で、最近作成されたセキュリティ アラートを確認します。

主要なツール

ツールPurpose
[
GitHub コード検索](/code-security/reference/security-incident-response/investigation-tools#github-code-search)疑わしいパッケージまたはアクションへの参照を検索する
依存関係グラフ依存関係を視覚化して確認する
[
Dependabot アラート](/code-security/how-tos/manage-security-alerts/manage-dependabot-alerts/viewing-and-updating-dependabot-alerts)脆弱な依存関係に関連するアラートを確認する
GitHub Advisory Database
type:malware を検索します
アクティビティ ビューリポジトリへの最近のプッシュを確認する
セキュリティの概要組織全体または企業全体の最近のセキュリティ アラートを確認する

主要なリソース

詳細については、次を参照してください。