みなさん、こんにちは!ITインフラの管理やセキュリティ対策、毎日お疲れ様です。「IoTやOT(制御システム)、そしてSCADAってなんだか難しそう……」そんな風に感じていませんか?
今回は、工場の機械やプラントのバルブを遠隔で動かす「産業用制御システム(SCADA)」の安全を守るための、とっても大切な「ログ収集とSIEM(シエム)連携」について、一緒に分かりやすく紐解いていきましょう!
一歩ずつ丁寧にお話ししていくので、セキュリティに初めて触れる方でも大丈夫ですよ。それでは、さっそくスタートです!
—
1. 家の防犯カメラに例える「SCADAのログとSIEM」
まずは、身近な例えから考えてみましょう。
想像してみてください。あなたの家には、頑丈な玄関の鍵(=ファイアウォール)がついていますよね。でも、もし泥棒がこっそり窓ガラスを破って侵入してきたらどうでしょう?鍵だけでは、家の中で何が起きているか分かりませんよね。
そこで役立つのが、家中に仕掛けられた防犯カメラやセンサー(=PLCやHMI、ゲートウェイからのログ)です。さらに、そのすべてのカメラ映像やセンサーの反応をひとまとめにして、リビングのモニターで24時間監視してくれる警備員さんがいたらどうでしょうか?
この「警備員さんが見ている監視モニターのシステム」こそが、セキュリティ業界でいうSIEM(Security Information and Event Management)なんです!
制御システムの現場で起きること
工場などのOT(制御システム)の現場では、PLC(プログラマブルロジックコントローラー)という頭脳を持った機械が、モーターを回したり、温度を調節したりしています。
もし、悪意あるハッカーがネットワークの隙をついて、このPLCに「温度を限界まで上げろ!」という異常な制御コマンドをこっそり送ってきたらどうなるでしょうか?工場の設備が壊れて、大事故につながる危険がありますよね。
だからこそ、機器たちが出す「今、誰がどんな命令を出したか」という足あと(=ログ)を逃さず集め、SIEMで「このコマンド、なんだか怪しいぞ!」とすぐに見つけ出す仕組みが必要になるのです。
—
2. 攻撃者はどうやって忍び込む?リアルな脅威のシナリオ
「うちの工場はインターネットにつながってないから大丈夫!」――実は、これ、現場のエンジニアが一番やりがちな油断です。
近年のサイバー攻撃者は、すごく巧妙です。
1. まず、オフィスのパソコン(ITネットワーク)に、社員を狙った偽メール(標的型攻撃)で侵入します。
2. オフィスから工場(OTネットワーク)へつながる「抜け道」を探して、じわじわと陣地を広げます。
3. ついに工場のPLCにたどり着き、正常なフリをして「バルブを全開にしろ」という不正なコマンドを実行します。
ここで重要になるのが、「異常な動きの早期発見」です。現場の機械たちがつぶやいている足あと(ログ)を、ただ放置するのではなく、一か所に集めて監視していれば、「あれ?夜中の3時に、普段使わない端末からバルブ操作のコマンドが飛んでいるぞ!」と気づくことができるのです。
—
3. SIEMで異常を検知する!相関ルールの設計にチャレンジ
それでは、実際に機器から集めたログをSIEMでどうやってチェックするのか、具体的な設定を見ていきましょう。
今回は、オープンソースのログ収集・転送ツールである Fluentd と、SIEMなどでよく使われる検索クエリのイメージを例に解説します。
ステップ①:PLCやゲートウェイからのSyslogを集める
まずは、工場内のあちこちにいる機器(PLCや通信ゲートウェイ)から、Syslogという形式で「誰が何を操作したか」のログを中央のサーバーに集めます。
以下は、Fluentd を使ってログを受け取り、セキュリティサーバーに送る際の設定ファイルのイメージです。
# ------------------------------------------------------------
# Fluentd設定ファイルサンプル (fluent.conf)
# 産業用ゲートウェイやPLCからのSyslogを受信して集約する設定
# ------------------------------------------------------------
<source>
@type syslog
port 514
bind 0.0.0.0
tag ot.syslog
<parse>
@type none
</parse>
</source>
# 受信したログにタイムスタンプや検知用タグを付与して転送
<match ot.syslog>
@type forward
# 送信先SIEMサーバーのIPアドレスとポートを指定します
<server>
name siem_server_01
host 192.168.100.50
port 24224
</server>
</match>
ステップ②:SIEMの相関ルール(検知ロジック)を作る
ログが集まったら、次は「どんな状態を異常とみなすか」というルール(相関ルール)を作ります。
例えば、「通常は業務時間外(夜間や休日)にPLCへ書き込みコマンドが飛ぶことはない」というルールをSIEMに覚えさせてみましょう。
以下は、SIEM(Elasticsearch / Kibanaなど)で使われる検索クエリのイメージです。
{
"query": {
"bool": {
"must": [
{ "match": { "event_type": "plc_write_command" } }, // PLCへの書き込みコマンドログ
{ "range": { "@timestamp": { "time_zone": "+09:00", "gte": "now/d+18h", "lte": "now/d+8h" } } } // 夜間帯(18:00〜翌8:00)の条件
]
}
},
"comment": "【重要】業務時間外にPLCへの書き込みが発生した場合、即座にセキュリティ担当者へアラートを飛ばす相関ルールです。"
}
このように、「いつ、どこから、どんなコマンドが飛んできたか」を組み合わせることで、機械の暴走やハッカーの侵入をピンポイントで炙り出すことができるのです。
—
4. 現場でありがちな失敗と、インシデントハンドリングのコツ
「よし、ログを全部集めて相関ルールを設定したぞ!」……ちょっと待ってください。現場でよくある失敗パターンがこれです。
- 失敗談: アラートが鳴りすぎて、現場の担当者が疲弊してしまう(アラート疲れ)
- 対策: 最初から完璧を目指さないこと!まずは「絶対に通しちゃいけない危険なコマンド」だけに絞って、少しずつルールを洗練させていきましょう。
もし、SIEMから「夜間に不審なコマンド検知」のアラートが鳴ったら、現場のイン担当者はどう動けばいいでしょうか?
1. 一次切り分け: そのコマンドを出した端末のIPアドレスを確認し、メンテナンス中の正当な作業ではないか(社内スケジュールと照合)を確認する。
2. 遮断対応: もし身に覚えのない不正アクセスであれば、該当するOTネットワークのセグメントを物理的・論理的に切り離す。
3. フォレンジック: なぜ侵入されたのか、ログを遡って原因を調査する。
こうした泥臭い確認作業の積み重ねこそが、私たちのプラントやインフラストラクチャーをサイバー攻撃から守る最強の盾になります。
—
さいごに
今回は、産業用制御システム(SCADA)におけるログ収集とSIEM連携について、家の防犯や具体的な設定例を交えて解説しました。
「難しそう」と思っていたOTセキュリティも、ログという「足あと」をしっかり集めて見張り番(SIEM)を置くことで、ぐっと身近に対策できることが分かっていただけたのではないでしょうか?
インフラや制御システムの安全を守るエンジニアの第一歩として、ぜひ今日から少しずつ、ログの仕組みに目を向けてみてくださいね。一歩ずつ、確実にスキルアップしていきましょう!
コメント