【入門編】 ファイアウォールログのSIEM統合と相関分析によるインシデント検知 – インフラ・ネットワーク & クラウドセキュリティ防御ガイド

こんにちは!インフラやセキュリティの世界へようこそ。
初めてファイアウォールやSIEM(シエム)という言葉を聞くと、「なんだか難しそうだな…」「英語のログがいっぱい流れてきて頭がクラクラしそう…」と感じてしまうですよね。

でも、安心してください!セキュリティの仕組みの本質は、私たちが普段暮らしている「お家の防犯対策」とまったく同じなんです。

今日は、ファイアウォールのログをSIEMに集めて、隠れた泥棒(攻撃者)を見つけ出す「相関分析」の仕組みについて、身近な例えを交えながら一歩ずつ優しく紐解いていきましょう!

—

1. 家の玄関とファイアウォール、そして「防犯カメラのノート」

まずは、私たちが日々使っているインターネットの世界を、一軒家での暮らしに例えてみましょう。

  • インターネットの世界 = 外の世界(不特定多数の人が行き交う道路)
  • あなたのサーバー(システム) = あなたの大切なご自宅
  • ファイアウォール = 家の頑丈な玄関のドアと、鍵付きの門

ファイアウォールは、外からやってくる怪しい人(通信)に対して、「あなた、誰ですか?」「この家に入っていい用事がありますか?」とチェックして、不審者を追い返すお仕事をしてくれます。

さて、このファイアウォールには、「誰がドアをノックしたか」「何時にガチャガチャと鍵を試したか」を記録するノート(ログ)機能がついています。

ファイアウォールログは「ただのメモの山」

ファイアウォールが吐き出すログは、実はこんな風にすごくシンプルです。

2023-10-25 02:14:05 ALLOW TCP 192.168.1.50 -> 10.0.0.5 dport=80
2023-10-25 02:14:10 DROP UDP 203.0.113.50 -> 10.0.0.5 dport=53
2023-10-25 02:14:12 DROP TCP 203.0.113.50 -> 10.0.0.5 dport=22
2023-10-25 02:14:13 DROP TCP 203.0.113.50 -> 10.0.0.5 dport=3389

英語ばかりで難しそうに見えますよね? でも、右側の dport= というのは「どの部屋のドアノック(ポート番号)を叩いたか」を表しています。
80 はリビング(Webサイト)、22 は裏口の倉庫(SSHという管理者用リモート接続)、3389 はパソコン部屋(リモートデスクトップ)のようなイメージです。

ここで、よく見てください。
203.0.113.50 という見知らぬ人物が、たった1秒の間に、裏口の鍵をガチャガチャ試したり、パソコン部屋の窓をドンと叩いたりしていますよね。

これ、「泥棒があなたの家を下見して、どこから侵入できるか総当たりで探っている(ポートスキャン)」瞬間のログなんです!

—

2. なぜ「SIEM(シエム)」が必要なの?

さて、ここで一つの問題が発生します。
あなたの家がすごく大きくて、玄関のドアだけでなく、勝手口や窓、ベランダにもそれぞれ防犯カメラとノートがあったとします。

  • 玄関のノート:「100万行のデータ」
  • 勝手口のノート:「50万行のデータ」
  • サーバーのノート:「300万行のデータ」

人間がこれらすべてのノートを1ページずつめくって、「おや、さっきの不審な動きと、あっちの窓の傷が繋がっているぞ…」と気づくことができるでしょうか?
絶対に無理ですよね。目が回ってしまいます。

そこで登場するのが SIEM(Security Information and Event Management) です!
SIEMは、いわば「家じゅうの防犯カメラの映像とノートを全部一箇所に集めて、AIや賢いシステムに24時間監視させる中央警備室」のようなもの。

バラバラの場所にあるファイアウォールやサーバーのログを一つに集め、「この動きとこの動きが合わさったら、事件だ!」と自動で見つけて知らせてくれるのです。

—

3. SIEMの「相関分析」で泥棒を現行犯逮捕する

SIEMの真骨頂は、単にログを集めるだけではなく、「相関分析(そうかんぶんせき)」ができる点にあります。

相関分析とは、「一見するとただの些細な出来事(点)を繋ぎ合わせて、一つの大きな事件(線)としてあぶり出す技術」です。

泥棒の手口に例えてみましょう

1. 第1のステップ(下見):泥棒が家の周りをうろつき、鍵がかかっているか全窓を触って確かめる(ファイアウォールでブロックされた大量のアクセス)
2. 第2のステップ(こっそり侵入成功):運悪く、鍵の閉め忘れていた古い窓から侵入されてしまう(ファイアウォールをすり抜けた不正アクセス)
3. 第3のステップ(暴走):家の中で金庫を開けようと暴れ回る(サーバー内での異常なコマンド実行)

これらを別々に見ていると、「まぁ風で窓が揺れたのかな?」で見過ごしてしまうかもしれません。しかし、SIEMの相関分析ルールを設定しておけば、「短時間に大量のアクセス拒否(ブロック)が発生した直後に、そのIPアドレスからログイン成功のログが出たら、アラートを鳴らす!」という連携プレイが可能になります。

—

4. 実践!SIEM(Elasticsearch / Splunk等)での監視ルール設定例

それでは、実務の現場でどのようにこの監視ルールを書くのか、少しだけコード(設定ファイル)を覗いてみましょう。
ここでは、オープンソースのSIEMなどでよく使われる、疑似的な相関ルールの設定例を日本語のコメント付きで紹介します。

# 泥棒のドアガチャ(ポートスキャン)を検知してアラートを出すルールの例
rule_name: "Detect_Port_Scanning_And_BruteForce"
description: "短時間に同一の外部IPから複数の異なるポートへアクセス拒否が発生したかを検知します"

# 監視するデータの条件
trigger_condition:
  # ファイアウォールでブロックされたログを対象にする
  action: "DROP"
  
  # 時間の窓口(例: 60秒以内)
  time_window: 60 seconds
  
  # 条件:同一の送信元IPアドレスから、異なる宛先ポート(dport)へのブロックが「15回以上」あった場合
  group_by: "source_ip"
  threshold:
    distinct_count: "destination_port"
    operator: "greater_than_or_equal"
    value: 15

# 検知した時のアクション
actions:
  - send_slack_alert:
      channel: "#security-alerts"
      message: "【警告】不審なIP ({{ source_ip }}) からポートスキャンを検知しました!ファイアウォールでの自動ブロックを検討してください。"

このように設定しておくと、夜中に泥棒が下見に来た瞬間に、Slackなどのチャットツールへ「ピコーン!」とスマートフォンに通知を飛ばすことができるようになります。

—

5. 現場のプロからのアドバイス:ログ設計の落とし穴

最後に、現場でインフラやセキュリティの構築をする際につまずきやすい「リアルな失敗談」をひとつ。

それは、「何でもかんでもログをSIEMに集めすぎて、本当に大事なログが埋もれてしまう問題」です。

家じゅうのすべての部屋にカメラをつけて、ゴミが風で舞うたびに警報が鳴っていたら、警備員(あなた)は疲弊してノイローゼになってしまいますよね。
ファイアウォールのログも同じです。すべての「通信許可(ALLOW)」のログを何でもかんでもSIEMに送ると、ストレージの容量(お金)がパンクするだけでなく、本当に見なきゃいけない「怪しい動き(DROP)」がノイズに埋もれてしまいます。

一歩ずつ進めるためのベストプラクティス

1. まずは「外部から内部への通信拒否(外部からの怪しいアタック)」のログだけに絞ってSIEMに取り込んでみる。
2. 次に、自分たちのシステムの「通常のアクセスの波(平日の昼間はアクセスが多くて、夜中は少ないなど)」を把握する。
3. その上で、今回紹介したような「短時間の異常な連続アクセス」を検知する相関ルールを1つずつ育てていく。

セキュリティ対策に「完璧なゴール」はありません。
でも、今日学んだ「ログを集めて、点と点を繋げて怪しい動きを見つける」という基本の仕組みさえ押さえておけば、どんなに複雑なクラウド環境であっても、必ず泥棒の足跡を見つけ出すことができます。

一歩ずつ、焦らずに堅実な防犯の仕組みを育てていきましょうね!

コメント

タイトルとURLをコピーしました