OTセキュリティブログ

Nozomi Networks GuardianのスマートポーリングでBACNetデバイスを検出してみた

作成者: 株式会社テリロジー|Dec 14, 2022 7:28:52 AM

こんにちは

Nozomi Networks製品を担当している三輪と申します。

 

今回は Nozomi Networks Guardian (以降 Guardian)のスマートポーリング機能を使って、BACnetデバイスシュミレーターの詳細情報を取得してみたいと思います。

スマートポーリングについてはこちらの記事をご覧ください。

https://app.hubspot.com/content-detail/21998589/blog-post/82305689199/performance

テスト構成

今回は以下のような構成で可視化を行います。

Guardianのモニタポートにスイッチからのモニタトラフィックを送信します。
Guardianのマネージメントポートはスイッチに接続してBACNetコントローラとIPリーチャブルにします。マネージメントポートを使ってポーリングを行います。

設定

BACNetコントローラ側

「Yet Another Bacnet Explorer」をインストールすると、Addonフォルダに「Bacnet.Room.Simulator.exe」ができますので、このファイルを実行します。

BACNetモニタ側

モニタ側はBACNetポーリングには応答しないので今回は使いません。

Guardian側

バージョンはNIOS22.4を使用しています。

スマートポーリングのストラテジーから「BACNet」を選択します。

プランの名前、ポーリングの範囲(ノードやサブネットワーク等)、ポーリング間隔、BACNetのポート番号を設定します。
BACNetのデフォルトのポート番号は「UDP47808」ですが、このシュミレーターでは違うポートを使っているようです。

テスト用ホストにBACNetデバイスのIPアドレスを入力して「接続チェック」ボタンをクリックします。成功すると以下のような画面が表示されます。

もし、「接続チェック」に失敗するようでしたら「Download trace」ボタンをクリックしてWireSharkで問題を確認します。
以下はGuardianが「UDP47808」でポーリングしたが「UDP57142」で応答が返っているので失敗した例です。

Guardianでの情報収集結果

それでは、GuardianのBACNetスマートポーリング機能でどのような情報が取得できたか見てみましょう。
モニターしているトラフィック情報からは取得できないような「firmware」「model」「vendor」「application」「object」「description」「location」といった情報を取得することができました。

定期的なポーリングなので変化する情報が含まれている場合はヒストリを追うことができます。今回は変化のない情報のみです。

 

Guardianはモニタトラフィックから得られる情報と、このスマートポーリングから得られる情報をマージしてアセットビューに表示します。


それではアセットビューを見てみましょう。
「名前」「OS/ファームウェア」「ベンダー」などの情報が補完されました。

アセットの詳細画面を開くと「プロパティ」にBACNetスマートポーリングで得られた情報が表示されています。

スマートポーリングプログレッシブモード設定

プログレッシブモードはスマートポーリングの設定を簡略化するための機能です。

モニタトラフィックでプロトコルが「BACnet」で認識されているノードのIPアドレス情報をもとにして自動的にポーリングをかける機能です。

「BACnet」以外にも「Dahua」「EthernetIP」「MELSOFT」「Modbus」「S7」に対応しています。

自動的にIPアドレスが登録されポーリングを開始しました。

まとめ

スマートポーリングはデバイスに対する負荷にもなりますので安易に実施できないと思いますが、より深いレベルまで資産の可視化を可能にします。
セキュリティ対策を適切に実施するにあたって、インフラ上で使われているBACNetデバイスの資産の把握は欠かすことができず、スマートポーリングような機能についても検討の余地があるのではないかと思います。