こんにちは
Nozomi Networks製品を担当している三輪と申します。
今回は Nozomi Networks Guardian (以降 Guardian) を使って、BACnetデバイスシュミレーターの通信を可視化してみたいと思います。
BACnetとは、Building Automation and Control Networking Protocolの略で、ASHRAE(アメリカ暖房冷凍空調学会)が策定したビルディングネットワークのための通信規格です。
昨今は、ビル向けセキュリティガイドラインなども策定されており、ビルシステムのサイバーセキュリティ対策が注目されています。
GuardianはBACnetプロトコルをサポートしており、通信の可視化やBACnet機器のアセット情報を収集することができます。
準備
今回は、「Yet Another Bacnet Explorer」というオープンソースのBACnetデバイスシュミレーターを使いました。
https://sourceforge.net/projects/yetanotherbacnetexplorer/
モニターとコントローラがセットになっていて、それぞれ別のWindowsPCにインストールすることで、BACnetの通信を確認することができます。
設定
BACNetコントローラ側
「Yet Another Bacnet Explorer」をインストールすると、Addonフォルダに「Bacnet.Room.Simulator.exe」ができますので、このファイルを実行します。
空調のシュミレーターです。一定範囲で温度がランダムに変わる動きが確認できます。
「1」「2」「3」のボタンで「Comfort」「Eco+」「Vacancy」とモードを切り替えることができ温度も変わります。
BACNetモニタ側
「Yabe.exe」を起動します。
BACNetコントローラのIPアドレスを入力して追加します。
追加したデバイスを選択して「objects」から「Subscribe」をクリックすると定期的にモニタリングできるようになります。
これで準備完了です。
WireSharkで確認すると、BACNetコントローラからBACNetモニターに対して通信していることがわかります。どうもこのシュミレーターはBACNet標準のUDPポート番号「47808」を使っていないようです。
Guardianでの可視化
まずは、ダッシュボードの統計情報を見てみましょう。
BACNetの制御コードが可視化できていることがわかると思います。
次に、アセットビューを見てみます。
BACNet標準のUDPポート番号を使用していませんが、プロトコルはBACNetとして識別しています。これはGuardianがポート番号だけではなく、プロトコルの内部も解析しているからです。
プロセスビューを見てみます。
空調の温度の変化がグラフで示され、最大値と最小値等を確認することができます。
温度の値は学習され、学習期間後に逸脱する数値を検知した場合はアラートに上げます。
例えば、空調の温度を19℃にセットして学習させます。学習が終了してプロテクトモードに移行した後に空調の温度を21℃に設定しました。
すると異変を検知してアラートが上がります。
この他にも学習中に使用されていなかったBACNetコマンドを検知した時もアラートがあがります。
まとめ
最新のビルでは、空調や照明、エレベーター、監視カメラなど非常に多くの機器がネットワークにつながっています。こうしたビルでは、IoTに多大な恩恵を受けている反面、サイバー攻撃の危険性もあります。
監視カメラにハッキングして、社内の行動を把握し、サーバーのダウンを狙って空調の制御システムを停止させたり、ビルシステムを悪用して設備機器を不正操作されれば、人命に危険が及ぶ可能性もあります。
ビルを建築する際には、BACNetをモニターするシステムも導入すると思いますが、それらはサイバーセキュリティを考慮したシステムではありません。Guardianのように
資産管理、ネットワークや制御の可視化、脆弱性情報、不正侵入、マルウェア検知などを一元的に管理できるソリューションを是非ともご検討ください。
- カテゴリ:
- Nozomi Networks
- BACNet