このリファレンス記事では、使用する GitHub ツールと、セキュリティ インシデントに対応するタイミングを確認する GitHub サーフェスについて説明します。 この記事を使用して、主要な脅威カテゴリ全体の調査をガイドします。
**封じ込め戦略**など、セキュリティ インシデントに対応する方法の完全なガイダンスについては、[AUTOTITLE](/code-security/tutorials/secure-your-organization/responding-to-security-incidents) を参照してください。
重要
各ツール (および提供されるデータ) の可用性は、プラン、ロール、アクセス許可、機能の有効化、インシデント前の構成 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_member、repo.add_member、org.add_outside_collaborator、org.update_member、repo.update_member、role.create、role.updateなどのイベントを探します。 - 監査ログ内の疑わしいイベントの場合は、 アクターを特定します。 アクターが不明なユーザー、侵害された可能性のあるアカウント、または認識されないアプリであるかどうかを確認します。
- IP アドレスの可視性が有効になっている場合は、異常なイベントまたは疑わしいアクティビティに関連付けられている IP アドレス が認識されているかどうかを確認します。
- 監査ログで、 新しく作成されたデプロイ キーまたはアプリ に関連するイベント (
public_key.create、integration_installation.createなど) を検索します。 - 監査ログで、新しいパブリック リポジトリやリポジトリの可視性の変更 (プライベートからパブリック) などの 予期しないリポジトリの変更 (
repo.create、repo.accessなど) を確認します。 - アクティビティ ビュー (リポジトリ レベル) を使用して、 最近のプッシュのタイムラインを作成します。 予期しない関係者からのプッシュや強制プッシュ、通常とは異なるブランチ名を探します。
主要なツール
| ツール | Purpose |
|---|---|
| 監査ログ | アクション、アクター、IP アドレスの検索とクロスチェック |
| アクティビティ ビュー | 特定のリポジトリのアクティビティを確認する |
主要なリソース
データ窃盗
このセクションは、次の場合に適用される場合があります。
大量のダウンロード、通常とは異なる API アクティビティ、または外部に表示されるデータのレポートを受信したことを検出しました。
確認すべきこと
- 大量の git 操作 (
git.clone、git.fetch) または API 要求 (特に、未知のアクター (actor) または IP アドレス (IP アドレスの可視性が有効な場合) からの監査ログを検索します。これは、一括データ収集を示します。- 監査ログ内の Git イベントには、他の監査ログ イベントとは異なる特別なアクセス要件と保持ポリシーがあることに注意してください。 GitHub Enterprise Cloudの場合、REST API を使用して Git イベントにアクセスでき、監査ログをストリーミングしている場合を除き、データは 7 日間保持されます。 GitHub Enterprise Serverの場合、Git イベントは監査ログ構成で有効にする必要があり、検索結果には含まれません。
- 同様に、監査ログで API アクティビティをキャプチャするには、以前の構成が必要であり、既定では使用できません。
- 監査ログで、リポジトリのレプリケーションまたは公開イベント (リポジトリの可視性の変更 (プライベートからパブリック)、予期しない新しいリポジトリ (新しいパブリック リポジトリなど)、名前の変更または転送中のリポジトリ (
repo.create、repo.access(可視性の変更)、repo.rename、repo.transferなど) を確認します。 - 送信メカニズム (たとえば、作成または更新される webhook (監査ログ内の
hook.createまたは同様のイベント) を確認し、Webhook が認識できないドメインを指しているかどうかを確認します。
主要なツール
| ツール | Purpose |
|---|---|
| 監査ログ | 関連するアクションを検索する |
主要なリソース
悪意のあるコードとワークフローの変更
このセクションは、次の場合に適用される場合があります。
リポジトリに疑わしいコードが見つかったか、セキュリティ研究者から問題が報告されたか、予期しないワークフローの動作に気付きました。
確認すべきこと
- [ アクション] タブで、予期しないワークフローの実行 、特に未知のユーザーや異常な時間にトリガーされるワークフローの実行を確認します。
- ワークフロー実行ログで疑わしい出力がないか調べます。
- GitHubコード検索を使用して、疑わしいファイルやコードの追加 (特にワークフロー ファイル (
.github/workflows/)、シェル スクリプト、または構成ファイル) を検索します。 - [アクティビティ] ビューを使用して、通常でないブランチ名へのプッシュ、強制プッシュ、予想外のアクターからのプッシュを確認します。
- 監査ログで、セキュリティ設定または無効化アクションの変更を確認します (
repository_ruleset.destroy、repository_secret_scanning_push_protection.disable、その他の.delete、.disable、.destroyイベントなどのイベントを探します)。 - 追加される新しいセルフホステッド ランナーに関連するイベント (
org.register_self_hosted_runner、repo.register_self_hosted_runnerイベントなど) の監査ログを確認します。 - ワークフローで使用される
に関連するアドバイザリについては、 または を確認してください。
主要なツール
| ツール | Purpose |
|---|---|
| ワークフローの実行とログ | ワークフローの実行を確認し、ログ出力を検査する |
| アクティビティ ビュー | 予期しないプッシュ、強制プッシュ、または未知のアクターからのプッシュを特定する |
| [ |
GitHub コード検索](/code-security/reference/security-incident-response/investigation-tools#github-code-search) | 疑わしいコード パターンを検索する |
| 監査ログ | アクションでフィルター処理してセキュリティ設定の変更を見つける |
主要なリソース
マルウェアとサプライ チェーン攻撃
このセクションは、次の場合に適用される場合があります。
マルウェアまたは依存関係のアラートを受け取った、悪意のあるパッケージが疑われる、またはプロジェクトに予期しない依存関係があることに気付いた。
確認すべきこと
- 悪意のあるパッケージ (パッケージ名、影響を受けるバージョン、修正プログラムが適用されたバージョンなど) に関する詳細と修復手順を示す Dependabot マルウェア アラートを確認します。 現在、
npmエコシステム内のパッケージでのみサポートされています。 -
GitHub Advisory Database
を検索して、GitHubが、プロジェクトで使用している依存関係 (または依存関係のバージョン) に関するアドバイザリを報告しているかどうかを確認します。 具体的には、マルウェアの場合は、アドバイザリ データベースで
type:malware検索します。 - GitHubコード検索を使用して、組織全体で疑わしいパッケージまたはアクションへの参照を検索します。
- リポジトリの依存関係グラフを確認して、新しい依存関係または予期しない依存関係を特定します。
- アクティビティ ビューとコミット履歴を使用して、依存関係マニフェストまたはロックファイル (
package.json、package-lock.json、Gemfile.lockなど) に対する最近の変更を確認します。 責任のビューとプル要求を確認して、変更を導入したユーザーと、変更がレビューされたかどうかを特定します。 - 組織のセキュリティの概要で、最近作成されたセキュリティ アラートを確認します。
主要なツール
| ツール | Purpose |
|---|---|
| [ |
GitHub コード検索](/code-security/reference/security-incident-response/investigation-tools#github-code-search)| 疑わしいパッケージまたはアクションへの参照を検索する |
| 依存関係グラフ | 依存関係を視覚化して確認する |
|
Dependabot アラート | 脆弱な依存関係に関連するアラートを確認する |
| GitHub Advisory Database|
type:malware を検索します |
| アクティビティ ビュー | リポジトリへの最近のプッシュを確認する |
| セキュリティの概要 | 組織全体または企業全体の最近のセキュリティ アラートを確認する |