INCONTROLLER:複数の産業用制御システムを標的とする新たな国家支援型サイバー攻撃ツール

Nathan Brubaker, Keith Lunden, Ken Proska, Muhammad Umair, Daniel Kapellmann Zafra, Corey Hildebrandt, Rob Caldwell
Apr 13, 2022
4 min read
|   Last update Aug 19, 2022

2022年初頭、MandiantSchneider Electricと共同で、マシーンオートメーションデバイスを標的とした新しい産業制御システム(ICS)指向の攻撃ツール群(私たちはこれをINCONTROLLERと呼んでいます)を分析しました。このツールは、複数の異なる産業分野で活用されているさまざまな種類の機械に組み込まれている特定の産業用機器と相互作用することができます。このツールセットを使用した運用環境のターゲットは不明ですが、このマルウェアは、ターゲットとなる機器を利用する組織にとって重大なリスクとなります。INCONTROLLERは、国家が関与している可能性が非常に高く、破壊行為、サボタージュ、および潜在的な物理的破壊に関連する能力を含んでいます。

INCONTROLLERは、非常に稀で危険なサイバー攻撃能力であることを表しています。2017年に産業安全システムを無力化しようとしたTRITON2016年にウクライナで停電を引き起こしたINDUSTROYER2010年頃にイランの核プログラムを妨害したSTUXNETに匹敵するものです。アセットの所有者がINCONTROLLERを発見し、防御できるように、本レポート全体を通して、さまざまな緩和策や発見方法を紹介しています。これらのツールは将来的に変更される可能性があるため、行動ベースのハンティングおよび検知方法が最も効果的であると考えます。

関連する活動への対応にサポートが必要な場合は、Mandiant Consulting にご連絡ください。関連する脅威のさらなる分析は、Mandiant Advantage Threat Intelligence の一部として提供されています。

Schneider Electric の詳細については、同社からのお知らせを参照してください。

1: INCONTROLLERツールの概要

ツール

概要

TAGRUN

OPCサーバーのスキャン、OPC構造体/タグの列挙、認証情報のブルートフォース、OPCタグ値の読み取り/書き込みを行うツール

CODECALL

産業用プロトコルの代表格であるModbusCodesysを用いて通信を行うフレームワーク。CODECALLには、少なくとも3台のSchneider Electric製プログラマブルロジックコントローラ(PLC)と対話し、スキャンし、攻撃するためのモジュールが含まれる

 

OMSHELL

HTTPTelnetOmron FINSプロトコルを介して、Omron PLCのいくつかのタイプと対話し、スキャンする機能を持つフレームワーク。フィードバック制御によりモータにエネルギーを供給し、精密な動作制御を行うOmron製サーボドライブとの連携も可能

 

INCONTROLLERは、産業プロセスを操作し、破壊するために作られた

産業用オートメーション・ネットワークは、オペレータが情報や指示を物理的な一連の動作に変換するためのさまざまな機器に依存しています。産業用ネットワークに存在するアセットが多様性であるため、産業用オートメーション機器は通常、ネットワークの異なる部分で異なる言語を話しますが、これは標準化された産業用通信プロトコルを使用することで可能になります。

INCONTROLLERには、産業ネットワークプロトコルを使用して、攻撃者がICSデバイスに命令を送信できるようにする3つのツールが含まれています。そのプロトコルとは、OPC UAModbusEcoStruxure Machine ExpertSoMachineで使用されているCodesys、そしてOmron FINSなどです。このツールの機能により、攻撃者はさまざまな相手先商標製品メーカー(OEM)のさまざまな製品と通信することができるようになりますが、攻撃者はその一方で、Schneider ElectricOmronの特定のコントローラー用のモジュールを開発しました。対象となる機器には、単純な繰り返し動作の機械から、分散アーキテクチャの複雑なモジュール式機械まで、さまざまなユースケースを持つ機械自動化ソリューションが含まれています。

  • OPCサーバー
  • Schneider Electric社製Modicon M251Modicon M258Modicon M221 Nano PLC
    • その他、ModbusCodesysを利用している機器も影響を受ける可能性あり
  • Omron NX1P2NJ501 PLC、サーボドライブ R88D-1SN10F-ECT
    • その他、NJNX PLCシリーズの機器も影響を受ける可能性あり

攻撃者が、これらのデバイスを無作為に狙うとはとても思えません。むしろ、特定のターゲット環境を偵察するために、これらの機器が選ばれた可能性が高いと思われます。これは、重要な安全システムを標的としたTRITONのような過去のICSマルウェアと一致するもので、ターゲットの産業環境を侵害する前に確認されたものであると考えられます。

INCONTROLLER: ツールの概要

INCONTROLLER tooling overview
図1: INCONTROLLER ツールの概要

 

TAGRUN

OPC UAサーバーをスキャンして列挙する機能など、TAGRUNの機能は偵察的な役割を示唆しています。OPCは、産業環境におけるICSアセットからデータを収集し保存するための中央通信プロトコルとして機能します。このデータにアクセスすることで、攻撃者は生産システムや制御プロセスの詳細な概要を把握することができます。このツールは偵察用に開発されたと思われますが、タグ値の書き込みや変更も可能であり、これを利用してデータを修正し、攻撃を支援したり、プロセスの変更を隠したりすることができます。また、TAGRUNは、ターゲット環境がWindows OSを実行しているかどうかを確認し、このチェックの戻り値に応じて異なるPingコマンドを提供します。このことは、攻撃者がTAGRUNを実行するためにWindows以外のデバイスを使用している可能性を示唆しています。

TAGRUNの機能は以下の通りです。

  • ネットワーク上のOPC UAサーバーのスキャン
  • OPC UAサーバーの構造体の読み取り
  • OPC UAサーバー上のデータに対するタグ値の読み取り/書き込み
  • 認証情報へのブルートフォース
  • ログファイルの出力

CODECALL

CODECALLは、Modbusプロトコルを使用してICSデバイスと通信するため、潜在的に異なるメーカーのデバイスと対話する能力を備えています。しかし、このツールには、Schneider Electric社のModicon M251 (TM251MESE) PLCと対話し、スキャンし、攻撃するための特定のモジュールが含まれており、Codesysは同社独自のEcoStruxure Machine Expertプロトコルにより使用されています。このツールは、Schneider ElectricModicon M221 Nano PLCおよびModicon M258 PLCも標的にしていると考えられる理由があり、これらのプロトコルを活用する他のデバイスにも影響を及ぼす可能性があります。

CODECALLの一般的な機能は以下のとおりです。

  • ネットワーク上のSchneider ElectricおよびModbus対応デバイスの特定
  • Modbus または Codesys を介した特定デバイスへの接続
  • Modbus上でのデバイスレジスタの読み出し/書き込み
  • Modbusを使ったセッションからのデバイスIDの要求
  • コマンドマクロファイルの定義、ダンプ、ロード
  • Codesys上でデバイス固有のコマンドを実行
    • ユーザ名/パスワードを使用し、提供された辞書ファイルを使用して認証情報をブルートフォースすることにより、ログインを試みる
    • PLCデバイスへのファイルのダウンロード/アップロード
    • ファイル/ディレクトリの一覧の取得
    • ファイルの削除
    • PLCデバイスからのセッションの切断
    • DDoS 攻撃
    • 特別に細工されたパケットでデバイスをクラッシュさせる
    • 機器のゲートウェイIPが別インターフェースに存在する場合の経路追加
    • カスタムRawパケットを送信

OMSHELL

OMSHELLは、Omron NX1P2NJ501R88D-1SN10F-ECTサーボドライブ、およびNJ/NX製品ラインのその他の類似デバイスを含むOmron PLCにシェルアクセスするように設計されています。本ツールは、主にHTTPプロトコルで動作しますが、スキャンやデバイスの識別にはOmron独自のFINS over UDPプロトコルも利用します。このフレームワークはモジュール化されており、攻撃者はこのツールに追加の機能を開発・導入することが可能です。

 

OMSHELLの機能は以下のとおりです。

  • ネットワーク上のOmron製デバイスのスキャンと特定
  • 機器のプログラム・メモリーの消去と機器のリセット
  • バックアップ設定およびバックアップデータの機器からの読み込み、または機器へのデータの復元
  • デバイス上でtelnetデーモンを起動
  • Telnet デーモンを介してデバイスに接続し、任意のペイロードまたはコマンドをアップロードし、オプションで実行
  • 機器に存在するバックドアに接続し、任意のコマンドの実行を提供
  • ネットワークトラフィックキャプチャの実行
  • デバイス上で動作している任意のプロセスの強制終了
  • デバイスへのファイル転送
  • 接続されたサーボドライブとの接続・通信

攻撃者は、特定の被害者環境で使用する前に、ほぼ間違いなくツールを修正またはカスタマイズするため、インジケータベースの検知は被害組織環境でINCONTROLLERを検知するためには有効でないと考えています。その代わりに、防御者は、これらのツールの動作ベースのハンティングおよび検知方法に焦点を当てる必要があります。

Windowsをサポートするツールの可能性

私たちはまた、この攻撃の活動に関連している可能性のある、Windowsベースのシステムに影響を与えるほかの2つのツールも追跡しています。これらのツールは、ITまたは運用技術(OT)環境におけるWindowsベースのシステムを悪用することで、INCONTROLLER攻撃における攻撃ライフサイクル全体をサポートするために使用される可能性があります。

  • ツールの1つは、AsrDrv103.sys ドライバの CVE-2020-15368 を悪用しており、脆弱なドライバのインストールと悪用につながる可能性があります。ASRock 製マザーボードは、OT 環境における一部のヒューマンマシンインターフェイス (HMI) やエンジニアリングワークステーションで活用される可能性があります。
  • もう1つのツールは、ICECOREとして追跡しているもので、偵察やコマンド&コントロール機能を提供するバックドアです。

攻撃シナリオ

各ツールは独立して使用されるかもしれませんし、攻撃者は3つのツールを使用して1つの環境を攻撃する可能性もあります。INCONTROLLERがターゲットとするデバイスは、オートメーション機械(フライス盤やプレス機など)に組み込まれていることが多く、ユーザーの明示的な知識がなくても、さまざまな産業分野やプロセスに存在する可能性があることを、改めて強調しておきます。

私たちは、INCONTROLLERを使用した攻撃で起こりうるさまざまな結果を強調するため、3つのサイバー物理攻撃シナリオを作成しました。3つのケースそれぞれにおいて、TAGRUNは、被害者環境をリスト化し、ターゲットの特定、物理プロセスに関する学習のために、早い段階で使用された可能性があります。

INCONTROLLER attack scenarios
図2: INCONTROLLER 攻撃シナリオ

これらのシナリオの影響は、被害組織の施設の性質と、制御された物理プロセスに対する攻撃者の理解と相互作用の程度に依存すると考えられます。INCONTROLLERは、新たに実装された機能をサポートできる拡張可能な構造を活用しているため、現在の理解はまだ限定的であることに留意が必要です。

INCONTROLLERは国家が支援するマルウェアである可能性が極めて高い

INCONTROLLERは、マルウェアの複雑さ、構築に必要な専門知識とリソース、金銭的な動機による活動での有用性が限定的であることから、国家が支援するグループと連携している可能性が非常に高いと思われます。現段階の分析では、INCONTROLLERを過去に追跡されたグループと関連付けることはできませんが、この活動はICSに対するロシアの歴史的関心と一致することに留意しています。INCONTROLLERとロシアを結びつける証拠は、主に状況証拠に基づくものですが、ロシアの破壊的なサイバー攻撃の歴史、現在のウクライナへの侵攻、ヨーロッパと北米に対する関連する脅威を考慮し、これを指摘しています。

  • 少なくとも2014年以降、ロシア系の脅威者は、ICSに特化した複数のマルウェアファミリー(PEACEPIPEBlackEnergy2INDUSTROYERTRITONVPNFILTER)でICSアセットとデータを標的にしてきた。
Historical Russia-nexus activity impacting ICS
図3: ICSに影響を与えるロシア関連の歴史的活動
  • INCONTROLLERの機能は、ロシアが過去に行ったサイバー物理攻撃で使用されたマルウェアと一致。例えば、2015年と2016年のウクライナの停電では、いずれも物理的なプロセス操作と組み込み機器に対する破壊的な攻撃が組み合わされていた。INCONTROLLERも同様に、マルウェアのオペレーターが物理的なプロセスを操作することができ、同時にPLCの可用性を妨害するサービス妨害(DoS)機能を含んでいる。

推奨事項

想定される被害組織の性質はまだ不明ですが、INCONTROLLERは、互換性のあるデバイスを持つ組織に重大なリスクをもたらします。対象となるデバイスは、複数の種類の機械に組み込まれており、多くの異なる産業部門に存在する可能性があります。これまでのロシア関連の脅威活動との整合性を考慮すると、INCONTROLLERは、ウクライナ、NATO加盟国、およびロシアのウクライナ侵攻に積極的に対応しているその他の国々にとって最大の脅威となることが示唆されます。組織は、標的となる ICS デバイスが環境に存在するかどうかを判断し、ベンダー固有の対策を適用するために直ちに行動を起こす必要があります。

また、リスクのある組織は、ネットワーク内のこの活動を検知するために、脅威ハンティングを実施することをお勧めします。Mandiant Advantage Threat Intelligence の契約者は、脅威ハンティングのガイダンスと YARA の検出結果を含む追加レポートにアクセスできます。

関連する活動への対応にサポートが必要な場合は、Mandiant Consulting にご連絡ください。関連する脅威のさらなる分析は、Mandiant Advantage Threat Intelligence の一部として提供されています。

*** 一部割愛 ***

Appendix: MITRE ATT&CK for ICS Mapping

Table 2: TAGRUN MITRE ATT&CK for ICS mapping

Module

Tactic

Technique

TAGRUN

Execution

T0807: Command-Line Interface

TAGRUN

Execution

T0853: Scripting

TAGRUN

Lateral Movement

T0859: Valid Accounts

TAGRUN

Discovery

T0888: Remote System Information Discovery

TAGRUN

Discovery

T0846: Remote System Discovery

TAGRUN

Persistence

T0859: Valid Accounts

TAGRUN

Collection

T0801: Monitor Process State

TAGRUN

Collection

T0861: Point & Tag Identification

TAGRUN

Command and Control

T0885: Commonly Used Port

TAGRUN

Command and Control

T0869: Standard Application Layer Protocol

TAGRUN

Impact

T0832: Manipulation of View

TAGRUN

Impact

T0882: Theft of Operational Information

Table 3: CODECALL MITRE ATT&CK for ICS mapping

Module

Tactic

Technique

CODECALL

Execution

T0807: Command-Line Interface

CODECALL

Execution

T0853: Scripting

CODECALL

Persistence

T0859: Valid Accounts

CODECALL

Persistence

T0857: System Firmware

CODECALL

Persistence

T0889: Modify Program

CODECALL

Discovery

T0846: Remote System Discovery

CODECALL

Discovery

T0888: Remote System Information Discovery

CODECALL

Lateral Movement

T0812: Default Credentials

CODECALL

Lateral Movement

T0843: Program Download

CODECALL

Lateral Movement

T0859: Valid Accounts

CODECALL

Collection

T0801: Monitor Process State

CODECALL

Collection

T0845: Program Upload

CODECALL

Collection

T0801: Monitor Process State

CODECALL

Command and Control

T0885: Commonly Used Port

CODECALL

Command and Control

T0869: Standard Application Layer Protocol

CODECALL

Inhibit Response Function

T0804: Block Reporting Message

CODECALL

Inhibit Response Function

T0803: Block Command Message

CODECALL

Inhibit Response Function

T0814: Denial of Service

CODECALL

Inhibit Response Function

T0809: Data Destruction

CODECALL

Inhibit Response Function

T0816: Device Restart/Shutdown

CODECALL

Inhibit Response Function

T0857: System Firmware

CODECALL

Impair Process Control

T0836: Modify Parameter

CODECALL

Impair Process Control

T0855: Unauthorized Command Message

CODECALL

Impact

T0813: Denial of Control

CODECALL

Impact

T0815: Denial of View

CODECALL

Impact

T0826: Loss of Availability

CODECALL

Impact

T0827: Loss of Control

CODECALL

Impact

T0828: Loss of Productivity and Revenue

CODECALL

Impact

T0831: Manipulation of Control

CODECALL

Impact

T0882: Theft of Operational Information

Table 4: OMSHELL MITRE ATT&CK for ICS mapping

Module

Tactic

Technique

OMSHELL

Initial Access

T0886: Remote Services

OMSHELL

Execution

T0807: Command-Line Interface

OMSHELL

Execution

T0853: Scripting

OMSHELL

Execution

T0858: Change Operating Mode

OMSHELL

Execution

T0821: Modify Controller Tasking

OMSHELL

Execution

T0834: Native API

OMSHELL

Persistence

T0889: Modify Program

OMSHELL

Persistence

T0859: Valid Accounts

OMSHELL

Evasion

T0858: Change Operating Mode

OMSHELL

Discovery

T0842: Network Sniffing

OMSHELL

Discovery

T0846: Remote System Discovery

OMSHELL

Discovery

T0888: Remote System Information Discovery

OMSHELL

Lateral Movement

T0812: Default Credentials

OMSHELL

Lateral Movement

T0867: Lateral Tool Transfer

OMSHELL

Lateral Movement

T0843: Program Download

OMSHELL

Lateral Movement

T0886: Remote Services

OMSHELL

Lateral Movement

T0859: Valid Accounts

OMSHELL

Collection

T0868: Detect Operating Mode

OMSHELL

Collection

T0801: Monitor Process State

OMSHELL

Collection

T0845: Program Upload

OMSHELL

Command and Control

T0885: Commonly Used Port

OMSHELL

Command and Control

T0869: Standard Application Layer Protocol

OMSHELL

Inhibit Response Function

T0881: Service Stop

OMSHELL

Impair Process Control

T0836: Modify Parameter

OMSHELL

Impair Process Control

T0855: Unauthorized Command Message

OMSHELL

Impact

T0879: Damage to Property

OMSHELL

Impact

T0837: Loss of Safety

OMSHELL

Impact

T0831: Manipulation of Control

OMSHELL

Impact

T0882: Theft of Operational Information

Appendix: YARA Rules

rule MTI_Hunting_AsRockDriver_Exploit_PDB

{

          meta:

                    author = "Mandiant"

                    date = "03-23-2022"

                    description = "Searching for executables containing strings associated with AsRock driver Exploit."

   

          strings:

                    $dos_stub = "This program cannot be run in DOS mode"

                    $pdb_bad = "dev projects\\SignSploit1\\x64\\Release\\AsrDrv_exploit.pdb"

                    $pdb_good = "c:\\asrock\\work\\asrocksdk_v0.0.69\\asrrw\\src\\driver\\src\\objfre_win7_amd64\\amd64\\AsrDrv103.pdb"

   

          condition:

                    all of them and (@pdb_bad < @dos_stub[2]) and (#dos_stub == 2) and (@pdb_good > @dos_stub[2])

}

 

rule MTI_Hunting_AsRockDriver_Exploit_Generic

{

          meta:

                    author = "Mandiant"

                    date = "03-23-2022"

                    description = "Searching for executables containing strings associated with AsRock driver Exploit."

   

          strings:

                    $dos_stub = "This program cannot be run in DOS mode"

                    $pdb_good = "c:\\asrock\\work\\asrocksdk_v0.0.69\\asrrw\\src\\driver\\src\\objfre_win7_amd64\\amd64\\AsrDrv103.pdb"

   

          condition:

                    all of them and (#dos_stub == 2) and (@pdb_good > @dos_stub[2])

}

謝 辞

このリサーチは、記載されていない多くの人々の努力のおかげで実現しました。Schneider Electricチーム、Mandiant Advanced Practices、FLARE、コンサルティング、Managed Defense、そしてこの取り組みを支えてくれたすべての人々に心から感謝します。

Special thanks to Jared Scott Wilson, Glen Chason, Benjamin Read, Jonathan Leathery, Conor Quigley, and Wesley Mok. 

 

※本ブログは、4月14日に公開されたブログ「INCONTROLLER: New State-Sponsored Cyber Attack Tools Target Multiple Industrial Control Systems」の日本語抄訳版です。