【入門編】 クラウド環境におけるフローログの収集とSIEM連携 – インフラ・ネットワーク & クラウドセキュリティ防御ガイド

こんにちは!インフラやクラウドのセキュリティを担当しているエンジニアの皆さん、そして「セキュリティってなんだか難しそう……」と少しドキドキしながらこのページを開いてくれた新人のIT担当者の皆さん、日々の開発やインフラ管理、本当にお疲れ様です!

サーバーをクラウド(AWSやGCP、Azureなど)上に立てたとき、「これで無事に動いたぞ!」とホッとしますよね。でも、ちょっと待ってください。そのクラウドの世界、実は現実の街と同じように、目に見えないところで色々な人が行き交っています。

今回は、クラウドという街の「防犯カメラ」であり、最強の警備システムである「VPCフローログの収集とSIEM(シエム)連携」について、身近な防犯の仕組みに例えながら、一歩ずつ優しく紐解いていきたいと思います。

難しそうな用語が出てきても大丈夫。「一歩ずつ対策を学んでいきましょう!」

—

1. なぜクラウドに「防犯カメラ」が必要なの?

皆さんは、自分の家を出るときに鍵をかけますよね。当然のことです。クラウドの世界でも、サーバーやネットワークの入り口には「セキュリティグループ」や「ファイアウォール」という名の頑丈な鍵をかけます。

しかし、セキュリティのプロである私たちホワイトハッカーが現場で見ていると、「鍵をかけただけで安心しきっている状態」が一番危ういんです。

家の鍵をかけただけで、満足していませんか?

想像してみてください。あなたが頑丈な玄関の鍵を閉めて旅行に出かけたとします。運悪く、泥棒がやってきて、あの手この手で鍵をこじ開けようとガチャガチャ試したり、窓を覗き込んだりしました。

もし、あなたの家に「防犯カメラ」や「センサーライト」がなかったらどうなるでしょうか?
泥棒が家の中に侵入して大切なデータを持ち去るまで、あなたは異変に気づくことができませんよね。

クラウド上のサーバー(EC2や仮想マシンなど)も全く同じです。
「外からの不正なアクセスをブロックしたから大丈夫!」と思っていても、世界中のどこかから、悪意あるボットがあなたのサーバーの扉を毎秒何千回も叩いているかもしれません。あるいは、すでに侵入を許していて、こっそり内部から外部へデータを盗み出そうとしているかもしれません。

だからこそ、クラウドのネットワークの世界にも「誰が、いつ、どこから、どの部屋(ポート)を覗こうとしたか」をすべて記録する防犯カメラが必要になります。それが、今回主役となる「VPCフローログ」なのです。

—

2. VPCフローログとSIEMってなに?(仕組みを優しく解説)

では、もう少し具体的に中身を見ていきましょう。

VPCフローログ = ネットワークの「出入国記録」

VPC(Virtual Private Cloud)というのは、クラウド上にあなたが借りた「自分だけの安全な仮想の土地」だと思ってください。
その土地に出入りするすべての通信(パケットのメタデータ)を、まるで空港の入国審査官のように記録し続ける機能が「VPCフローログ」です。

フローログには、主に次のような情報が記録されます。

  • 誰が(送信元IPアドレス)
  • どこへ(宛先IPアドレス)
  • どのドア(ポート番号)をノックしたか
  • 通信は成功したか(Accept)、それとも追い返されたか(Reject)

SIEM = 記録を24時間監視して叫んでくれる「優秀な警備員」

ただ、このVPCフローログ、出力されるデータは文字の羅列です。人間が目視で「おっ、このIPアドレス怪しいぞ!」と毎日チェックするのは、砂漠の中から一粒のダイヤモンドを探すようなもので、絶対に無理ですよね。

そこで登場するのがSIEM(Security Information and Event Management)です。
SIEMは、クラウドから集まってくる膨大なフローログ(防犯カメラの映像)をリアルタイムで受け取り、「おいおい、このIPアドレス、さっきから1分間に1000回も侵入を試みているぞ!」といった異常な兆候を見つけ出して、担当者にアラート(警報)を鳴らしてくれる優秀な警備システムです。

—

3. 【実践】AWS環境でのVPCフローログ設定とSIEM連携の流れ

百聞は一見に如かず。実際にクラウド(今回は代表的なAWSを例にします)で、どのようにこの防犯システムを構築するのか、具体的な手順を見ていきましょう。

ステップ1:VPCフローログを有効化する

まずは、AWSのVPC(ネットワーク空間)に対して、「すべての通信を記録しなさい!」と命令を出します。ログの保存先としては、通常Amazon S3やAmazon CloudWatch Logsを指定します。

実務では、マネジメントコンソールからポチポチ設定することもできますが、インフラをコード(IaC)で管理する時代ですので、Terraformを使った設定サンプルを見てみましょう。

# ログを保存するためのS3バケットを作成します(防犯カメラの録画データ保存庫)
resource "aws_s3_resource" "flow_log_bucket" {
  bucket = "my-company-vpc-flow-logs-storage"
  # ※実際の設定ではパブリックアクセスブロックや暗号化を必ず有効にしてください
}

# VPCフローログの設定(どのネットワークの、どんな通信を記録するか)
resource "aws_flow_log" "main_vpc_flow_log" {
  iam_role_arn    = aws_iam_role.flow_log_cloudwatch.arn
  log_destination = aws_s3_bucket.flow_log_bucket.arn
  traffic_type    = "ALL" # 「成功した通信(Accept)」も「ブロックした通信(Reject)」も全て記録します
  vpc_id          = aws_vpc.main.id
}

ここで traffic_type = "ALL" にしているのがポイントです。セキュリティの現場では、「ブロックされた通信(Reject)」だけでなく、「許可された通信(Accept)」も重要です。なぜなら、本来通信してはいけないはずの管理画面に、社内の人間がアクセスしている不正な兆候などを後から見つけるためです。

ステップ2:SIEMへのログ転送とリアルタイム検知

S3やCloudWatch Logsに集まったログを、SIEM(例えばAmazon OpenSearch ServiceやDatadog、 Splunkなど)にリアルタイムで取り込みます。

イメージとしては、CloudWatch Logsに新しいログが書き込まれた瞬間、Lambda(サーバーレスのプログラム)が起動して、それをSIEMへ「おい、新しいデータが入ったぞ!」とプッシュ通知するようなアーキテクチャがよく使われます。

SIEM側では、次のような「検知ルール(クエリ)」を設定します。

/* 
  例: 短時間に同じIPアドレスから大量の拒否(Reject)ログが発生しているかを検知する疑似クエリ
  (泥棒が何度も家の鍵をガチャガチャしている状態を見つけるルール)
*/
SELECT 
    srcaddr, 
    COUNT(*) as reject_count
FROM 
    vpc_flow_logs
WHERE 
    action = 'REJECT'
    AND timestamp > NOW() - INTERVAL '5 MINUTE'
GROUP BY 
    srcaddr
HAVING 
    COUNT(*) > 50; -- 5分間に50回以上拒否されたらアラート!

もしこの条件に合致する通信が見つかったら、SIEMはSlackやメール、 Pushoverなどを通じて、私たちエンジニアのスマホにピロリーンとアラートを飛ばしてくれます。

—

4. 現場のプロが教える!導入時のリアルな落とし穴

「よし、じゃあ全部の通信を細かくログに残して、最強のSIEMを入れよう!」と思ったそこのあなた。ちょっと待ってください。私たちセキュリティエンジニアが現場でよく直面する「リアルな失敗談」をいくつかシェアしておきますね。

1. コストの爆発に気をつけろ!
VPCフローログは、トラフィックが多ければ多いほど、膨大なデータ量になります。全部の通信を永続的に保存していると、クラウドのストレージ代やSIEMのライセンス代(従量課金)で、月末に上司から青い顔で呼び出されることになります。「どのVPCのログを取るべきか(本番環境か、検証環境か)」をきちんと見極めましょう。
2. ノイズ(誤検知)との戦い
インターネットの世界は広いため、世界中の検索エンジンのクローラーや、無害なスキャンボットが毎日大量のアクセスを試みています。これらすべてに反応させていると、一晩で何百件ものアラートが飛んできて、エンジニアが「オオカミ少年」状態になり、本当の攻撃を見逃してしまいます。閾値(しきい値)のチューニングは非常に重要です。

—

まとめ:今日からできる一歩

今回は、クラウドの防犯カメラである「VPCフローログ」と、それを24時間監視する「SIEM連携」について解説しました。

セキュリティ対策というと、「難しそう」「めんどくさそう」と感じてしまうかもしれませんが、本質は私たちが日常生活でやっている防犯(鍵をかける、異変に気づいたら警察を呼ぶ)と全く同じです。

まずは、

  • 「今動いているクラウド環境で、VPCフローログは有効になっているか?」
  • 「ブロックされた通信のログを確認できる状態になっているか?」

というところから、チームのメンバーと一緒に確認してみましょう。その小さな確認の積み重ねが、あなたのサービスと会社の大切なデータを守る最高の盾になります。

それでは、また次回のセキュリティ解説でお会いしましょう!安全で快適なクラウドライフを!

コメント

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