NECソリューションイノベータ株式会社 藤本万里子です。
本稿は、計装2023年7月号「データ連携とグローバル化」に掲載した原稿を加筆・修正したものです。
制御システム(Industrial Control System 以下、ICS)のオープン化や他システムとの相互接続等に伴い、ICSに対するサイバーセキュリティリスクが高まっています。しかし、ICSにおいては、机上でのリスク分析やセキュリティ対策の導入にあたる評価が難しい場合があります。
机上分析は、比較的低コストで対象全体に対する分析が可能であり、想定リスクを網羅的に評価できるメリットがある一方、サイバー攻撃を受けた際に物理世界にどのような影響があるのかを正確に予測することは難しいです。シミュレータを使う方法もありますが、全てのハードウェアの挙動を正しくシミュレートできるとは限りません。
そこで有効なのが、物理世界への影響をクリアにする模擬攻撃 (ペネトレーションテスト)です。IEC62443等ICSのセキュリティ規定でも、ペネトレーションテストの必要性が述べられています。本稿では、ICSに対するペネトレーションテストのポイントや活用方法について記述します。
ペネトレーションテストとは
ペネトレーションテストは、セキュリティテストの1つであり、脆弱性やセキュリティ不備を悪用して機器やシステムに侵入し、悪意ある操作を実施できるかを確認するテストです。表1は代表的なセキュリティテストの例です。
脆弱性診断は、対象にどのような脆弱性が存在するかを知ることができますが、それらを悪用する攻撃を受けた場合の具体的影響を知ることは難しいです。ファジングテストは、問題が起きそうなデータを多数パターン入力する試験で、バグの一種として脆弱性が見つかる場合もありますが、セキュリティに特化したテストではなく、異常系試験の効率化が主目的です。
一方、ペネトレーションテストは、攻撃が行われた場合に機器やシステムにどのような影響があるかを明らかにし、適切な対策を検討することを目的としています。どれが優れている、どれかを実施すれば良いというものではなく、目的と効果が異なるため、組み合わせることでセキュリティを向上させることが可能です。
表1:代表的なセキュリティテストの特徴
関連する規格・ガイドライン
ICSセキュリティに関するガイドラインやフレームワークが普及しつつあります。本章ではペネトレーションテストと関係性が深いICSセキュリティに関するガイドラインや規約の例を紹介します。
IEC62443
IEC62443はICSセキュリティの国際規格です。対象によって複数の規格が存在し、4-1の規格では、製品を安全に開発するためのライフサイクルの要求事項を定めています。その中で、セキュリティテストの要求事項も述べられており、セキュリティ機能のテスト、脅威に対する緩和策のテスト、脆弱性診断、ペネトレーションテストなどを実施することが要求されています。それらテストの中で、ペネトレーションテストについては、製品開発者とは独立した部門または組織による実施が要求されています。
ICS Cyber Kill Chain
サイバーキルチェーンは攻撃の段階を把握し、適切な対策を検討するためのモデルであり、ペネトレーションテストにおける攻撃フローの検討に有効です。SANS InstituteはICSに対するサイバーキルチェーン「The Industrial Control System Cyber Kill Chain」を定義しており、ITネットワークを起点としてICSネットワークが侵害されるステップを定義しています(図1・表2)。
武器化 (Weaponization)
識別 (Targeting)
配送 (Deliver)
エクスプロイト (Exploit)
検証 (Test)
配送 (Deliver)
遠隔制御 (Command&Control)
目的の実行 (Action)
目的の実行 (Execute ICS Attack)
表2:ICS Cyber Kill Chainのステップ
ATT&CK for ICS
ATT&CK はMITRE によって定義された攻撃者の戦術とテクニックの知識ベースであり、攻撃戦術や手法の検討に有効です。そのICS版であるATT&CK for Industrial Control Systems (以下ATT&CK for ICS)には、ICSに対する攻撃戦術、攻撃手法、利用できるツール、対応する対策が挙げられており、手法の検討の他、対応する対策の検討などに広く役立ちます。
ペネトレーションテストのポイント
ICSに対するペネトレーションテストのユースケースは幾つかあります。まず、自社開発製品に対して開発工程終盤でペネトレーションテストを実施することで、出荷までに優先的に実施すべき対策を洗い出すことができます。また、工場の増設やネットワークの構成変更を行う際に、工場ネットワークに対してペネトレーションテストを実施することで、侵入経路や感染経路を特定できます。また、ペネトレーションテストで記録される具体的な攻撃の痕跡を調査することで、監視やインデント対応にも活用できます。本章では、ICSに対するペネトレーションテストのポイントを述べます。
ITのペネトレーションテストとの違い
一般的なITシステムとICSに対するペネトレーションテストでは、共通点もある一方で異なる点もあり、注意が必要です。
共通点
- 昨今はWindows、Linuxなどの汎用OSをベースとするICSも多い。また外部インタフェースについても、Webや標準的なリモートアクセスサービスを使用する部分については、ITシステムと同様の方法・ツールでテストが可能である。
異なる点
- ICS独自のプロトコル(産業用イーサーネットや産業用フィールドバス)、独自プロトコルが使用されている場合、それらのプロトコルに関する知識が必要となる。また、産業用プロトコルは、標準的なプロトコルであっても、機器やシステムによって仕様が異なることも多く、ツール等を用いた自動テストは難しいため、手動でテストを実施する割合が高くなる。完全なブラックボックステストは難易度が高く、事前に仕様書等を読み、機器や製品を理解した上でのテスト(グレーボックステスト)が現実的である。実際に、ICSを標的とする攻撃者は、Stuxnet※1の様に、対象製品の仕様を十分に理解した上で攻撃を試みる事がある。
- ITシステムの場合、攻撃によって対象の状態が不正になったとしても、その影響はサイバー空間に閉じる。一方、ICSのテストでは、攻撃によって、物理的機械に影響を与える可能性がある。不正動作よって安全に影響を与えるなど危険度が高い機能はシミュレータを使うなど、製品やシステムの特性に合わせた検討が必要である。
- ITシステムに対するテストは、インターネットなどの外部ネットワーク(またはインターネットを模したネットワーク)から行うのが一般的である。一方、ICSは閉じたネットワークで運用されるケースも多いため、攻撃の起点はインターネットからのみではなく、USB接続、メンテナンス者のPCなど運用の実態に即した検討が必要である。
※1イランの遠心分離機を狙う制御システムに特化したマルウエア
実施の流れ
ペネトレーションテスト実施の流れを図2に示します。
準備段階
開発担当者は、テスト対象およびバージョンを決定する。テスト担当者は、テストで使用する機材やツールの検討、準備を行う。グレーボックスでテストをする場合は、テスト対象の仕様書等を開発担当者から入手し、読み込みを行う。
ゴール設定
テスト対象に対するリスクアセスメントや脅威分析を実施し、前提条件や最終ゴールを決定する。
前提条件は、どのような状態を想定して攻撃を開始するかの条件であり、実際の運用で想定される攻撃エントリポイントなどを参考に決定する。
ゴール設定は、発生するとリスクが高い事象や侵害されるとリスクが高い機器への攻撃を実現できるかの観点で検討する。ゴールを達成できるかはシステムの仕様やセキュリティ対策状態に依存するため、ゴールが達成できなかった場合にテスト完了とみなすための条件(テスト項目数や期間など)を決めておくことも重要である。
前提条件の検討例
例1:運用で接続するメンテナンス者のPCがマルウエア感染している前提で、メンテナンス担当のPCを攻撃起点とする
例2:ICSと繋がっている上位ネットワークからの侵入を起点とする
ゴールの検討例
最も重要で守りたい資産はアクチュエータに直結されているPLCであるため、PLCを侵害することをゴールと設定する
テストシナリオ検討のポイント
前提条件、ゴールに基づいて、テストシナリオ(攻撃ステップ)、手法、使用ツールなどを検討します。
図3は、ATT&CK for ICSに基づく攻撃シナリオの検討例です。事業システムネットワークにあるPCがマルウエアに感染し、そのPCを起点に侵害範囲が拡大、ゴールは、コントローラと接続されているアクチュエータの不正操作および監視の妨害とします。
- 社員PCで疑似マルウエアを実行し、社員PCを遠隔操作
- Windowsのリモートコード実行の脆弱性を利用して、社員PCからMESサーバに侵入
- MESサーバに保存された認証情報を悪用し、MESサーバからOPCサーバへ侵入
- OPCサーバ上で、ICSの構成情報、通信解析などの調査を実施
- HMIで監視しているオペレータに攻撃活動を気付かせないようにするために、OPCサーバからHMIに正常値に見せかけた偽の値を送信
- OPCサーバからコントローラへ設定値変更命令や停止命令を送信
表3は、ICSで見られる一般的な脆弱性と対応する攻撃手法の例です。
表3:脆弱性と攻撃手法の例
テストで活用できる無償ツール
参考として、ICSのペネトレーションテストで活用できるOSSまたは無償のツール例を紹介します。
Macchanger
表4:テストで活用できる無償ツール例
テスト結果の整理と対策の検討
テスト結果の整理方法と、対策検討のポイントについて記述します。
攻撃経路、ステップ、再現手順
攻撃が成立した攻撃パス、侵入経路、攻撃のステップ、結果のエビデンス、再現手順を明確化しておくことで、対策を取った後の再試験が容易となる。
各シナリオ結果のリスク判定
各テストシナリオの結果にリスクレベルを設定し、運用時に想定される具体的セキュリティリスクを記載する。リスクレベルを設定しておくことで、対策の優先度付けに活用できる。リスクレベルは、攻撃の難易度や及ぼす影響によってテスト実施者と開発者が相談して設定する。表5はリスクレベル定義の一例である。
- 外部から第三者によって複雑な条件を必要とせず、システムや機器を完全に制御される脅威
- システムや機器に長期的に影響を与えうる脅威
- 攻撃するために一定の条件を必要とする脅威
- システムや機器に一時的に影響を与えうる脅威
- 攻撃するために難易度の高い複雑な条件を必要とする脅威
- 不正な状態にできるものの、攻撃成立の再現性がない
表5:リスクレベルの定義例
リスクに対して取るべき対策
リスクに対して、取るべき対策を検討する。ICSでは対策が難しいこともあるため、対策が取れない場合の代替策も検討しておくと良い。例えば、フィールドデバイスとの互換性で通信の暗号化が難しい場合などは、フィールドデバイスとは従来通り通信し、上位アプリケーションとの通信のみセキュアプロトコルを使用する、防御はしないが、監視の仕組みを設けるなどが挙げられる。
表6はテスト結果の整理例です。
- ファイアウォール等を用いて正規端末からのアクセスのみに制御する
- OT IDS等を用いてPLCへの通信を監視し、不正命令や範囲外の値変更を検出する
- OPC UAなどの暗号化が適用されたプロトコルに移行する
- OPCサーバのシステムログを監視し、不正ログインや意図しないプロセス起動などがないか確認する
- OPCサーバアプリケーションに対して認証を設定する
表6:テスト結果の整理例
終わりに~当社が提供できるもの
ICSに対するペネトレーションテストは、攻撃手法等に関する知識等の他にICSプロトコルの知識等、高度な技術が必要となります。当社では「NEC 制御システムペネトレーションテスト」を提供しており、テストに加えて、脅威分析や検出されたリスクに対するセキュリティ対策のご支援など、お客様に寄り添ったソリューションを幅広く提供しています。本サービスにご関心のある方は、当社までお気軽にお問い合わせください。
計装2023年7月号に関連記事掲載
掲載日:2023年6月28日
執筆者プロフィール
藤本 万里子(ふじもと まりこ)
所属:NECソリューションイノベータ
開発やSIなどの経験を積んだ後、JPCERTコーディネーションセンターへ出向し、脆弱性検証やサイバー攻撃の対応支援やログ分析などに従事。2017年から産学連携で、産業サイバーセキュリティセンターにおける人材育成や攻撃検知などの研究に従事しつつ、新規セキュリティサービスの立ち上げをおこなっている。名古屋工業大学にて、工学博士として、制御システムセキュリティの研究にも取り組んでいる。