lufeの備忘録

学んだことをてきとーに。

CODEBLUE2022の「工場で警報-0から100、OTの脅威エミュレーション」のレポートと感想

2010年にStuxnetがイランの核開発プログラムに大きな被害を与えて以来、ICSのセキュリティ問題が提起されている。多くの研究者が、ハッキングの技術や経路、歴史上知られている攻撃について調査し、さらに多くのマルウェアや事件が発生している。企業は、脆弱性を発見する効率的な方法を必要としているが、ICS(Industrial Control System)ペンテスターに予算を割くことができないかもしれない。この問題を解決するために、われわれは、MITREのオープンソースツールであるCalderaのプラグインとして、珍しいOT(Operatinal Technology)ターゲティング、オープンソースの敵対者エミュレーションツールを作ろうとしている。ユーザーは、IT攻撃とOT敵対者を簡単に組み合わせることができ、その過程で攻撃のステップを変更したり、手動でコマンドを送信したりすることができる。

われわれは、20以上の工場のトラフィックをレビューし、2022年にMITREが定義した19のICSマルウェア、PIPEDREAM/Incontrollerを分析した経験をまとめた。ICSマルウェアの主な傾向として、単一プロトコルを標的とするものから、モジュール化され、複数のプロトコルに対応するものに変化していることが分かっている。また、マルウェアの動作は4段階の攻撃フローに集約されていることを、実際のマルウェアによる攻撃を交えて説明する。また、以上の結論をもとに、敵対者の自動エミュレーションツールを構築した。

このツールは、MITRE ICSマトリックスにある10の一般的なプロトコルと23以上の技術をすでにサポートしており、OTで定義されたICSマルウェアの動作の80%以上を再現することが可能になっている。また、4段階の結論にしたがって、マルウェアに利用されていない攻撃も追加している。石油、ガス、水道、電力工場の実機、SCADA(Supervisory Control And Data Acquisition)開発者向けのプロトコルシミュレーション、ハニーポットでテストした。 本発表では、デモを行う予定。 登壇者 ヴィク・ホワン、ソル・ヤン


レポート

概要

まずは、用語から

ICS(Industrial Control System)は産業プロセスの制御や監視に使用されている制御技術の一部である。
SCADA(Supervisory Control And Data Acquisition)は大きな施設やインフラを構成する装置・設備からデータを取得し、ネットワークを通して一か所に集めて管理できるシステムである。
DCS(Distributes Control Systems)は工場やプラントなどの工業用コンピュータシステムである。
PLC(Programmable Logic Controller)は制御装置であり、エレベータなどの制御に使われている。
IED(Intelligent Electronic Device)は電力システム機器を制御するコントローラを指す。
HMI(HuMan Interface)は人間と機会が情報をやり取りするための装置などを指す。

DCSは制作した企業によってプロトコルがカスタマイズされていて異なり、使用している企業によってアーキテクチャが異なって、複雑でデバイスの制御が難しい。
SCADAのプロトコルは公開されており、ほとんどのセキュリティ研究ではSCADAに注力している状態である
プロトコルが公開されているので、システムの情報やデータなどを簡単に読み取ることができる。

from: https://www.zscaler.es/resources/security-terms-glossary/what-is-purdue-model-ics-security

IT(Information Technology) System
PCやWeb Serverが該当する。
従来のIT領域と既知のIT領域であり、インターネットに接続するのが多い領域であり、攻撃の多くはここからはじまる。
OT(Operational Technology) System
レベル3以下は、製造工程に関わるものである。 レベル3とレベル2の一部には、管理・監視のためのWindowsシステムが存在する。
レベル2以下は、特殊な制御システム(デジタルや信号)を持つ機器が構成している。

ICS Malware overview 2010 - 2022

2010年は最初のICSを標的としたマルウェアであるSTUXNET。
2011, 2012年はデータを盗むことを目的としたHavex, DuquとFlame, ACAD/Medre.A。
2015, 2016年はModular Designと呼ばれる小さい単位のモジュールが合わさって一つのマルウェアとなるBlackEnergy2, TrongateとPLC-Blaster, Industroyer。
2017年, 2018年はSIS(Strategic Information System)を標的としたモジュラ型のTRITONやICSを標的とした初めてのランサムウエアWannacry, Bad Rabbit, NotPetya, VPNFillter, Ryuk。
2019年はIT分野を標的としたEKANS, REVil, LockerGogaといったランサムウェア
2022年は複数のことができるようなMultiple moduler designを採用したIncontroller/PIPEDREAMや、ウクライナを標的としたIndustroyer2といったマルウェアが存在した。

上記の概要をみると、4つに部分分けすることができた。
最初はデータ採取のために作成され、そこからモジュール型デザインになり、次にランサムウェアとしてWindowsが対象に展開しておき、今ではより複雑になって様々なモジュールを持っている。
ICSについてのマルウェアは複数のプロトコルに対応したものになってきている。
すなわち、上記から2つの目的、「データ収集」「工場の制御破壊」をもっていると考えられる。
より分類すると、WormはSTUXNETやHavexなどの拡散と情報収集に特化しており、RansomewareはHMIやIT/OTデバイスの特定のプロセスを見つけて暗号化し、工場のオペレーションを停止させることに特化している。Tookitは複数のスクリプトが書き込まれており、柔軟な攻撃をすることができる。

私達の経験から4つのことを知ってほしい。
PLCsやIEDsに影響を与えるマルウェアはとても少なく、殆どはWindowsに標的を絞っているということ。
マルウェアソースコードを見ると、攻撃目標のIPアドレスや特徴がハードコードされているため、入ってくる前にIPアドレスや特徴を知られてしまっているということ。
PLCsは3つのモードがあり、物理的にボタンで操作する必要がある。実行モードであれば、マルウェアが制御する機会が少ないということ。
通常はHMIとPICとのやり取りは1対1や1対多のIPアドレスバインディングで展開されるため、PLC-blasterと呼ばれる攻撃手法のようにPLC感の接続を悪用するPLCプロキシ攻撃は機能しないということ。

攻撃者の攻撃シナリオ

Adversarial EmulationやBAS(Breach and Attack Simulation)とも呼ばれる。
MITRE ATT&CK for icsとTTPsをもとに攻撃者のシナリオを構築し、自動化したい。
現在ある侵入・攻撃エミュレーションツールは、既知の脅威やスキルを用いて脆弱性を自動で見つけるツールは、IT分野にはあるが、OTにはほとんど存在しない。ここで言うもの
Metasploitisf のような人間の意思決定や手動での実行とは異なり、自動化に重点を置いたもののことをいっている。
OTの中ではOpen Sourceのものはあまりない。

Adversarial Emulation tools

Domain/Type Commercial Open source
IT SafeBreach APT Simulator
AttackIQ Atomic Red
XMCyber Caldera
Cymulate Infection Monkey
... ...
OT Otorio ?

ここでSTNUXNET, HAVEX, Industroyer, Trisis, Industroyer2, IncontrollerのOTへの攻撃をMITRE ATT&CKに当てはめてみると、4つの段階「発見、収集、操作、回避」があると考えた。
発見段階では、パケットのレスポンスをチェックしたり、特定の関数を実行してみたりすること。
TRITONはブロードキャストをしてデバイスを発見した。
収集段階では、パケットを収集してデータを取得する。
STUXNETは2週間で最大、最小速度を取得していた。
操作段階では、HMIでエラーやアラームを起動させたり、PLCの制御を失敗させたりして、デバイスを攻撃する。
IndustroyerはIEC-61850 を使用してデバイスを破壊していた。
回避段階では、ログやデータを消したり、不要なデータを残したり、PLCモードをチェックし、マルウェアが動作するようにする。
BlackEnergyはKillDisksでWindowsのデータを消したりしていた。

使用されている頻度の高いもの

Ranking PLC Manufacturers PLC Band Names Protocols
1 Siemens Simatic S7
2 Rockwell Automation Allen Brandley Ethernet/IP
3 Mitsubishi Electric Melsec Melsec
4 Schneider Electric Modicon Modbus
5 Omron Sysmac Omron
6 Emerson Electric (GE) RX3i & VersaMax (GE Fanuc) DeltaV, modbus
7 Keyence KV & V-8000 Ethernet/IP, modbus
8 ABB (B&R Automation) AC500 X20 & X90 IEC61850
9 Bosch Rexroth ICL CAN, modbus
10 Hitachi EH & H CODESYS, FL-NET PROTOCOL...

上記のような産業用制御システムの攻撃を自動化するためにScarlet OTというものを作成している。多いプロトコルをサポートし、マルウェア的挙動を実現させたい。しかし、ロジックベースになるため、環境によりシステムのアーキテクチャなどが変わるため、人間のように経験上の意思決定や柔軟な攻撃が難しい。そのため、異なる攻撃を組み合わせたり、攻撃の途中に人間がコマンドを実行できるようにしたりといった汎用的なものにしたいと考えている。
セキュリティトレーニングや適切に守れているかのチェックに使用できればいいなと考えている。

現在は10個のプロトコルと23のテクニックがサポートされている。例としてTrisisの攻撃シナリオが存在する。

IEC 61850のGOOSEプロトコルを解析して、パケットの内容を書き換えてアラームを発生させたりするデモもあった。

Digital twinを作成することによって道の脆弱性を見つけたりすることができるため、できるようになりたい。


感想

普段産業用制御システムについての話を聞かないことや、身近ではないことで多くの知らない言葉等が出てきて調べているうちに色々と学ぶことができました。企業の方もセキュリティについてはしっかりと対策等はされているとは思うが、IT分野に比べるとOT分野はやはりまだ少ないだろうと考える。これからの技術がどのような影響を与えるのかはまだわからないが、ネットワークにつながるものであるので攻撃される機会が多くなってきていることが予想されるため、産業用制御システムのセキュリティについても急務で行う必要がありそうだなと思いました。