こんにちは!インフラやセキュリティの世界へようこそ。
日頃からネットワークやシステムの裏側に興味を持って、このブログを訪れてくれて本当に嬉しいです。
今回は、私たちが普段何気なく使っている電気や水道といった「重要インフラ」の裏側で密かに稼働している、少し特殊で、しかし極めて重要な通信プロトコル「DNP3」のお話です。
「プロトコルって何?」「なんだか難しそう……」と思った方も、どうぞご安心ください!一歩ずつ、身近な例えを交えながら優しく紐解いていきますので、コーヒーでも飲みながらリラックスして読み進めてくださいね。
—
1. 私たちのインフラを支える「DNP3」ってどんな仕組み?
まず、「DNP3(Distributed Network Protocol 3)」がどんなものか、イメージしてみましょう。
皆さんのご家庭に届く電気や水道。これらは広大な地域に張り巡らせたパイプや電線を通って届けられていますよね。遠く離れた発電所や浄水場から、街の変電所やバルブの状態を監視したり、「ちょっとバルブを開けて!」と命令を出したりするためには、専用の通信手段が必要です。
この「インフラ設備同士が会話するための共通言語」の一つが、DNP3なんです。
郵便配達で例えてみましょう!
DNP3の通信を、手紙のやり取りに例えてみます。
- 親御さん(マスター局): コントロールセンターのオペレーター。
- 子どもたち(アウトステーション): 遠く離れた現場のセンサーやスイッチ。
親御さんは子どもたちに向けて、「今の水圧はどう?」「スイッチをオンにして!」という手紙(コマンド)を出します。子どもたちはそれを受け取って、「異常なしです!」「スイッチをオンにしました!」とお返事を書きます。
この手紙の書き方や封筒のルールを定めたのが、DNP3というわけですね。
—
2. なぜ危ないの?DNP3が抱える「優しすぎる」弱点
ここで少し、セキュリティの視点に切り替えてみましょう。
実は、DNP3というプロトコルが生まれたのは1990年代初頭。当時はインターネットに繋がることが想定されておらず、「誰も変電所に入ってきて悪さをしない(物理的に安全だ)」という性善説のもとに設計されました。
そのため、DNP3には致命的な特徴があります。それは、「届いた手紙の差出人を確認する仕組み(暗号化や強固な本人確認)が標準ではない」ということです。
郵便受けに鍵がかかっていない状態?
もし、あなたの家の郵便受けに鍵がかかっていなくて、誰でも勝手に中身を読み書きできたらどうでしょう?
悪意を持った人が、差出人の名前を親御さん(コントロールセンター)に偽って、こんな偽の手紙を子どもたちに送りつけることができてしまいます。
- 偽の手紙: 「すべてのバルブを全開にせよ!」
子どもたちは「親御さんからの手紙だ!」と信じ込み、言われるがままにバルブを開けてしまいます。これが、インフラシステムを狙うランサムウェアやサイバー攻撃の恐ろしい手口、「セッションハイジャック」や「偽装制御メッセージの送信」の正体なんです。
そして、このDNP3がよく使っている連絡網の住所(ポート番号)が、今回テーマにする 20000 番というわけですね。
—
3. マルウェアはどうやって忍び込むのか?
近年のランサムウェアは、ただパソコンのファイルを人質にして身代金を要求するだけではありません。巧妙に企業のITネットワーク(オフィス側のPCなど)から侵入し、そこを足がかりにして、工場のラインや電力網を動かすOT(制御技術)ネットワークへと牙をむきます。
ITとOTの境界線にある「ファイアウォール」という関所を何らかの手口で突破したマルウェアは、次のようなステップで牙を剥きます。
1. 偵察: ネットワーク内をこっそり覗き見して、20000 番ポートで通信している機器(変電所のコントローラーなど)を探す。
2. なりすまし: コントロールセンターになりすまして、DNP3の偽装コマンドを作り出す。
3. 破壊・停止: 嘘の命令を送りつけ、設備を強制停止させたり誤作動させたりして、インフラを人質に取る。
恐ろしいことに、これが現実の社会インフラで起こり得るリスクとして、日々警戒されているのです。
—
4. 現場でできる!ネットワークレベルの防御策
「うわ、なんだか怖くなってきた……どうやって守ればいいの?」
大丈夫です!私たちネットワークエンジニアやセキュリティ担当者が、現場でできる強力な防衛策がちゃんとあります。
今回は、実務でもすぐに役立つ「ファイアウォールのパケットフィルタリング設定」と、「通信の監視」のアイデアを見ていきましょう。
① ファイアウォールでの厳格な交通整理(ポート制限)
まずは、不要な通信を徹底的にシャットアウトすることです。DNP3のポートである 20000 番は、あらかじめ許可された正当な通信元(コントロールセンターのIPアドレスなど)からしかアクセスできないように、厳しく制限(ホワイトリスト運用)します。
例えば、Linuxのパケットフィルタリングツール(iptablesやnftables)を使う場合、次のような設定が考えられます。
# ==========================================
# DNP3 (ポート20000) への不正アクセスを防ぐ設定例
# ==========================================
# 1. 信頼されたコントロールセンターのIPアドレス(例: 192.168.100.50)からの通信だけを許可する
iptables -A INPUT -p tcp --dport 20000 -s 192.168.100.50 -j ACCEPT
# 2. 上記以外のIPアドレスからポート20000への通信は、すべて容赦なくブロックする
iptables -A INPUT -p tcp --dport 20000 -j DROP
# 3. 同様にUDPでの通信も使う環境であれば同様に制限する
iptables -A INPUT -p udp --dport 20000 -s 192.168.100.50 -j ACCEPT
iptables -A INPUT -p udp --dport 20000 -j DROP
② セキュアなプロトコル(DNP3 Secure Authentication)への移行
先ほど「DNP3は差出人を確認しない」と言いましたが、実はその弱点を克服するための拡張規格が存在します。それが 「DNP3 Secure Authentication (SAv5など)」 です。
これを使うと、手紙のやり取りのたびに「合言葉(暗号署名)」を確認し合うようになるため、たとえ悪者が手紙を盗み見たり偽装しようとしても、合言葉を知らないのですぐにバレて弾き返すことができるようになります。
次世代のインフラ構築では、このようなセキュアな認証機能の有効化が必須条件となっています。
—
5. おわりに:安全なインフラストラクチャを守るために
今回は、DNP3プロトコルとポート 20000 が抱えるリスク、そして私たちが現場で取るべき防御策についてお話ししました。
インフラの世界は、新旧さまざまな技術が入り交じっており、セキュリティを保つのは決して簡単なことではありません。しかし、仕組みを正しく理解し、適切な門番(ファイアウォール)を置き、正しい合言葉(セキュア認証)を取り入れていくことで、私たちの生活の基盤をしっかりと守り抜くことができます。
「難しそう」と感じた技術も、こうして身近な例えに置き換えてみると、少し見方が変わってきたのではないでしょうか?
日々の学びや実務のインフラ構築のなかで、今回の内容が少しでも皆さんのヒントになれば嬉しいです。
それでは、また次回の技術解説でお会いしましょう!安全なネットワークライフを!
コメント