開発サプライチェーンを標的とした情報窃取攻撃:漏洩したCI/CDクレデンシャルからの侵入とフォレンジック追跡
はじめに
近年、サプライチェーン攻撃の脅威は増大の一途を辿っており、特に開発環境を狙った攻撃は組織の根幹を揺るがす可能性があります。本稿では、CI/CDパイプラインのクレデンシャル漏洩を起点とした情報窃取事件の逮捕事例を基に、攻撃者の技術的な侵入経路、悪用された手法、そしてデジタルフォレンジックによる追跡過程を詳細に分析します。この分析を通じて、セキュリティアナリストが実務で直面する可能性のある脅威への理解を深め、効果的な防御策構築の一助となることを目指します。
事件の概要と攻撃対象
本事例は、あるソフトウェア開発企業において、CI/CD (Continuous Integration/Continuous Deployment) パイプラインのアクセス権限を持つ開発者アカウントのクレデンシャルが窃取され、これにより開発リポジトリ内のソースコードや機密設定ファイルが外部に持ち出された事件です。最終的に、攻撃グループは、窃取した情報をもとに別の企業への侵入を試みたところで逮捕に至りました。
攻撃者は、フィッシングメールを通じて特定の開発者からGitリポジトリおよびCI/CDツール(Jenkins, GitLab CIなど)にアクセスするためのAPIトークンやSSHキーを含むクレデンシャルを詐取しました。このクレデンシャルは、組織の内部ネットワークおよびクラウド環境における広範なアクセス権限を有しており、攻撃者はこれを利用してシステムに侵入しました。
攻撃手法の詳細分析
攻撃は以下のTTPs (Tactics, Techniques, Procedures) を用いて実行されました。
1. 初期アクセスとクレデンシャル窃取 (TA0001, TA0006)
- フィッシング: 攻撃者は、標的の開発者に合わせた巧妙なスピアフィッシングメールを送信しました。このメールは、正規のGitリポジトリの通知を装い、偽のログインページへ誘導するものでした。
- クレデンシャルハーベスティング: 偽のログインページは、多要素認証 (MFA) の突破をも試みるもので、ユーザー名、パスワードに加え、MFAトークンをもリアルタイムで窃取する中間者攻撃(Adversary-in-the-Middle, AiTM)型のフィッシングキットが使用されました。これにより、攻撃者は有効なCI/CDシステムへのアクセス権を獲得しました。
2. 永続化と権限昇格 (TA0003, TA0004)
- APIキーの悪用: 窃取したCI/CDのAPIトークンを利用し、CI/CDシステムに登録されている他のサービスアカウントのAPIキーやシークレット情報を取得しました。
- パイプラインスクリプトの改ざん: 攻撃者は、正規のCI/CDパイプラインジョブ定義に悪意のあるスクリプトを追加しました。具体的には、ビルドプロセスの一部として、特定のGitHubリポジトリから追加のコードをクローンし、それを実行するステップを挿入しました。これにより、システムにバックドアを永続化させるとともに、環境変数として設定されているクラウドプロバイダのクレデンシャル情報を収集しました。
3. 防御回避と偵察 (TA0005, TA0007)
- 正規ツールの悪用: 攻撃者は、システムに侵入後、正規のシェルコマンドやCI/CDツールのCLIインターフェースを積極的に使用しました。これにより、異常なプロセス起動やマルウェア検出を回避しました。
- 内部偵察: 窃取したクラウドプロバイダのクレデンシャル(AWS IAMロールのAssumeRoleなど)を用いて、クラウド環境内のS3バケット、EC2インスタンス、RDSデータベースなどのリソースを列挙し、機密情報が格納されている可能性のある場所を特定しました。特に、開発関連のS3バケットやソースコードリポジトリが重点的に調査されました。
4. 情報窃取 (TA0010)
- データステージング: 攻撃者は、窃取したソースコードや設定ファイルを、一旦クラウド環境内の新たなS3バケットや一時的なEC2インスタンスに集約しました。これは、直接外部へのデータ転送を行うと検知されやすいため、一度内部でまとめるステージングプロセスと考えられます。
- データエクスフィルトレーション: ステージングされたデータは、暗号化されたSCP(Secure Copy Protocol)トンネル、またはHTTPSを用いたクラウドストレージサービス(例:Mega.nz、Dropbox)へのアップロードを通じて外部に持ち出されました。通信トラフィックの異常検知を避けるため、正規のHTTPSポートを使用し、かつ通常の業務時間外に断続的に実行されました。
捜査過程で明らかになった技術的側面
捜査は主に、以下のデジタルフォレンジック手法とログ分析に焦点を当てて行われました。
1. クラウドログ分析
- AWS CloudTrail/Azure Activity Logs: 異常なAPIコール履歴の特定が決定打となりました。特に、窃取されたCI/CDクレデンシャルと紐付けられたIAMロールからの、通常ではあり得ないEC2インスタンスの起動、S3バケットの作成・変更、データベーススナップショット作成などの操作ログが検出されました。これらのログは、正規の開発者の活動パターンとは異なる地理的IPアドレスからのアクセスや、時間帯のずれを示していました。
- IOC例 (CloudTrail):
eventName
:RunInstances
,CreateBucket
,PutObject
sourceIPAddress
: 通常のVPN範囲外のIPアドレスuserAgent
: 未知のCLIツールやSDKバージョンuserIdentity.arn
: 開発者クレデンシャルに関連付けられたIAMロール
- IOC例 (CloudTrail):
2. CI/CDシステムログとGitリポジトリ監査ログ
- Jenkins/GitLab CIログ: 認証ログから、正規の開発者のアカウントによる不正なログインセッションが確認されました。特に、MFA要求が不自然な形で承認されたログや、通常利用されないIPアドレスからのCI/CDパイプライン実行履歴が特定されました。
- Gitリポジトリ監査ログ: 悪意のあるパイプラインスクリプトのコミット履歴や、特定のブランチへの不審なプッシュ履歴が発見されました。これらのコミットは、開発者の通常のコードレビュープロセスを経ずに直接マージされており、
git blame
コマンドやリビジョン履歴の分析により、不正な変更箇所が特定されました。
3. ネットワークフォレンジック
- Firewall/Proxyログ: 疑わしいIPアドレスへの通信履歴が特定されました。特に、大量のデータが外部に送信されたHTTPS通信や、異常なDNSリクエスト(DNSトンネリングの試み)の痕跡が検出されました。これらの通信は、通常業務では利用されない帯域やプロトコル、あるいは未知の宛先IPアドレスへの接続を示していました。
- IOC例 (ネットワークログ):
- 異常なデータ量を持つアウトバウンドHTTPS通信
- 高頻度かつ特異なFQDNへのDNSクエリ(例:
malicious.exfil.attacker.com
) - 未承認のポートやプロトコルを用いた外部通信
- IOC例 (ネットワークログ):
4. エンドポイントフォレンジック
- 開発者のワークステーションのフォレンジックイメージ分析により、フィッシングメールの痕跡、偽のログインページへのアクセス履歴、そしてクレデンシャル情報が入力された可能性のあるブラウザのキャッシュや履歴が回収されました。また、攻撃者が利用した可能性のあるツール(例:
curl
,wget
の履歴)や、不審なスクリプトの実行履歴が発見されました。
実務への示唆と防御策
本事例は、サプライチェーン攻撃とクラウド環境におけるセキュリティの重要性を浮き彫りにしています。セキュリティアナリストは以下の点に留意し、防御策を強化する必要があります。
-
強力なクレデンシャル管理とMFAの徹底:
- CI/CDツール、SaaSサービス、クラウドプロバイダへのアクセスには、FIDO2ベースのフィッシング耐性のあるMFAの導入を検討します。
- クレデンシャルローテーションポリシーを厳格化し、定期的なAPIキー、SSHキーの更新を義務付けます。
- シークレット管理ツール(HashiCorp Vault, AWS Secrets Managerなど)を導入し、ハードコードされたクレデンシャルを排除します。
-
CI/CDパイプラインのセキュリティ強化:
- 最小権限の原則: CI/CDジョブがアクセスできるリソースを厳密に制限します。必要な権限のみを付与し、不必要な広範なアクセス権限を避けます。
- SCA (Software Composition Analysis) / SAST (Static Application Security Testing) / DAST (Dynamic Application Security Testing) の導入: パイプライン内で脆弱性スキャンを自動化し、悪意のあるコードの混入や脆弱性の悪用を防ぎます。
- コードレビューの強化: CI/CDスクリプトを含む全てのコード変更に対して、厳格なコードレビュープロセスを適用します。特に、サプライチェーンから取り込む外部依存関係についても、その安全性を確認する仕組みを導入します。
-
高度な監視とログ分析:
- クラウド環境の監査ログ監視: CloudTrail, Azure Activity Logsなどの監査ログをSIEMに集約し、異常なAPIコールパターン、地理的逸脱、短期間での多種多様なリソースへのアクセスをリアルタイムで検知するルールを設定します。
- CI/CDシステムログの監視: CI/CDシステムの認証ログ、ジョブ実行ログ、設定変更ログを継続的に監視し、不審なログインやパイプラインの変更を早期に検出します。
- ネットワークトラフィック分析: DNSログ、ファイアウォールログ、プロキシログを分析し、異常な外部通信、データエクスフィルトレーションの兆候、DNSトンネリングなどのC2通信を検知するルールを強化します。特に、通常利用されないポートやプロトコル、高頻度な接続先、不審なデータ量の送受信に注目します。
-
セキュリティ意識向上トレーニング:
- フィッシング攻撃の手口は常に進化しているため、定期的なフィッシング訓練を実施し、従業員のセキュリティ意識を高めます。特に開発者を標的としたスピアフィッシングに対する警戒を促します。
セキュリティインテリジェンスとしての活用
本事例は、CI/CD環境を狙う攻撃者のTTPsに関する貴重なインテリジェンスを提供します。
- TTPsの共有: フィッシングによるMFAバイパス、CI/CDパイプラインへの悪意のあるスクリプト挿入、クラウド環境内での偵察とステージング、HTTPSや暗号化トンネルを用いたデータエクスフィルトレーションといった一連の攻撃チェーンは、他の組織でも発生しうる一般的な脅威パターンです。MITRE ATT&CKフレームワークを用いてこれらのTTPsをマッピングし、脅威インテリジェンスプラットフォームを通じて共有することで、他組織の防御策強化に貢献します。
- IOCsの共有: 上記で挙げたような、異常なAPIコールパターン、特定のUser-Agent、不審なIPアドレス、改ざんされたCI/CDスクリプトのコミットハッシュなど、公開可能な範囲での技術的痕跡を共有することは、他組織が自社の環境で同様の侵害がないかを確認するための重要な手掛かりとなります。
- 防御策の共有: CI/CDセキュリティのベストプラクティス、フィッシング耐性のあるMFAの実装、クラウド環境のログ監視ルールといった防御策を共有することで、業界全体のセキュリティレベル向上に寄与します。
まとめ
開発サプライチェーンは、現代のソフトウェア開発において不可欠な要素であると同時に、攻撃者にとって魅力的なターゲットでもあります。本稿で分析した事件は、漏洩したCI/CDクレデンシャルが、いかに容易に組織のセキュリティ体制を迂回し、広範な情報窃取につながるかを示しています。セキュリティアナリストは、攻撃者のTTPsを深く理解し、多層防御の観点から、特に開発環境のセキュリティ強化、厳格なクレデンシャル管理、そして高度な監視体制の構築に注力することが求められます。これらの取り組みを通じて、新たな脅威に対処し、組織の資産を保護することが可能となります。