こんにちは!ITインフラやWeb開発の現場に飛び込んだばかりの頃は、専門用語の多さに圧倒されてしまいますよね。「セキュリティの勉強をしなきゃいけないけれど、どこから手をつければいいの……」と悩んでいる方も多いのではないでしょうか。
今回は、工場やプラントといった「OT(制御システム)」の世界で使われている、めちゃくちゃ重要で、しかも私たちの日常生活の防犯ルールにそっくりなセキュリティの考え方「IEC 62443規格に基づくゾーンとコンジットの設計原則」について、一緒に一歩ずつ優しく学んでいきましょう!
難しい言葉は一切なしで、まずは身近な「おうちの防犯」からイメージを膨らませてみますね。
—
1. 家の鍵に例える「ゾーンとコンジット」の基本
みなさんのおうちを想像してみてください。玄関には頑丈な鍵がついていますよね。では、リビングや寝室、そして子ども部屋にはどうでしょうか? 家の中に入ってしまえば、すべての部屋が自由に行き来できるようになっているのが一般的です。
でも、もし「泥棒が玄関の窓を破ってリビングに入ってきた!」というとき、もし家の中のドアに鍵が一切なかったらどうなるでしょう? 泥棒は一瞬で寝室の金庫や、プライベートな私物にたどり着いてしまいますよね。
これが、昔の工場やOTネットワークでよく起きていた悲劇なんです。「一度社内ネットワーク(工場の中)に入ってしまえば、どのパソコンも機械も自由自在に操作できる」という状態ですね。これでは、どこか一箇所が破られた瞬間にゲームオーバーになってしまいます。
ゾーンとコンジットってなぁに?
そこで登場するのが、IEC 62443という国際規格が教えてくれる「ゾーンとコンジット」という考え方です。
- ゾーン(Zone):
家でいう「部屋(リビング、寝室、庭など)」のことです。似たような目的や重要度を持つ機器のグループを、ひとまとめに区切ったエリアを指します。
- コンジット(Conduit):
部屋と部屋をつなぐ「ドア」や「廊下」のことです。ゾーンとゾーンの間をつなぐ通信路であり、「誰が、どの部屋から、どの部屋へ入っていいか」を厳しくチェックする関所の役割を持ちます。
工場で言えば、「温度を測るセンサーのエリア(ゾーンA)」と「巨大なモーターを動かすコントローラーのエリア(ゾーンB)」をしっかり壁(ネットワークの境界)で区切り、その間を行き来するデータ(コンジット)には必ず検問(ファイアウォールなどでのアクセス制御)を置く。これが、ゾーンとコンジット設計の基本になります。
—
2. なぜOT(制御システム)でこれが命綱になるの?
「オフィスのパソコンならウイルス対策ソフトを入れておけばいいんでしょ?」と思われるかもしれません。しかし、工場やライフライン(水道・電気など)を動かすOTの世界は、オフィスとは全く勝手が違います。
1. 止まらないシステム:
工場の機械は24時間365日動いていることが多く、簡単に「ちょっと再起動しますね」とパッチを当てることができません。
2. 古いOSが現役:
中身はWindows 95や古いLinuxなど、とうの昔にサポートが切れたシステムが動いていることも珍しくありません。
もし、オフィスのパソコンが誤ってマルウェア(ウイルス)に感染したとき、もし工場とオフィスがひとつの大きなネットワーク(ゾーン)でつながっていたらどうなるでしょうか?
泥棒(マルウェア)は、何の抵抗もなく工場の心臓部であるSCADA(監視制御システム)にたどり着き、モーターを暴走させたり、温度センサーのデータを改ざんしたりといった大惨事を引き起こしてしまうのです。だからこそ、ネットワークを細かく分割し、被害を最小限に食い止める「ゾーンとコンジット」の設計が、現場の安全を守る命綱になるんですね。
—
3. 実践!ネットワークの「お部屋割り」とコンジットの設定例
では、実際に現場のインフラを構築するとき、どのようにこの設計を反映させればよいのでしょうか? ここでは、産業用ルーターやファイアウォールを設定する際のイメージを、具体的な設定例を交えて見ていきましょう。
今回は、Linuxのパケットフィルタリングツールであるiptablesを例に、「監視ゾーン(Zone-SCADA)」から「制御ゾーン(Zone-PLC)」へ向かう通信(コンジット)を、特定の通信だけに絞り込む設定を覗いてみます。
# ==========================================
# ゾーン間コンジット(通信路)のアクセス制御設定例
# ==========================================
# 1. デフォルトのポリシーとして、ゾーン間の移動はすべて禁止(ブロック)にする
# (家のすべての部屋のドアを、まずは施錠するイメージです)
iptables -P FORWARD DROP
# 2. 監視ゾーンのPC(IP: 192.168.10.50)から、
# 制御ゾーンのPLC(プログラマブルロジックコントローラー・IP: 192.168.20.10)への
# Modbus TCP(産業用プロトコルで使われるポート 502)通信だけを許可する
iptables -A FORWARD -p tcp -s 192.168.10.50 -d 192.168.20.10 --dport 502 -m state --state NEW,ESTABLISHED -j ACCEPT
# 3. 許可された通信に対する「お返事(応答パケット)」の通信も通るようにする
# (これがないと、片道切符になってしまい通信が成立しません)
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# 【解説】
# これにより、「192.168.10.50の端末」以外からのPLCへのアクセスや、
# ポート502番以外の怪しい通信(Web閲覧やリモートデスクトップなど)は、
# すべてコンジット(関所)でガッチリ遮断されます。
このように、ただ「繋ぐ」のではなく、「誰が、何の目的で、どのポート(ドア)を通るのか」をきめ細かくコントロールするのが、コンジット設計の醍醐味です。
—
4. Web開発やIT担当者が現場で気をつけるべきこと
「私は工場で働いているわけじゃないから関係ないや」と思ったそこのあなた! ちょっと待ってくださいね。今の時代、IoTデバイスを通じて、私たちの身の回りのモノ(スマート家電やオフィスの環境センサーなど)がインターネットやクラウドとつながっています。
Webアプリケーションのバックエンド開発であっても、データベースのサーバーと、外部からのAPIを受け付けるサーバーの間に、しっかりとセキュリティグループ(クラウド上の仮想的なコンジット)を設けて、不要な通信をシャットアウトすることが求められます。
- 「とりあえず全部許可(
0.0.0.0/0)」のルールを作らない - 開発初期にありがちな「めんどくさいから全部通しちゃえ」という設定は、家の玄関の鍵を開けっぱなしにして出かけるようなものです。必要最小限のIPとポートだけを許可するクセをつけましょう。
- 通信の棚卸しを定期的に行う
- 「このコンジット、本当にまだ使っているんだっけ?」という通信路をそのままにしておくと、そこが将来の侵入経路になってしまいます。定期的に設定を見直すことが大切です。
—
まとめ
今回は、IEC 62443規格に基づく「ゾーンとコンジット」の設計原則について、おうちの防犯に例えて解説してみました。
- ゾーンでネットワークを部屋ごとにしっかり区切る。
- コンジットで部屋と部屋をつなぐドアを厳重に管理し、必要な通信だけを通す。
セキュリティの対策と聞くと身構えてしまいますが、基本の考え方は私たちが普段行っている「戸締まり」と同じです。一歩ずつ、安全なインフラづくりの感覚を掴んでいきましょうね。
それでは、次回のセキュリティ解説もお楽しみに!
コメント