[レポート]工場で警報-0から100、OTの脅威エミュレーション – CODE BLUE 2022 #codeblue_jp

CODE BLUE 2022で行われた「工場で警報-0から100、OTの脅威エミュレーション」というセッションのレポートです。
2022.10.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、臼田です。

今回はCODE BLUE 2022で行われた以下のセッションのレポートです。

工場で警報-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)開発者向けのプロトコルシミュレーション、ハニーポットでテストした。 本発表では、デモを行う予定。

Presented by : ヴィク・ホワン - Vic Huang ソル・ヤン - Sol Yang

レポート

  • 自己紹介
    • Vic Huang
      • セキュリティの研究者
    • Sol Yang
      • III
      • OTセキュリティや暗号に興味がある
  • 概要
    • 簡単にOTについて紹介
    • Adversary emulation
    • 最後にデモする
  • ICS
    • Industrial Control System
    • SCADAとDCS
    • DCSのほうが複雑でデバイスコントロールがデリケート
    • カスタマイズされた制御プロトコルの代わりにSCADAはパブリックなものを利用する
    • この性質からSCADAの研究が多い
  • IT & OT
    • OTは低レイヤー
    • ITではWebサーバーなど
    • 特にL2から下は特別なコントロールプロダクトで作られる
  • Adversary emulation
    • MITERのICSマトリクス
    • TTPs
      • 下の方は手順
  • これらを使ってAdversary emulation
    • 脆弱性を特定する
    • BAS(Breach and Attack Simulation)ともいわれる
    • 全体の攻撃プロセスの自動化
    • OTの中ではOpen Sourceのものはあまりない
    • ベンダーが違うから
    • OTのAdversary emulation toolsを作りたい
  • 既知の脅威の知識
  • ICSマルウェア概要 2010 - 2022
    • STUXNET
    • Industroyer2
    • 4つに分割
      • 最初はデータ搾取
      • モジュール型デザインになる
      • ランサムウェアになり
        • Windowsが対象に
      • Complexity
        • より複雑になる
        • 異なるモジュールを持っている
  • ICSマルウェアのプロトコル
    • だんだん複数のプロトコルに
  • マルウェアのサマリ
    • 攻撃のパターン
    • 2つの主要なターゲット
      • データ収集
      • 破壊
    • 3種類の挙動
      • Worm
        • 情報拡散にフォーカス
        • Stuxnetなど
      • Ransomware
        • 固有のプロセスを見つける
        • 工場のオペレーションを停止
      • Toolkit
        • 複数のスクリプトに書き込まれている
    • 4つのポイント
      • 一部のマルウェアしかデバイスにインパクトを与えない
        • PLCsとIEDsは一部
        • ほとんどWindows
      • IPハードコード
      • PLCは3つのモード
        • 通常はRunモード
        • ユーザーが物理で変えないといけない
      • 通常工場でHMIとPLCは1:1あるいは1:複数IP
        • PLC-Blusterなどは成功しない
  • OTターゲット攻撃
    • マトリクスに当てはめて攻撃を再現してみる
    • ICSの4つの段階があると考えている
      • データ
        • 攻撃者はデータを破壊する
        • HMI上のデータを破壊して間違った判断や保守的な動きを要求する
        • パケットの反応からターゲットを見つける
        • TRITONはブロードキャストして発見
        • コントロール
          • デバイスを破壊
      • 収集
        • 情報収集
        • Stuxnetでは2週間でMaxMinの速度を確認していた
      • マニピュレーション
        • データをHMIのスクリーンで操作
        • PLCが間違ったコードを実行するように仕向ける
        • IEC-61850を利用してデバイス破壊
      • チェックして回避
        • 攻撃者はデバイスのステータスを確認して攻撃が行われていることを確認
        • 攻撃のFingerprintを隠す
        • KillDisksでWindowsのデータを削除
        • TRITONはPLCモードを確認
  • Scarlet OTを作った
    • 最も多いプロトコルをサポートする
    • 4つのステージとMITERから影響を受けている
    • マルウェアの挙動を再現する
    • Red Teamのプロセスを行うとカバレッジが良くない
    • 経験上の意思決定ではなく自動化したらロジックベースになる
    • フレキシブルなツールを作りたい
    • ポーズしてマニュアルコマンドを挿入できる
    • あるいは異なる攻撃を組み合わせることができること
    • 環境によりアーキテクチャが異なるから
    • ツールを汎用的なものにしたい
    • 自らの防御ソリューションを試したい
  • フレームワークを自身で作りたかった
    • Caldera pluginとした
    • MITERのもの
    • 現在10のプロトコルと23のテクニック
    • Trisisのサンプル
  • Extend
    • IEC-61850の説明
    • GOOSE
      • イベント通信のプロトコル
      • 新しいイベントがなければ古いイベントを送る
    • 新しいイベントだとstNumが増える
    • Fake Valueを使う
    • GOOSEを把握する必要がある
    • アラームをトリガーすると間接的に影響を与えることができる
    • 攻撃と防御について
      • 攻撃の視点からはパケットをたくさん送ったり値を変えたり
      • 防御としてはGOOSEパケットを確認する、ソースを見る
  • デモ
    • GOOSEを確認して値を変更
    • アラームが発生する
    • デバイスが赤くなる
    • アタックが終わってアブノーマルコントロールをデバイスにやらせる
  • Testbed
    • 三菱電機のもの
    • 公式ユーザーマニュアルを読み各フィールドの値をMITERにあてていく
    • どのようにデバイスを制御しているか
    • 自動化は難しい
      • デバイスアドレスは異なる
      • どの値がどのデバイスアドレスかリバースしていく
    • 攻撃者は事前に具体的な情報を持っている
    • 自動化していく場合にはテストする値をすべて持っておく必要がる
  • STUXNETについて整理
    • ターゲットを見つけてデバイスのバージョン確認
    • Melsecを使用
  • デモ
    • SVの値を確認
    • エアコンプレッサーをオープンにする
  • このようなツールを企業が利用すること
    • 3つの意味で使える
      • CVEs
      • DoS
      • Abnormal operation
    • デジタルツインが利用できるかもしれない

感想

産業用制御システムの課題はなかなか普段触れることがないので興味深い話でした。

一般的なシステムと比べるとエコシステムが少なく大変ですね。