【入門編】 産業用制御システムにおける時刻同期(NTP/PTP)のセキュリティ – IoT・OT(制御システム) & ブロックチェーンセキュリティ防御ガイド

こんにちは!IoT・OTセキュリティの世界へようこそ。新人IT担当者の皆さん、日々のインフラ管理や開発、本当にお疲れ様です。

いきですが、皆さんの家にある「掛け時計」を想像してみてください。リビングの時計が5分進んでいて、キッチンの時計が正確だったらどうでしょう? 「あれ、今何時だっけ?」と混乱しますよね。これがもし、工場を動かす巨大なシステムや、何千台も繋がったIoTデバイスの世界だったらどうなるでしょうか。

今回は、産業用制御システム(SCADA)やIoTの世界で、見落とされがちだけど実はめちゃくちゃ重要な「時刻同期(NTP/PTP)」のセキュリティについて、分かりやすく紐解いていきたいと思います。一歩ずつ、一緒に学んでいきましょう!

—

1. なぜ制御システムで「時間」がそんなに大事なの?

工場やプラントといったOT(Operational Technology)の現場では、秒単位、いやミリ秒単位の正確さが命です。

例えば、化学プラントで事故が起きたとしましょう。「Aのバルブが開き、その2秒後にBのモーターが停止した」というログが残っていれば、原因の特定ができます。しかし、システムのあちこちのデバイスで時間がズレていたらどうでしょう?
「モーターが止まったのが先か、バルブが開いたのが先か分からない……」ということになり、インシデントハンドリング(事故調査)が完全に迷宮入りしてしまいます。

家の防犯カメラに例えてみよう

防犯カメラを家につけているとしますよね。庭のカメラの時間が10分遅れていて、玄関のカメラが正確だったら、泥棒が庭から入って玄関を抜けたとき、映像の辻褄が合わなくなって警察への説明に困ってしまいます。

だからこそ、すべてのデバイスの時計を正確に合わせる「時刻同期」が絶対に必要なんです。

—

2. 攻撃者はどうやって「時間」を狙うのか?

ここで少し怖い話をします。サイバー攻撃者や悪意あるハッカーは、この「時刻同期の仕組み」をあえて狙ってきます。

通常、IoTデバイスやSCADAのサーバーは、インターネット上や社内にあるNTP(Network Time Protocol)サーバーから「今何時ですよ」という時刻データを受け取って時計を合わせます。

しかし、もし攻撃者がネットワークの途中に割り込んで、この時刻データを書き換えたらどうなるでしょうか?

  • タイムシフト攻撃: 攻撃者がデバイスの時計をわざと数時間、あるいは数日狂わせます。
  • ログの隠蔽: 攻撃者は深夜に不正アクセスしてシステムをいじった後、デバイスの時計を過去に戻して「そんなログは最初からなかったこと」にしてしまいます。
  • 証明書の無効化: セキュリティ証明書は「有効期限」を持っています。時間を未来に狂わされると、「まだ有効なはずのセキュリティ証明書が期限切れです」と誤認され、正当な通信がすべてブロックされてしまう(サービス停止に追い込まれる)のです。

まさに、家の時計を勝手に進められたり戻されたりして、家族全員の生活リズムがめちゃくちゃにされるようなものです。恐ろしいですよね。

—

3. 対策の切り札:認証付きNTPを使おう!

「じゃあ、どうやって時間を守ればいいの?」という話になりますよね。
ただのNTP通信は、実は「誰が送ってきたデータでも素直に信じちゃう」というお人好しなプロトコルです。そこで登場するのが、認証付きNTPです。

身近な例で言うと、ただの郵便受けに「今何時です」と書いたメモが入っていても、誰が書いたか分かりませんよね。でも、そこに「市役所の公印(デジタル署名)」が押してあれば、偽物かどうか一目で分かります。これと同じことをネットワーク上で行うのが、認証付きNTPの仕組みです。

NTPの代表的な設定例を見てみよう

Linuxサーバーなどでよく使われるNTPクライアント(ここでは chrony を例にします)の設定ファイルを覗いてみましょう。実務でもそのまま参考になるようにコメントを書いておきますね。

# /etc/chrony.conf の設定例
# 信頼できる上位の時刻サーバーを指定します
server ntp.local.factory.net iburst

# 【重要】単に時間を合わせるだけでなく、暗号鍵を使った認証を有効化します
# 攻撃者が偽の時刻データを送り込んでも、署名検証で弾き返せるようにします
keyfile /etc/chrony.keys

# サーバーID(例: 1番の鍵を使う)を指定
commandkey 1

# 万が一、時間が大きくズレてしまった場合の対策
# 制御システムでは、急激に時間をジャンプさせると制御機器がバグることがあるため、
# 徐々に時間を合わせる(スルーモード)設定にします
makestep 0.1 3

このように、単にサーバーのIPアドレスを書くだけでなく、「暗号鍵(キー)」を使って通信の正当性を担保することが、今のセキュリティの常識になっています。

—

4. 高精度な制御には「PTP(IEEE 1588)」の存在も

工場のロボットアーム同士がミリ秒単位で連携するような超高速な現場では、NTPよりもさらに高精度なPTP(Precision Time Protocol / IEEE 1588)というプロトコルが使われます。

PTPは、ハードウェアレベル(ネットワークカードやスイッチ)でタイムスタンプを刻むため非常に正確ですが、その分、パケットの改ざんに対するリスクも高くなります。
そのため、PTPを利用する際も、IPsecやMACsecといったネットワーク層での暗号化・認証技術を組み合わせ、パケットの途中改ざんを防ぐ多層防御が不可欠です。

—

まとめ:正確な「時間」は、強固なセキュリティの土台

今回は、産業用制御システムにおける時刻同期のセキュリティについて解説しました。

1. 正確な時間がないと、インシデント発生時のログ解析(フォレンジック)が立ち行かなくなる。
2. 攻撃者は時刻を狂わせることで、ログを隠したりシステムを誤作動させたりする。
3. 対策として、認証付きNTPや暗号化を用いて、時刻データの偽装を防ぐ必要がある。

セキュリティというと、どうしても「ファイアウォール」や「パスワード管理」ばかりに目が向きがちですが、「時間という目に見えない共通基盤を守る」ことも、同じくらい、いや現場によってはそれ以上に大切なんです。

新人エンジニアの皆さん、今日からインフラやデバイスの設定を見直すときは、ぜひ「この時計、本当に信じて大丈夫?」という視点を持ってみてくださいね。それでは、また次回のセキュリティ解説でお会いしましょう!

コメント

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