こんにちは!IoT・OT(制御システム)セキュリティの世界へようこそ。
普段私たちが何気なく使っている電気や水道、工場で動く巨大なロボットたち。これらを裏側でコントロールしているのが、SCADA(スカダ)やPLC(ピーエルシー)と呼ばれる産業用制御システム(OT環境)です。
「ITのセキュリティはなんとなく分かるけれど、工場やプラントのセキュリティって難しそう……」
そんな不安を抱えている新人のIT担当者や開発者の方に向けて、今回は身近な防犯の仕組みに例えながら、OT環境における「ログ収集とSIEM連携の最適化」について、一歩ずつ優しく紐解いていきたいと思います。一緒にリラックスして学んでいきましょう!
—
1. 家の鍵と防犯カメラに例える「OT環境のログ収集」
まずは、私たちの身近な「おうちの防犯」を想像してみてください。
皆さんの家には玄関の鍵がありますよね。泥棒が侵入しようとしてガチャガチャとドアノブを回したり、窓ガラスを割ろうとしたりしたとき、もし家に「防犯カメラ」や「スマートロックの履歴機能」があったらどうでしょう?
- 「何時何分に、どこから不審者が侵入を試みたか」
- 「どの窓がこじ開けられそうになったか」
こうした記録(ログ)が残るからこそ、警察に証拠を渡せたり、次にどんな対策をすればいいか分かったりしますよね。
これが、工場やプラントのOT環境でもまったく同じことが言えます。
工場の機械を動かすPLCや、それを監視・制御するSCADAサーバーは、いわば「工場という巨大な家を守る金庫」です。ここに誰がアクセスしたのか、おかしな操作コマンドを送ろうとしていないか記録を残すこと。これがOT環境におけるログ収集の第一歩なのです。
—
2. なぜOT環境のログ監視は難しいの?(ITとOTの決定的な違い)
「会社のPCやサーバーなら、ログ監視の仕組みを入れたことがあるよ!」という方もいるかもしれません。しかし、OT環境にはIT環境とは大きく異なる「特有の泥臭い事情」があります。
2-1. 止まれないプレッシャー
一般的なオフィスのPCなら、セキュリティソフトが重くなって少し固まっても再起動すれば済むことが多いです。しかし、工場のラインを動かすPLCを勝手に再起動したり、重いセキュリティプログラムを常駐させたりすると、最悪の場合、ラインが停止して大事故や莫大な経済損失につながります。そのため、ガチガチにセキュリティソフトを入れるのが難しいのです。
2-2. 独自プロトコルの世界
ITの世界では、Webを見るための HTTP や、メールを送るための SMTP といった共通の言葉が使われます。しかし、OTの世界(工場など)では、Modbus や S7comm といった、そのメーカーや機器特有の「方言(独自プロトコル)」飛び交っています。
「この機械がどんな命令を受け取ったか」を正しく理解し、監視するためには、ITのログとはちょっと違ったアプローチが必要になるんですね。
—
3. SIEM(シエム)ってなに?バラバラの記録をつなぎ合わせる「名探偵」
ここで登場するのが SIEM(Security Information and Event Management) です。日本語に訳すと「セキュリティ情報・イベント管理システム」ですが、難しく考えず「工場中の防犯カメラの映像と、センサーの記録を全部集めて、怪しい事件を24時間体制で見抜く優秀な名探偵」だと思ってください。
工場の中には、たくさんのPLCやSCADAサーバー、ファイアウォールがあります。それぞれがバラバラに「誰かがドアを開けたよ」「エラーが起きたよ」とメモを残していても、人間が全部チェックするのは不可能ですよね。
そこでSIEMの出番です。
SIEMは、すべての機器からログを集め、時系列に綺麗に並べ替えてくれます。さらに、人間では気づけないような「あやしい動きの組み合わせ」を検知して、私たちに「おい、今すぐ工場を確認してくれ!」とアラートを出してくれるのです。
—
4. 実践!OT特有の脅威を見抜くSIEM相関ルールを作ってみよう
それでは、実際にSIEM(今回はオープンソースのログ分析などでよく使われるElasticsearch / Logstashのクエリや相関ルールのイメージ)で、どのように脅威を検知するのか、具体的な設定を見ていきましょう!
今回は、「通常は絶対にありえない時間帯や、外部の怪しいネットワークから、PLCの書き込みコマンド(レジスタ変更)が飛んできたケース」を検知するルールを考えてみます。
以下の設定サンプルを参考にしてみてください。
{
"rule_name": "OT_PLC_Unauthorized_Write_Detection",
"description": "深夜帯におけるPLCへの不正な書き込みコマンド(Modbus Function Code 0x06/0x10等)を検知します",
"index": "ot-network-logs-*",
"time_window": "5m",
"query": {
"bool": {
"must": [
{
"match": {
"protocol": "Modbus/TCP"
}
},
{
"terms": {
"modbus.function_code": [6, 16]
/* コメント: ファンクションコード6(単一レジスタ書き込み)や16(複数レジスタ書き込み)を指定。
読み取り(Read)ではなく「書き込み」は設定変更を意味するため厳重に監視します */
}
},
{
"range": {
"@timestamp": {
"gte": "now-5m"
}
}
}
],
"must_not": [
{
"ip_range": {
"source.ip": "192.168.100.0/24"
/* コメント: 工場の正規のエンジニアリング端末(信頼できるIP帯)からの通信は除外します */
}
}
]
}
},
"alert_action": {
"severity": "HIGH",
"notification": "security-ops@example.com",
"message": "警告: 許可されていない外部IPからPLCへの書き込み試行が検知されました!直ちにSCADAの画面を確認してください。"
}
}
コードの解説ポイント
1. プロトコルの特定 (protocol: "Modbus/TCP"): 工業用プロトコルであるModbus通信のログだけに絞り込んでいます。
2. 危険な操作の監視 (modbus.function_code): データを「読む」だけでなく、機械の動きを変えてしまう「書き込み」の命令に焦点を当てています。
3. ホワイトリストの活用 (must_not): 工場のメンテナンス用として許可されている正規のパソコンのIPアドレス(例: 192.168.100.0/24)からの通信をあらかじめ除外することで、無駄なアラート(誤検知)が鳴るのを防いでいます。
—
5. 現場で役立つ!インフラ担当者のための泥臭い運用ティップス
きれいなルールを作っただけでは、実際の現場は守れません。現場のエンジニアやIT担当者が、今日から意識できる「泥臭いけど大切なポイント」をいくつかご紹介します。
- まずは「受動的(読込専用)」な監視から始める
いきなり通信を遮断するような厳しいルールを入れると、工場のラインが止まって大目玉を食らいます。まずは「ログを集めて、怪しい動きをメールで通知する(監視のみ)」のフェーズを十分に経て、誤検知が出ないかチューニングを重ねましょう。
- IT部門とOT部門の「通訳」になる
IT担当者はセキュリティの知識はあるけれど工場の機械のことは分からない。逆にOT(現場)の人は機械のプロだけどサイバー攻撃の怖さはピンとこない。この両者の間に立って「今、こういうサイバー攻撃の兆候があるから、このログを一緒に見させてほしい」と歩み寄る姿勢が、実は一番の防御壁になります。
—
まとめ
いかがでしたでしょうか?
OT環境におけるログ収集とSIEM連携は、難しく聞こえるかもしれませんが、本質は「工場という大切なお家を守るための、賢い防犯カメラと警備システムづくり」です。
一歩ずつ、まずは手元のログを眺めることから始めてみましょう。あなたのその小さな一歩が、社会インフラや工場の安全を守る大きな盾になります。
これからも一緒に、楽しみながらセキュリティを学んでいきましょうね!
コメント