OTセキュリティ業界ではネットワーク監視製品が賑わっています。特に、運用中の制御システムに影響を与えずに、通信パケットから学習を行い、資産(アセット)情報を自動抽出するとともに正常状態からの変化をアラートする製品を各社提供している様子がうかがえます。そんな中、無償のツールを探し回り比較したところ、商用並みのすごいツールに出会えたので紹介します。ちなみに上図のようにインターネットとの通信の様子をリアルタイム表示する機能もあるのでOTに限らずIT環境に適用しても面白いと思います。
はじめに
サイバーディフェンス研究所の安井です。長年制御システムを開発してきた経験から制御システムセキュリティ向上に取り組んでいます。
先に開催された2022年の重要インフラサイバーセキュリティコンファレンスでは、セキュリティベンダ各社より、通信パケットをキャプチャして解析し異常を検知しアラートする類の製品が紹介されていました。運用している環境に影響を与えたく無いというユーザへの現実解であり、この種のツールが普及してほしいと思っています。どのように有用なのか、試したい方も多いのではないでしょうか?
とはいえ、予算を確保し自組織の環境で製品比較しようとしても試用品が無い場合があったり、デモを見て比較しようにも短時間では比較ポイントがよくわからない事もあると思います。また、関心があっても予算的に手が届かないと感じている方もいるのではないでしょうか。
対象読者
OTネットワーク監視に関心があり、無償で試して基礎知識を得たい方。
OTネットワーク監視に関心があるが、予算がなく困っている方。
OT/IT問わず、ネットワークトポロジ作成や自動学習するネットワーク監視ツールに興味がある方。
できること
無償のOTネットワーク監視ツール入手先を知れる。
一般的なOTネットワーク監視の基本機能について、実例をもとにイメージできる。
本稿で紹介すること
- OTネットワーク監視ツールの以下基本機能を有する無償ツールの紹介
- 運用への影響を与えないため、Passiveなパケットキャプチャから監視ができる
- アセット一覧とネットワークトポロジを自動生成できる
- 一定期間の自動学習と、学習後の変化を参照できる
- 適用事例として、工場制御システムを用いた、アセット把握と、攻撃試行時のアラート結果の紹介
言及しない付加価値的な機能
本稿では触れませんが、各社の商用の製品は、以下に列挙したような様々な付加機能を持っているものがほとんどだと思います。
- OTに特化したプロトコルの対応
- SignatureベースのIDS機能
- 各種ノードにアクセスして情報収集するActiveな監視機能
- FWなどの防護製品とのインシデント対応連携機能
自組織において、これらの機能が必要か判断するためにも、まずは今回紹介するツール等を使って基本機能を把握してみる事から始めると良いのではないかと思います。
有償ツールの比較は行いません。
有償のツールは各社から販売されており、これらのツール使用比較レビューを求められている方もいると思います。私自身、ある製品の検証をした事もあり、各社の製品を自社のサイバー攻撃検証用の環境に適用したいとも思っているのですが、予算的に複数ツールの購入には踏み切れず、じっくり比較した経験はありません。限られた経験における偏った情報を提供することは避けたいため、今回は有償ツールについては言及しません。
なお、上記のとおり筆者は個別製品の専門家ではありません。本稿を読んで、うちの製品は、こんな実用的な素晴らしい機能があるという事など教えていただけると助かります。また、更に、製品を貸してもいいよというベンダ様がいましたら声をかけていただけると幸いです。
無償ツールを探してみる
ここからは、無償で手に入るツールを比較します。とはいえ、この手のツールで無償のものはあまり見当たりません。そのような中、ICSサイバーコミュニティにて入手した情報から、NSA(National Security Agency:アメリカ国家安全保証局)のGRASSMARLINと、Dragos社のCYBERLENSおよびSOPHIAを紹介します。なお、その他にも各社商用ツールの試用版など制約の元利用できるツールもあるとは思いますが、それらについては取り上げていません。
GRASSMARLIN
2017年前後に開発されていたものであり、キャプチャしたパケットからアセットの情報を表示するツールです。代表的な機能としてはIPv4アドレスでのネットワークトポロジを表示することができます。現在世の中で流通している多機能なツールと比較すると機能が限定されている感は否めません。しかし、2017年当時を振り返ってみると、セキュリティ対策への関心が今ほど高いとは言えなかった当時のOT業界の方達へツールを無償で提供し、世界中の多くの方へ、OTセキュリティ対策の第一歩である「アセット把握」を後押しした意義あるツールだったのではないかと想像します。
今でもIPv4での野良サーバの発見程度の目的であれば十分使えると思うので、手軽に利用できますし興味ある方は使ってみると良いと思います。Linuxをインストールしたことがある方であれば、2時間もあればインストールして、マニュアルを軽く読みながら使えるようになると思います。一定時間パケットキャプチャしたPCAPファイルを読み込ませれば、自動でネットワークトポロジを作成してくれます。試しに、工場制御システムのネットワークに適用した例を下図に示します。
自動で生成されたネットワークトポロジに対し、見やすいようにノードの位置を手動で配置し直したものです。
左から、SCADA HMI(192.168.100.205)、SCADA Server(192.168.100.204)、Soft PLC(192.168.100.202)、仮想工場(192.168.100.112)の4つのIPアドレスが抽出され表示されているのがわかります。残り2つの224.0.0.251,239.255.255.250はマルチキャストの宛先IPアドレスです。224.0.0.251はホスト名解決に使用するMDNS(multicast DNS), 239.255.255.250はプリンタなどを識別するSSDP(Simple Service Discovery Protocol)であり、OSのデフォルトインストール状態では有効となっていますが工場制御システムには不要なものです。この事から、このシステムでは必要な通信だけに限定するセキュリティ対策までは行っていないのだなぁという事が読み取れます。
Dragos のICS Cybersecurity Community向けツール
Dragos社は、OT/ICS向けのサイバーセキュリティに特化した会社であり、2019年に競合のNexDefense社を買収した際に、もともと商用であったDragos社のCYBERLENSとNexDefense社のSOPHIAを無償公開しました。なお、現在Dragos社はこれとは別に有償製品を販売しているので、今回紹介するCYBERLENSとSOPHIAは最新の有償製品と同等のツールというわけではないことは承知おきください。
Dragos CYBERLENS
CYBERLENSで工場制御システムのネットワークトポロジを表示したものを下図に示します。見やすいようにノードの位置を手動で配置し直してあります。
IPv4アドレスだけでなくMACアドレスも表示していることがわかります。学習した内容をスナップショットとして保存しておき、その後の変化を表示する機能もあります。下図は、スナップショットを保存した後、IPアドレスを振っていない不正な端末をネットワークに接続し、スナップショット採取時との変化を表示したものです。
MACアドレス(08:00:27:3c:bc:93)が新たに登場したことがわかります。
商用だっただけありインストールは簡単で使い方も直感的にわかりやすいので、さくっと試して見てください。次に紹介するSOPHIAの方が機能豊富であるため、CYBERLENSの紹介はここまでにします。
Dragos SOPHIA
これはすごい!! もともとNexDefense社の商用製品であり、機能はもとより見た目や使い勝手も含めしっかり作り込まれている感があります。
アセット把握だけでなく、学習後の変化を容易にわかりやすく表示する機能があります。具体的には以下がDashboard画面ですが、上部のベルマークのAlertsの中に、「Baseline Deviation」という項目があり、ある時点までの通信状況を凍結したBaselineを作成しておき、Baseline作成時点からの変化発生数を表示することができます。
もちろんネットワークトポロジも表示できます。以下は工場制御システムのネットワークトポロジです。見やすいようにノードの位置を手動で配置し直してあります。
ちなみに、一番右端のノードがIPアドレスでなく(04-ab-18-3b-74-6e)とMACアドレスが表示されているのは、学習開始してから十分時間経過していないときに表示したためであり、この後1日放置した後に確認したところIPアドレス192.168.100.112に変わっていた事を補足しておきます。
本稿では触れませんがFreeのIDSとして有名なsnortやsuricataのルールを取り込んで異常検出する機能もあります。
余談ですが、これだけの物をICSのCommunityに無償で提供してしまうところに、Dragos社の心の広さと現在の自社製品への自信をうかがわせます。このように古い世代の製品を無償提供して業界や社会に貢献するとともに、自社の評判を高めるというのは、スタートアップ企業にとってもユーザにとっても両者WinWinの面白い戦略だなぁと思います。
不正な端末をネットワークに接続して攻撃試行したときの検出結果
ここからは、学習後の変化を表示する機能がどのように有益かイメージしてもらうために、代表的な攻撃シナリオとして、Dragos SOPHIAで監視しているネットワークのスイッチの空きポートに不正な端末(以降、攻撃者端末とも表記)を接続してネットワーク上を探索したときの結果を紹介します。
以下、時系列シナリオ風に攻撃側[Red]と防御側[Blue]のそれぞれの人物の思考と行動イメージで記載します。
不正な端末を接続して攻撃試行
[Red]攻撃者端末をネットワークのスイッチの空きポートに接続します。まずは、当該ネットワークの情報はわからないので、IPアドレスは割り当てずに流れてくるパケットを盗聴します。下図の左下のように、攻撃者端末をスイッチの空きポートに接続したイメージです。
[Blue]SOPHIAのDashBoardをみると、Alertsが増えている事がわかります。
[Blue]Alertsの詳細を見ると新たなMAC addressが出現しています。
[Blue]ネットワークトポロジで、正常時との変化を差分表示して見ると、やはり新たなMACアドレスが出現しています。
[Blue]たぶん、また誰かが勝手に野良端末をつなげたんだろうな?でも、もしかしたらサイバー攻撃かも?
[Red]スイッチの空きポートに攻撃者端末をつなげてキャプチャしただけなのでユニキャストのパケットは採取できません。ユニキャスト以外のパケットはキャプチャできているので、採取したパケットキャプチャを解析し、マルチキャストやブロードキャストのパケットの送信元IPアドレスからネットワークセグメントが(192.168.100.0/24)であると予想できます。
[Red]ネットワークにつながる機器を見つけたいので、攻撃者端末に適当に空いていそうなIPアドレス(192.168.100.106)を割り当て、ポートスキャンツールのnmapを使ってarpプロトコルで当該セグメント(192.168.100.0/24)に存在するホストを探索してみます。
[Blue]SOPHIAのDashBoardをみると、500以上のAlertsが増えている事がわかります。
[Blue]Alertsの詳細を見ると、先ほどのMAC addressの端末から多量の宛先に対してarp通信が発信されていることがわかります。
[Blue]ネットワークトポロジで正常時との差分を見ると、緑の枠で表示された192.168.100.106の端末が出現しており、そこから4つの装置に対して緑の線で示した新たな通信が発生していることがわかります。
[Blue]これは、サイバー攻撃を意図した偵察が行われていそうだ!!
[Red]この後も様々な攻撃を施行しましたが、詳細は割愛します。
[Blue]その後、様々なAlertsを検出していました。ここまでAlertsが発生しているということは、不正な端末はサイバー攻撃を意図して接続されていることが間違いなさそうです。
いかがでしょうか? 学習後の異なる振る舞いを検知するツールでどのような事象が検知できるかの一端をイメージいただけたのではないでしょうか?
インターネットと直接接続しないOTのネットワークにおいては、特定の宛先との特定のプロトコルでの通信しか流れておらず精度の高い学習ができる環境の場合が多いのではないでしょうか?そうであれば、この手のツールが、サイバー攻撃の兆候を発見するのに大きな役割を果たせそうなことがイメージできると思います。
補足 必ず検出できるのか?
攻撃シナリオの最初に攻撃者端末を接続したときにSOPHIAのアラートが検出されたのは、攻撃者端末から何かしらのパケットが発信されたためです。また、その後、500件ものアラートを検出したのは、攻撃者が、ネットワーク監視製品がある事を知らず、派手に探索を行ったためです。
もし攻撃者が、ネットワーク監視製品での検出を逃れるために、Baselineに登録された通信だけを使って高度な攻撃をしかけたら、発見できなかったかもしれません。
とはいえ、攻撃者がBaselineに登録済みの通信を全て推測することは、頻度も含めた詳細な通信設計情報を事前に入手しておくか、どこかしらのサーバ内に侵入して通信パケットを解析しておくなど、非常に難易度の高いハードルをクリアしておかないことには困難でしょう。
この補足は、あくまで、このツールを入れればどのような攻撃でも発見できるという訳ではない事を知ってもらうために書いたものです。
SOPHIAのリアルタイム表示機能
SOPHIAには、リアルタイムにパケットの流れをアニメーション表示する機能があります。以下は、工場制御システムで不正な端末によるネットワーク探索が行われた後の状況を示したものです。
中央の濃い赤の箱で示した192.168.100.0/24のセグメントの4つの装置間で通信している様子が表示されています。とくに密度が高い緑で表された部分が、PLCと仮想工場間の通信であり、ここで非常に頻繁な通信がおこなわれていることがわかります。
なお、ここでは、多量の透明の箱が表示されていますが、これは、右上隅の濃い赤の箱の攻撃者端末からnmapで当該セグメントの全アドレスあてに探索を行なったため、セグメントのすべてのIPが透明の箱で表示されてしまったものです。正常状態であれば、透明な箱は出現しないので、このような多量の透明の箱が出現する事が異常という認識さえあれば、この画面からも異常に気づくかもしれません。
参考
今回の工場制御システムはインターネットと接続がない環境でしたが、インターネットと接続する環境に適用すれば、インターネット上の相手とのやりとりもリアルタイムで表示します。
下図は、インターネットと接続したネットワークにSOPHIAを適用し、日本のあるサイトから巨大なファイルをダウンロードしているときの様子です。
実際に運用するまでに必要な事
今回Dragos SOPHIAを使って、OTネットワーク監視の基本機能を紹介しましたが、パケットキャプチャによる通信監視をしたことがない方へ、この手のツールを使うときに考慮しなければならない事を簡単に列挙しておきます。
- パケットキャプチャする箇所の決定
- パケットキャプチャする方法の決定
- ツールのインストールと設定
- ツールが検出したアラートの解釈
- 対処体制の整備(マネジメント系の話題で重要ですが本稿の範囲外なので割愛します)
これらのうち、実運用する上では、最後の「ツールが検出したアラートの解釈」が最もハードルが高いかと思います。ここについて、頑張ってサイバー攻撃の技術について学習するか、内外で相談できる専門家とのつながりを確保するか、そもそも問い合わせ窓口を持つ有償製品を適用するかなどの検討が必要と思います。
例えば、サイバー攻撃でなくとも機器の故障での交換時や、不注意の保守員の行動などで、通常と異なるパケットが送信されることはよくあることです。結局は、運用する方がある程度の正常・異常判断をしなければならなくなります。これがどれだけの難易度なのかは実際使ってみた方でないとわからないと思います。自分達にとってどれだけ大変か簡単かを見極める意味でも、この手のツールをまずは使ってみる事をお勧めします。
ある程度の予算がある組織の方は、それなりのコストを払って製品適用と運用を行う事が無難と思います。予算が少ない組織の方は、今回紹介したツールだけでも適用しておき、アラートがでるようならどこかに相談するという方針とするだけでも何もしないよりは断然安心できると思います。
無償・有償に関わらず、各種ツールを提供している方達もコストが掛かっていることは間違いないですし、アラート内容の分析にもコストはかかる物ですので、世の中を安全にするためにもそれぞれがある程度のコストは負担して、制御システム業界に関わる皆がハッピーになってほしいと思っています。
とはいえ、使った事がない方にとってはどの程度のコストがかかるのか、自分達に見合った運用ができるのか想像もつかない方も多いのではないでしょうか?そういう意味でも、今回紹介したような無償ツールが提供されている事は、制御システム業界の方達にとって非常に有意義だろうなぁと思います。
なお、「ツールのインストールと設定」に関しては、製品毎に事情も異なると思いますし高度な事を実現しようと思えば難しくなるのが一般的とは思います。一例としてDrago SOPHIAを例にとると、Linuxをインストールすることができる方であれば、マニュアルに従えばインストールできますし、設定についても1,2日試行錯誤すれば、今回紹介した最低限の機能は使えるようになると思います。英語が苦手な方も翻訳ツールでなんとかなると思います。
まとめ
OTネットワーク監視ツールがどのような事ができるものか、元商用品が無償公開されたDragos SOPHIAを使って紹介しました。
一度、どこかのネットワークに適用し気軽に試してみると、自分達に、あと何が必要なのかがみえてくるかもしれません。
興味をお持ちの方は、ぜひ一歩踏み出してみてください。思ったほどハードルは高くなかったと思うのではないでしょうか。
注:本稿は、特定の製品を推奨するものではありません。