こんにちは!日々の開発やインフラの保守、本当にお疲れ様です。
システムを作ったり守ったりするお仕事をしていると、「なんだか怪しい通信があるぞ」「変なファイルが動いたみたい……」というアラートにドキッとさせられることってありませんよね?(いや、本当はドキッとするどころか冷や汗ものですよね!)
セキュリティの世界では、こうした不穏な動きを見つけ出して「一体なにが起きたのか」をストーリーとして読み解く作業を DFIR(デジタルフォレンジックとインシデントレスポンス) と呼びます。
今回は、数々の現場で泥臭く調査を重ねてきたSOCアナリストの視点から、「EDR(エンドポイントの記録)アラート」と「ネットワークログ(通信の記録)」を組み合わせて、攻撃者の足取りを完全に暴く相関分析の技術について、身近な例えを交えながら優しく紐解いていきたいと思います。
一歩ずつ、一緒に学んでいきましょう!
—
1. 家の防犯に例える「EDR」と「ネットワークログ」
いきなり難しいセキュリティ用語が出てくると身構えてしまいますよね。まずは、私たちの身近な「おうちの防犯」に置き換えて考えてみましょう。
- EDR(Endpoint Detection and Response)とは?
- これは、お家の中(パソコンやサーバーの中)に設置された「室内の防犯カメラと足あとセンサー」のようなものです。
- 「誰が、どの部屋に入り、どんな道具を取り出し、どの金庫を開けようとしたか」という、端末の中の動きをすべて記録しています。
- ネットワークログとは?
- こちらは、お家の玄関や門扉に取り付けられた「出入り口の防犯カメラと郵便受けの記録」です。
- 「何時何分に、外の誰から手紙が届いたか」「家の中の誰が、外の怪しい人物のところへ出かけていったか」という、外の世界との通信の出入りを記録しています。
もし、お家の中で「金庫の鍵がこじ開けられた(EDRのアラート)」という事件が起きたとします。これだけだと、「家の中の誰かがやったのか? それとも外から泥棒が入ってきたのか?」がよく分かりませんよね。
ここで、玄関の防犯カメラ(ネットワークログ)を確認し、「夜中の2時に、見知らぬ海外のIPアドレスから怪しい荷物が届き、その直後に金庫が開けられた」という事実をドッキングさせます。これが、「EDRアラートとネットワークログの相関分析」の正体です。
—
2. 攻撃者はどうやってシステムを狙う?(現実の侵入シナリオ)
実際のサイバー攻撃は、映画のように派手なものではなく、非常に地味かつ巧妙に行われます。よくあるシナリオを覗いてみましょう。
1. フィッシングメール等で侵入: 開発者宛ての巧妙なメールから、パソコン内で怪しいプログラム(マルウェア)がこっそり実行されます(EDRが「見慣れないプログラムが動いたよ!」と検知)。
2. こっそり外部と連絡(C2通信): 侵入したプログラムは、攻撃者の遠隔サーバー(司令塔)とこっそり通信を始めます(ファイアウォールが「海外の怪しいIPアドレスと通信してる!」と記録)。
3. 内部の探索とデータ持ち出し: パソコンの中をあちこち探検し、パスワードなどの秘密情報を盗み出して外へ送信します。
ここで、EDRのログだけを見ていると「なんか変なプログラムが動いたな」で終わってしまい、ネットワークのログだけを見ていると「なんか変な通信があったな」で終わってしまいます。
この「中で起きたこと(EDR)」と「外とやり取りしたこと(ネットワーク)」の時間をピタリと合わせることで、「あ、このプログラムが、この時間に、あの怪しいサーバーへデータを送ったんだ!」という決定的な証拠(パズルピースの結合)が見えてくるのです。
—
3. 実践!ログを紐解く相関分析の流れ
では、実際にインシデントが発生したと想定して、私たちが現場でどのようにログを突き合わせているのか、そのアプローチを見ていきましょう。
ステップ1: EDRで「怪しいプロセス」を特定する
まずはパソコンの中の監視カメラ(EDR)から、「おや?」と思う動きを探します。例えば、次のようなアラートが見つかったとします。
- 検知時刻:
202X-05-10 14:32:10 - ホスト名:
dev-server-01 - 実行されたファイル:
C:\Users\public\update.exe - 不審な挙動: PowerShellを呼び出して、外部から何かをダウンロードしようとした痕跡がある。
「update.exe なんてファイル、社内の誰も覚えがないぞ……!」これが最初の手がかり(起点)になります。
ステップ2: ネットワークログで「通信の宛先」を突き詰める
次に、その端末(dev-server-01)が、その瞬間にどこボテと通信していたのかを、プロキシサーバーやファイアウォールのログ(ネットワークログ)から探します。
ここで重要になるのが「タイムスタンプ(時間)」の完全な一致です。EDRが不審な動きを検知した時刻(14:32:10)の前後数秒間の通信を、ネットワークログからごっそり抜き出してみましょう。
実務では、次のようなログ分析クエリ(SplunkやElasticsearchなどのイメージ)を使って、データを突き合わせます。
# ネットワークログとEDRの相関を調査するための概念クエリ例
index=firewall host="dev-server-01" timestamp >= "14:32:00" timestamp <= "14:32:30"
| stats count by src_ip, dest_ip, dest_port, http_user_agent
| sort - count
このクエリを叩いた結果、次のような通信記録がヒットしたとします。
- 通信発生時刻:
202X-05-10 14:32:12(EDR検知のわずか2秒後!) - インサイドからの送信元IP:
192.168.1.50(dev-server-01) - 宛先外部IP:
203.0.113.55(見慣れない海外のIPアドレス) - 通信先ポート:
443(HTTPS) - HTTPヘッダー (User-Agent):
Mozilla/5.0 (Windows NT; Windows; x64) CustomAgent/1.0
おや? 通常のブラウザ(ChromeやEdgeなど)であれば、もっと一般的な User-Agent が入るはずですが、いかにも怪しい CustomAgent/1.0 という文字列が入っていますね。
これで、「update.exe が実行された直後に、特定の怪しい外部サーバーへ、特異なブラウザのふりをして通信を行った」という一連のストーリーが綺麗に一本の線で繋がりました!
—
4. 現場で役立つ防御のヒントと心構え
こうした相関分析を行えるようになると、単に「アラートが出たからパソコンを初期化しよう」という場当たり的な対応ではなく、「攻撃者がどこから入ってきて、何を盗ろうとしたのか」を正確に把握し、根本的な再発防止策を打つことができるようになります。
実務の開発やインフラ構築に携わる私たちとしては、次のような点を日頃から意識しておきたいですね。
1. 時刻の同期(NTP)の徹底:
- EDRの時計と、ファイアウォールの時計がズレていると、相関分析は一気に難解なパズルになってしまいます。サーバーや端末の時間は常に正確に同期させておきましょう。
2. ログの保存期間と検索性の確保:
- いざという時に「1ヶ月前のログが残っていなかった……」とならないよう、主要なネットワークログやEDRの記録は、適切に集約・保存する仕組みを作っておきましょう。
3. 不審なUser-Agentやポートの監視:
- アプリケーションの開発時にも、外部と通信するプログラム(APIクライアントなど)を作る際は、適切な
User-Agentを付与し、意図しないポートへの通信が発生していないかテスト段階から確認する習慣をつけましょう。
—
さいごに
セキュリティのインシデント調査というと、なんだかすごく冷たくて難解な専門知識が必要なイメージがあるかもしれません。ですが、本質はとてもシンプルで、「起きたことの点を、時間と文脈で繋ぎ合わせて、ひとつの物語(真実)を暴くこと」です。
最初は分からない用語やログの形式にとまどうことも多いと思いますが、日々の業務の中で「あれ、このエラーログと、さっきの通信エラーって繋がっているのかな?」という好奇心を大切にしてみてください。
一歩ずつ、確実にスキルアップしていきましょう!あなたのインフラやコードを守るその小さな気づきが、組織全体の大きな盾になります。それでは、次回の記事もお楽しみに!
コメント