こんにちは!IoTや制御システムのセキュリティの世界へようこそ。
新人のIT担当者さんや、これからセキュリティを学び始める開発者さんにとって、工場の機械を動かす「PLC(プログラマブル・ロジック・コントローラー)」という言葉は、少し遠い世界のものに聞こえるかもしれませんよね。
でも大丈夫です。今回は、工場やインフラの心臓部であるPLCが、万が一ランサムウェア(データを人質にする悪いウイルス)に襲われたとき、どうやって現場を守り抜くのか。家の鍵や防犯の例えを交えながら、一歩ずつ分かりやすく紐解いていきましょう!
—
1. 家の鍵で例える「PLCのバックアップとリカバリ」
まずは身近な例から考えてみましょう。
みなさんは、自宅の合鍵をどこかに保管していますよね? もし泥棒が入ってきて、家中の鍵を勝手に付け替えられてしまい、「元の鍵では家に入れなくなった!」と想像してみてください。血の気が引きますよね……。
工場のPLCで起きるランサムウェア感染も、これとまったく同じです。
PLCというのは、工場のコンベアを動かしたり、タンクのバルブを開け閉めしたりする「機械の脳みそ」です。攻撃者がこの脳みそに侵入し、内部のプログラム(ロジック)を勝手に書き換えて暗号化してしまったらどうなるでしょう? 工場全体が完全にあべこべに動き出したり、ピタッと止まってしまったりします。
ここで重要になるのが、「絶対に安全な場所にある予備の合鍵(=オフラインバックアップ)」です。
インターネットに繋がったパソコンの中にバックアップを置いておくと、ランサムウェアは容赦なくそこまで探し出して暗号化してしまいます。だからこそ、ネットワークから完全に切り離された(オフラインの)媒体に、正常に動いていたときのPLCプログラムを保管しておく必要があるのです。
—
2. 攻撃者はどうやってPLCを狙うのか?
「うちは工場だし、ネットには繋がっていないから大丈夫!」……実は、この油断が一番危ないんです。
近年のサイバー攻撃は非常に巧妙です。オフィス側のパソコン(ITネットワーク)から侵入し、そこから「踏み台」にして工場側のネットワーク(OTネットワーク)へとこっそり忍び込みます。
PLCの多くは、古い通信プロトコル(ModbusやS7コミュニケーションなど)を使って動いています。これらは、「通信の相手が本当に信頼できるか」を確認する強力な仕組み(認証)が備わっていないことが多く、工場内のネットワークに一度侵入されてしまうと、まるで「合鍵がドアに挿しっぱなしの状態」のようになってしまうのです。
攻撃者はPLCのプログラムを書き換え、身代金を要求するメッセージを表示させたり、最悪の場合、物理的な破壊を引き起こそうとします。
—
3. 実践!オフラインバックアップ管理とリカバリの心構え
「じゃあ、バックアップを取っておけば完璧ですね!」と言いたいところですが、ここで現場のリアルな落とし穴があります。
いざという時に使おうと思ったバックアップファイルが、「壊れていた」「古すぎて今の機械のバージョンに合わなかった」「誰も復元方法を知らなかった」というトラブルが、現場のインディシデントでは本当によく起きるんです。
だからこそ、定期的な「リカバリ演習(復旧訓練)」が欠かせません。ここからは、実務で役立つバックアップ管理と復旧のステップを見ていきましょう。
ステップ1:バックアップファイルのバージョン管理とハッシュ値の記録
バックアップファイルは、ただ保存しておくだけでは不十分です。「誰が、いつ、どの状態のプログラムを保存したか」を明確にし、さらにファイルが途中で改ざんされていないかを証明するために「ハッシュ値(ファイルのデジタル指紋)」を記録しておきます。
以下は、バックアップ管理台帳のサンプル(JSON形式)です。実務ではこのようにメタデータとセットで管理します。
{
"device_id": "PLC-A-Line01",
"model": "Siemens S7-1200",
"backup_date": "2024-05-20T10:00:00Z",
"firmware_version": "V4.4",
"backup_operator": "Yamada (IT Sec)",
"storage_location": "Offline Encrypted USB (Vault #3)",
"sha256_checksum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"notes": "定期メンテナンス後の正常動作確認済みロジック"
}
ステップ2:オフライン環境でのリストア(復旧)手順の確立
ランサムウェアに感染したと判明した場合の、現場での泥臭いリカバリ手順は以下の通りです。パニックにならず、この手順をマニュアル化しておきましょう。
1. ネットワークの物理隔離:感染拡大を防ぐため、影響を受けたPLCセグメントのLANケーブルを即座に抜く(物理的に引っこ抜くのが一番確実です)。
2. PLCの完全初期化(ファクトリーリセット):メモリ内に残った不正なプログラムやランサムウェアの残骸を綺麗に消し去るため、PLCを工場出荷時の状態に戻します。
3. オフラインバックアップの投入:金庫からオフラインのUSBメモリ等を取り出し、安全が確認されたエンジニアリング用PCからPLCへプログラムを書き込みます。
4. 整合性チェック:書き込んだプログラムのハッシュ値が、ステップ1で記録した sha256_checksum と一致するか必ず確認します。
5. 段階的な稼働確認(Dry Run):いきなり全開で機械を動かすのではなく、センサーの入力値やバルブの動作を一つずつ手動でテスト(IOチェック)してから、通常の自動運転に戻します。
—
4. まとめ:一歩ずつ、確実な備えを
いかがでしょうか? PLCのバックアップとリカバリは、難しい呪文のようなセキュリティ技術ではなく、「大切な家を守るための合鍵の管理と、避難訓練」と同じ考え方です。
最初は難しく感じるかもしれませんが、
- 「バックアップはネットから切り離して保管する」
- 「定期的に本当に復元できるかテスト(演習)してみる」
この2つを意識するだけでも、あなたの組織のセキュリティレベルは劇的に向上します。ぜひ、日々の業務やインフラ構築の参考にしてみてくださいね。一歩ずつ、確実に安全なシステムを作っていきましょう!
コメント