家のセキュリティ担当になったあなたへ:SIEMで「泥棒の足音」を聞き分ける方法
こんにちは。セキュリティの世界へようこそ。
今日は、「SIEM(シーム)」という少し強そうな名前のツールと、その中での「ログの正規化」についてお話しします。
いきなりですが、あなたの家を想像してみてください。玄関には鍵があり、窓には防犯センサー、さらに庭には防犯カメラがありますよね。それぞれ、メーカーも違えば、仕組みもバラバラです。
もし、玄関のドアが「ガチャッ」と鳴り、窓が「ピピピッ」と鳴り、カメラが「何か動いたぞ」と叫んだらどうでしょう。バラバラの言語で報告されたら、あなたはどれが「泥棒の侵入」で、どれが「風で揺れただけ」なのか判断できませんよね。
SIEMとは、いわば「家中のすべてのセンサーの報告を、あなたの理解できる言葉に翻訳してまとめてくれる執事」のような存在です。
—
1. ログの「正規化」:バラバラの言葉を共通言語へ
ITの世界では、サーバーやクラウド、ネットワーク機器が毎日膨大な「ログ(活動記録)」を出しています。でも、機器ごとに書き方が違うんです。
- Webサーバー:
192.168.1.1 - - [10/Oct/2023:10:00:00] "GET /login HTTP/1.1" 200 - クラウドの認証記録:
User: admin, Action: Login, Status: Success, Time: 2023-10-10T10:00:00Z
これらをそのまま見ても、何が起きているかパッと分かりませんよね。そこで「ECS(Elastic Common Schema)」のような共通フォーマットを使います。
「誰が(user.name)」「どこから(source.ip)」「何をした(event.action)」という項目に統一して整理する。これが「正規化」です。これをやっておかないと、いざ泥棒が入った時に、「えーっと、このログのIPアドレスはどこだっけ?」と探している間に逃げられてしまいます。
—
2. 相関分析:点と点をつないで「悪意」を見抜く
正規化ができたら、次は「ルール」作りです。ただ「ログイン失敗」をカウントするだけではダメですよ。泥棒はもっと賢いですから。
例えば、「短時間に5回パスワードを間違えた」というイベントは、単なる「うっかりミス」かもしれません。しかし、その直後に「管理権限(Admin)の昇格に成功した」というログが続いたらどうでしょう? これは、間違いなく「泥棒が玄関の鍵を壊して、中の金庫を無理やり開けた」瞬間です。
このように、複数のイベントを「相関」させて怪しい動きをあぶり出すのが、SIEMの醍醐味です。
検知ルールのサンプル(疑似コード)
例えば、Elasticsearchなどで使う検知ルール(KQL風)はこんなイメージです。
# 1. ログイン失敗が1分間に5回以上発生したとき
# 2. その後、同じユーザーが管理者権限を得たとき
# 3. これらをセットで「注意すべき攻撃の予兆」としてアラートを出す
event.category: "authentication" AND event.outcome: "failure"
| stats count by user.name, source.ip
| where count >= 5
# こうして抽出した「怪しいIP」が、次に「権限昇格」の操作をしていないか監視する
—
3. 実践!現場で役立つ「泥棒検知」のステップ
新人のあなたが最初にやるべきことは、難解なAIを導入することではなく、「基本のキ」をログに出すことです。
ステップ1:必要な情報だけをしっかり吐き出す
アプリケーションやサーバーの設定で、最低限以下の情報をログに含めるようにしましょう。
- ユーザーID(誰が?)
- IPアドレス(どこから?)
- タイムスタンプ(いつ?)
- アクション結果(成功したか、失敗したか?)
ステップ2:共通フォーマット(ECS)を意識する
JSON形式でログを出力するようにすると、後でSIEMに放り込む時に非常に楽です。
{
"timestamp": "2023-10-10T10:00:00Z",
"event": {
"action": "login",
"outcome": "success"
},
"user": {
"name": "taro_yamada"
},
"source": {
"ip": "192.168.1.50"
}
}
こうしておけば、SIEMがこのデータを読み取った瞬間、「ああ、田中さんが192.168.1.50からログインしたんだな」と一瞬で理解してくれます。
—
最後に:完璧を目指さない勇気
セキュリティの世界では、「100%防ぐ」ことは不可能です。泥棒も常に新しい手口を考えています。
大切なのは、「すべてを止めよう」と気負うことではなく、「何が起きているかを見えるようにしておくこと」です。家の鍵が壊された時に「誰が、いつ、どうやって」入ってきたか分かれば、次からはもっと頑丈な鍵に変えられますよね。
ログの正規化と相関分析は、そのための「防犯カメラと記録ノート」です。まずは今日から、自分の書いたプログラムや設定したサーバーが「誰にでも分かりやすいログ」を出しているか、確認することから始めてみてください。
一歩ずつ、一緒に強くなっていきましょう!応援しています。
コメント