Japan
サイト内の現在位置
制御システム向けペネトレーションテスト:模擬攻撃でサイバーリスクを明確化し、適切な対策を検討
情報セキュリティコラム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)。
ITに対する攻撃 (Stage1) | ICSに対する攻撃 (Stage2) | |
---|---|---|
侵入前の活動 | 偵察 (Reconnaissance) 武器化 (Weaponization) 識別 (Targeting) 配送 (Deliver) エクスプロイト (Exploit) |
開発 (Develop) 検証 (Test) 配送 (Deliver) |
侵入後の活動 | インストール (Install/Modify) 遠隔制御 (Command&Control) 目的の実行 (Action) |
インストール (Install/Modify) 目的の実行 (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で見られる一般的な脆弱性と対応する攻撃手法の例です。
脆弱性 | 攻撃手法例 |
---|---|
サーバや端末にセキュリティ更新プログラムが適用されていない | OSのリモートコード実行の脆弱性を悪用し、システムに侵入 |
アンチウィルスソフトが有効化されていない | 疑似マルウエアの実行によるリモート制御 |
複数端末間で同じID・パスワードを使いまわしている | 認証情報を悪用する不正アクセス(Pass-the-Hashなど) |
デフォルトパスワードから変更していない | パスワードクラック |
通信に認証、暗号化が適用されていない | 通信の盗聴、リプレイ(再送)攻撃、中間者攻撃 |
ICSの設定・構成情報に対するアクセス制御不備 | セキュリティ設定、構成情報、プログラムの改ざん |
十分な通信帯域を備えていなかったり、異常系処理が十分実装されていない | DoS攻撃、リプレイ攻撃等による通信妨害 |
リモートアクセスプロトコルが有効化されている | 認証情報窃取との組み合わせによるリモートログイン試行 |
表3:脆弱性と攻撃手法の例
テストで活用できる無償ツール
参考として、ICSのペネトレーションテストで活用できるOSSまたは無償のツール例を紹介します。
ツール名 | 活用例 |
---|---|
Kali Linux | 脆弱性悪用、パスワードクラック、ネットワークスキャン、通信解析、疑似マルウエア作成、リモート制御 |
OpenVAS | 脆弱性スキャン |
LOIC | ネットワーク負荷試験、DoSテスト |
udpreplay | パケットリプレイ(再送)攻撃 |
Python Scapy | パケットキャプチャ、リプレイ(再送)攻撃、中間者攻撃 |
SpoofMAC Macchanger |
MACアドレス偽装 |
Python OPCUA | OPC UAメッセージの送信 |
OpenOPC | OPC DAメッセージの送信 |
Pymodbus | Modbusメッセージの送信 |
表4:テストで活用できる無償ツール例
テスト結果の整理と対策の検討
テスト結果の整理方法と、対策検討のポイントについて記述します。
攻撃経路、ステップ、再現手順
攻撃が成立した攻撃パス、侵入経路、攻撃のステップ、結果のエビデンス、再現手順を明確化しておくことで、対策を取った後の再試験が容易となる。
各シナリオ結果のリスク判定
各テストシナリオの結果にリスクレベルを設定し、運用時に想定される具体的セキュリティリスクを記載する。リスクレベルを設定しておくことで、対策の優先度付けに活用できる。リスクレベルは、攻撃の難易度や及ぼす影響によってテスト実施者と開発者が相談して設定する。表5はリスクレベル定義の一例である。
レベル | 定義 | 影響範囲 |
---|---|---|
重大 |
|
第三者によってシステム破壊、データの改ざん、安全機能の停止等のシステム全体に影響する重大かつ長期的な被害を受ける危険性がある |
警告 |
|
一定の条件を満たした第三者によってシステムの一次的停止や性能低下、改ざん等の被害を受ける恐れがある |
注意 |
|
攻撃による直接的な被害を受ける可能性は低いが、対象を知り尽くした攻撃者や物理侵入した攻撃者などによって攻撃可能となる可能性がある |
情報 | テストにおいてはリスクが検出されなかった | ー |
表5:リスクレベルの定義例
リスクに対して取るべき対策
リスクに対して、取るべき対策を検討する。ICSでは対策が難しいこともあるため、対策が取れない場合の代替策も検討しておくと良い。例えば、フィールドデバイスとの互換性で通信の暗号化が難しい場合などは、フィールドデバイスとは従来通り通信し、上位アプリケーションとの通信のみセキュアプロトコルを使用する、防御はしないが、監視の仕組みを設けるなどが挙げられる。
表6はテスト結果の整理例です。
テスト内容 | レベル | テスト結果詳細 | 想定されるセキュリティリスク | 対策 |
---|---|---|---|---|
通信の盗聴 | 警告 | 通信は暗号化されておらず、function codeやレジスタのアドレス、やりとりしているデータの内容が平文で解析可能 | 制御ネットワークに侵入した第三者によって、制御系の通信内容を解析される可能性がある | 通信の暗号化を行う 難しい場合は、上位ネットワークとの通信はOPC UAなどのセキュアプロトコルを使用し、制御機器はOPCサーバなどを介してプロトコル変換する |
リプレイ攻撃 | 重大 | 正規の制御端末以外から、PLCに対して、制御命令を送信し、不正動作させることが可能 | 制御ネットワークに侵入した第三者によって、PLCを遠隔から不正制御される可能性がある |
|
監視の妨害 | 警告 | ICSの構成情報を改ざんすることで、HMIに表示する値を改ざんすることが可能 | OPCサーバに侵入した第三者によって、ICSの構成情報が変更され、監視が妨害される可能性がある |
|
表6:テスト結果の整理例
終わりに~当社が提供できるもの
ICSに対するペネトレーションテストは、攻撃手法等に関する知識等の他にICSプロトコルの知識等、高度な技術が必要となります。当社では「NEC 制御システムペネトレーションテスト」を提供しており、テストに加えて、脅威分析や検出されたリスクに対するセキュリティ対策のご支援など、お客様に寄り添ったソリューションを幅広く提供しています。本サービスにご関心のある方は、当社までお気軽にお問い合わせください。
計装2023年7月号に関連記事掲載
掲載日:2023年6月28日
執筆者プロフィール
藤本 万里子(ふじもと まりこ)
所属:NECソリューションイノベータ
開発やSIなどの経験を積んだ後、JPCERTコーディネーションセンターへ出向し、脆弱性検証やサイバー攻撃の対応支援やログ分析などに従事。2017年から産学連携で、産業サイバーセキュリティセンターにおける人材育成や攻撃検知などの研究に従事しつつ、新規セキュリティサービスの立ち上げをおこなっている。名古屋工業大学にて、工学博士として、制御システムセキュリティの研究にも取り組んでいる。