日常で利用されるIoT機器――例えばウェブカメラ、スマート家電やルータなど――は、その普及が進むにつれセキュリティ対策の重要性が一層高まっています。IoTのセキュリティに関するトピックとしては、「NOTICE」※1が2019年より開始されたことも記憶に新しいでしょう。「NOTICE」では総務省、国立研究開発法人情報通信研究機構(NICT)、インターネットプロバイダが連携して、推測の容易なID・パスワードの設定されたIoT機器を調査しています。
工場や発電所、物流のような日々の生活を支えるサービスにおいてもまた、監視や制御は自動化・自律化され、さらには生産性の向上や業務プロセスの改善等を目的としたIoTの活用も進んでいます。このような社会インフラを維持するシステム、設備の監視や制御を担うシステム(OT=Operational Technology)のセキュリティもまた注目すべき分野といえます。「水道局の水処理システムへの不正侵入による薬液投入量設定値改ざん事例(米国・2021年)」※2や「パイプライン企業へのランサムウェア攻撃により業務が停止した事例(米国・2021年)」※3等の事例からも見て取れるとおり、特に社会インフラを対象としたサイバー攻撃の場合は、影響範囲も極めて広く、重大な被害をもたらします。
OTのセキュリティを理解するにあたり、生産や物流、社会インフラ等さまざまな分野で制御を担う制御システムとはどのようなものかを知る必要があります。制御システムを仮想環境上に構築しお手軽に体感できるシミュレータが存在しますので、その仕組みを知るために少しシミュレータを触ってみました。
今回検証したシミュレータについて
使用する制御システムシミュレータ
ここでは「GRFICSv2」※4を使用します。GRFICSは、セキュリティ学習用途に開発されたシミュレータです。このほかにも、制御システムのシミュレータとしては、有償(無償試用できるものもある) のものも含め、いくつか選択肢はあるようなのでいずれ試してみたいところです。このシミュレータを Virtualbox上で動かします。
シミュレータの構成
制御システムの構成については下記のとおりです。
①(HMI): PLCから集められた情報を監視します。
②(PfSense): ルーティング及びファイアウォールの役割を担っており、DMZと制御システムネットワークの間に置かれています。
③(PLC): ④を制御・監視しています。
④: 化学プラントを再現したシミュレータです。③によって制御・監視されています。
なお、公開されているVMのうち「Engineering Workstation (workstation VM)」については、今回の検証で使用していないため図に含めていません。
制御システムの構成要素
制御システム全体を構成する要素として、ざっくりと次のようなものがあります。一般的なITシステムにおけるセキュリティでは機密性を重視する傾向がある一方、制御システム(=OTシステム)におけるセキュリティの場合は常に稼働していることが求められ、可用性を重視する傾向にあるようです。そのため設備の情報を一か所に集約して管理したり、自動で制御する仕組みが導入されています。
- SCADA
各装置・設備の情報を集約して監視 (+ときに指示) するシステム - DCS
システムを構成する各装置毎に分散して監視・制御するシステム - PLC
装置を自動的に制御するシステム
攻撃を試す前の事前準備
まず初めに、環境を構築します。
GRFICSv2 では、計5つのVMが用意されています。各VMの.ovaファイルをダウンロードし、READMEの記載内容を参考にしつつ検証環境を準備します。
ところで、セキュリティ学習用途に開発された産業用制御システムシミュレータであるGRFICSでは、例えば下記のような攻撃方法が想定されています。※5
- 不正なModbus通信のよる制御コマンドを実行させる
- パスワードを特定し、システムに侵入する
- ライブラリの脆弱性の悪用
「Modbus」とは、制御システムにおいて使用される通信プロトコルです。前述のいくつかの攻撃方法の中でも「不正なModbus通信による制御コマンドの実行」は、まさに制御システムならではの攻撃方法ではないでしょうか。そこで、今回は不正なModbus通信による制御コマンドを実行させてみたいと思います。
制御システムシミュレータに対する観察と攻撃
制御システムネットワークのModbus通信を観察する
それでは、早速制御システムのネットワーク内で発生しているModbus通信を確認します。
WireShark等で通信パケットを見ることができます。
一覧の一番左側の列は「送信元」、左から二番目の列は「送信先」です。
この画像の一覧にて選択している列の場合、IPアドレス「192.168.95.14」から「192.168.95.2」への通信であり、直前に発生している通信(「192.168.95.2」から「192.168.95.14」への要求(Query))に対する応答(Response)であることがわかります。
左から三番目の列はプロトコルを示しています。「Modbus/TCP」とは、TCP/IP上でModbusによるやりとりを行うプロトコルです。
この画像の例では、「Function Code: Read Input Registers (4)」(=入力レジスタの読み出し)が要求されていたことがわかります。「読み出しのみを行っているということは、これはセンサからの情報を受け取るための要求なのか?」などと推測することができます。
ファンクションコード | レジスタの種類及び機能 |
1 | コイルの読み出しを行う |
2 | 入力ステータスの読み出し |
3 | 保持レジスタの読み出し |
4 | 入力レジスタの読み出し |
5 | 単一のコイルへの書き込み |
6 | 単一の保持レジスタへの書き込み |
15 | 複数のコイルへの書き込み |
16 | 複数の保持レジスタへの書き込み |
- コイル: 1ビット長。読み出し・書き込みいずれも可能。
- 入力ステータス: 1ビット長。読み出しのみ可能。
- レジスタ: 16ビット長。
- 保持レジスタ: 読み出し・書き込みいずれも可能。
- 入力レジスタ: 読み出しのみ可能。
このほか、ネットワーク内において発生している複数の通信内容から、次のような特徴が見られました。
- 192.168.95.2 と 192.168.95.10 ~ 192.168.95.13 のやりとりにおいて読み出しと書き込みを行っている。
- 192.168.95.2 と 192.168.95.14 とのやりとりにおいて読み出しのみを行っている。
- 192.168.95.2 と 192.168.95.15 とのやりとりにおいて読み出しのみを行っている。
上記のそれぞれの内容から、このシステムの構成を次のように推定します。
- 192.168.95.2 が中心的な位置に存在し、全体の制御を行っている (=PLC?)。
- 192.168.95.10 ~ 192.168.95.13 の読み出しと書き込みで入口・出口それぞれの状態を見て開閉の調節をしているように見える。
制御システムシミュレータに攻撃する
これらの内容に基づき攻撃方法を考えます。
ちなみにこの制御システムは、リアクター内部の圧力を上げることで爆発させることができるようです。
下図のような設備において「【左側A、B】からリアクターへの流入 > リアクターから右側Purge、Product】への排出」の状態にすると段々と内部の圧力が上がります。しかし、PLCの制御によりすぐ正常な状態に戻されてしまいますので、スクリプトを作成してそれを上回る頻度で繰り返し実行させる必要があります。
入口側の値を最大値にして全開の状態に、出口側の値を最小値にして全閉の状態にする処理を短い間隔で繰り返すスクリプトを実行してしばらく待つと、このとおり爆発が起こりました。
制御システムの場合、「認証情報を特定してシステムに侵入する」「ライブラリやアプリケーションの脆弱性を悪用する」など一般的なITシステムに対して実行されるサイバー攻撃に加え、制御を損なわせる攻撃が想定されます。また、制御システムに対して攻撃がなされた場合、稼働が停止するだけでなく設備が破壊されるなど、物理的な危険を伴う可能性もあります。
まとめ
セキュリティ対策においては、生じうる損失の程度や内容を把握するとともに、損失を生じさせる攻撃(攻撃ルート・攻撃シナリオ)を想定したうえで対策を検討していくことが重要といえるでしょう。
「制御システム関連のサイバーインシデント事例シリーズ」※6では、事業被害及びそれに至る攻撃ルートから対策・緩和策に至るまで、事例に基づいた具体的な例が挙げられており、攻撃シナリオを各過程ごとに分け、そこからさらにいくつかのステップに細分化して検討しています。今回、制御システムシミュレータに対する攻撃としては、不正なModbusコマンドを実行する工程のみを試しましたが、制御ネットワークに侵入しそこから攻撃を成立させるまでの流れについて各攻撃局面毎に分析し、対策を立案するまでの過程をシミュレーションしてみるのも良いかもしれません。制御システムのリスクを分析するうえでは、IPAの公開する「制御システムのセキュリティリスク分析ガイド 第2版」※7にある詳細な解説が参考となるでしょう。このように対策方法を考える一連のプロセスは、制御システムに限らずその他のシステム全般においても共通する考え方です。幅広い場面で活用され、多様な機能をもつIoT機器に対しても有効なアプローチなのではないでしょうか。
現在、弊社ではIoTセキュリティ診断サービスを形作るべく取り組んでいますので、今後また別ブログにてご紹介させていただければと考えています。
診断サービスの詳細についてご覧になりたい方は、下記リンク先よりご確認いただけます。
※1 NOTICE
https://notice.go.jp
※2,※3いずれの事例も「制御システム関連のサイバーインシデント事例 (IPA) 」の該当資料を参照 https://www.ipa.go.jp/security/controlsystem/index.html
※4Fortiphyd/GRFICSv2
https://github.com/Fortiphyd/GRFICSv2
※5 Lowering the Barriers to Industrial Control System Security with GRFICS
https://www.usenix.org/system/files/conference/ase18/ase18-paper_formby.pdf
※6 制御システムのセキュリティリスク分析ガイド補足資料:「制御システム関連のサイバーインシデント事例」シリーズ
https://www.ipa.go.jp/security/controlsystem/index.html
※7 「制御システムのセキュリティリスク分析ガイド 第2版 ~セキュリティ対策におけるリスクアセスメントの実施と活用~」を公開 | IPA
https://www.ipa.go.jp/security/controlsystem/controlsystem-riskanalysis.html
参考文献
- 福田敏.博現場で役立つOTの仕組みとセキュリティ.翔泳社,2021.
- 株式会社エム・システム技研「Modbusプロトコル概説書」.https://www.m-system.co.jp/mssjapanese/kaisetsu/nmmodbus.pdf,(参照 2022-11-07)