エンジニアリングモデリングソフトウェアの高精度浮動小数点演算操作をターゲットとしたFast16は、既知の中で最も古い国家関連サイバー妨害フレームワークとなる可能性がある。
イランの核濃縮プログラムを破壊するために設計された2010年のStuxnetワームは、国家が戦略的スパイ活動からサイバー空間での妨害へと活動をエスカレートさせた初めてのケースとして、サイバーセキュリティの先例を設定した。しかし、今回の新しい発見は、Stuxnetが明るみに出る数年前から、そのような作戦が本格的に進行していたことを示唆している。
SentinelOneの研究者は、2005年に活動していたマルウェアフレームワークのサンプルを追跡し、高精度浮動小数点演算を破損させることでエンジニアリングモデリングソフトウェアをターゲットにしていることを発見した。
このフレームワークのコンポーネントの1つであるカーネルドライバfast16.sysは、2017年のShadow Brokersが流出させた米国国家安全保障局(NSA)のサイバーチームが使用する悪用およびツールをカバーする文書で簡潔に言及されている。
「この2005年の攻撃は、高度な物理学、暗号化、核研究ワークロードなど、国家的に重要な超高額な高精度計算ワークロードをターゲットにした妨害作戦の前兆である」とSentinelOneの研究者は報告書で述べた。
このマルウェアフレームワークは、その時代のマルウェアとしては非常に高度と見なされるさまざまな技術を使用している。コピーはほぼ10年前にVirusTotal オンラインスキャンエンジンにアップロードされたが、研究者がLua仮想マシンを埋め込むマルウェアを探すまで検出されなかったままだった。
このマルウェアは100以上のルールを使用して、妨害するべき正確なワークロードを特定している。研究者はそれらのワークロードが正確に何であるかは不明だが、それらのルールに基づいて、ターゲットアプリケーションのリストを3つのエンジニアリングプログラムに絞り込んでいる。その1つはイランの核計画に関する報告書に現れ、もう1つは中国で建設および構造設計に広く使用されている。
Lua対応マルウェアの追跡
Luaは1990年代初期に生まれたプログラミング言語で、ゲームと組み込みシステム開発で非常に人気がある。その主な魅力は、既存のCおよびC++アプリケーションにスクリプティングエンジンとして埋め込むことができるという点である。
Luaは最新のマルウェアで、メインローダー内の組み込みLua VM によってロードおよび実行されるスクリプト形式のペイロードを難読化して配信する方法を提供するために使用されている。この手法を採用した最初の脅威アクターの1つはEquation Groupで、NSAの Tailored Access Operations (TAO)チームと広く関連付けられているAPTグループである。
「その開発スタイルが共有されたソースから生まれたかどうかを判断したかったので、私たちはWindowsマルウェアの組み込みLuaエンジンの最初の高度な使用をトレースすることに着手した」と研究者は述べた。
これにより、Windows 2000/XP時代の悪意のある実行可能ファイルであるsvcmgmt.exeというファイルの発見に至り、もともと2005年に作成されたものである。このファイルは、ほとんどのロジックに暗号化されたLuaバイトコードを使用するモジュール式サービスバイナリであり、ConnotifyDLLというファイルとfast16.sysというファイルの2つのペイロードが含まれている。
さらに、svcmgmt.exeは、他のシステムへの伝播に使用される「wormlets」と呼ばれる追加のLuaペイロードを実行することができる。たとえば、特定されたwormlet の1つであるSCMは、マルウェアをネットワーク共有にコピーしてからリモートサービスとして実行しようとする。これにより、svcmgmt.exeは最も古く文書化されたLuaワームとなる。
浮動小数点計算を破損させるという異常なルートキット
fast16.sysペイロードはさらに興味深く、ディスクから読み取られるときに実行可能コードをインターセプトして変更できるカーネルファイルシステムドライバとしてロードされる。カーネルドライバとしてインストール自体するマルウェアコンポーネントはルートキットと呼ばれている。なぜならシステムに可能な限り最高の特権を提供するためである。
Windows XP時代、システムドライバがインストールされるために信頼できるデジタル署名を必要としなかったとき、ルートキットは一般的であり、マルウェアプログラムのコンポーネントと活動を隠すために使用された。しかし、fast16.sysは非常に具体的な目的を持っている。
ドライバはIntel C/C++コンパイラでコンパイルされた.exeファイルの実行を監視し、それらのヘッダーに追加のセクションを注入してから、101個のバイトコードパターンマッチングと置換ルールの複雑なセットを適用する。
ロジックの一部は実行フローをハイジャックすることを目的とした典型的なx86命令をターゲットにしているが、1つの注入されたブロックはマルウェア操作にとって異常に目立っている:精密演算と内部配列の値のスケーリングに専念する浮動小数点ユニット(FPU)命令の複雑なシーケンスである。
研究者がこれらのパターンマッチングルールを取得し、その時代の大量の正当なソフトウェアに対して実行したとき、わずか10個のファイルがマッチした。すべては土木工学、物理学、物理プロセスシミュレーションなどの分野で使用される計算ツールであった。
「fast16.sysのFPUパッチは、これらのルーチンを制御された方法で破損させ、別の出力を生成するように書かれた」と研究者は述べた。「これはfast16を一般的なスパイ行為ツールの領域から戦略的妨害のカテゴリーへと移動させている。物理世界の計算に小さいながらも体系的なエラーを導入することで、このフレームワークは科学研究プログラムを損なうか遅延させるか、エンジニアリングシステムを時間とともに劣化させるか、さらには壊滅的な損傷をもたらす可能性があった。」
さらに、ネットワーク経由で他のシステムに感染させる能力により、環境内のより多くのエンジニアリングワークステーションとサーバーが危険にさらされた可能性があり、複数のシステムで同じシミュレーションを実行して計算を検証しようとする試みは、同じ偽の結果を返した可能性がある。
ターゲットにされたエンジニアリングシミュレーション
SentinelOneは、パッチングエンジンに一致するコードを含む3つのソフトウェアプログラムを特定した。1つはLS-DYNA version 970で、高速衝撃、衝突、爆発、金属加工など極限条件下で材料がどのように振る舞うかを決定するために高精度計算を使用するエンジニアリングシミュレーションソフトウェアスイートである。
このソフトウェアは自動車、航空宇宙、防衛、製造業を含む多くの業界で使用されていたが、イランが核兵器開発のためのAMADプログラムに関連して弾頭テストを実行していることに関連した公開報告書でも言及されている。
もう1つの可能性の高い特定されたターゲットは、Practical Structural Design and Construction Software(PKPM)として知られており、中国の土木工学および建築設計で広く使用されているCADスイートである。このソフトウェアは、梁と列のコンクリートせん断設計をシミュレートでき、高層建物の地震、風、荷重分析を提供する。
ルールに一致する3番目の潜在的なターゲットであるModelo Hidrodinâmico(MOHID)は、ポルトガルのリスボンのInstituto Superior Técnicoで開発されたオープンソースの水モデリングシステムである。このソフトウェアは、流体力学、水質シミュレーション、堆積物輸送、油流出モデリング、ラグランジアン粒子追跡をカバーしている。
含意
SentinelOneの研究者は、これら3つの可能なプログラムのどのワークフローが特にマルウェアによってターゲットにされたかを確実に言及することはできなかったが、含意は明確である:マルウェアを使用した戦略的産業妨害は、Stuxnetがプログラマブルロジックコントローラーに悪意のあるコードを注入してイランのナタンズ核施設のウラン濃縮遠心分離機に損害を与えるために使用される前の20年前から、国家アクターによって行われていた。
「推測しなければならないのであれば、ターゲットは特定の材料物理のシミュレーションであり、インプラントは特性曲線(応力-ひずみなど)に悪影響を与えることを目的としていたと思う」と、fast16 FPUパッチングコードも分析した独立研究者のRuben SantamartaはLinkedInに投稿した。「たとえば、これはエンジニアに何かが予期された以上に耐性があると考えさせるが、現実には予期されたよりも早く失敗する… Stuxnetのように。」
核関連のデバイスとソフトウェアに対する概念実証攻撃を研究しているSantamartaは、設計段階を妨害することにより物理的障害を引き起こす可能性がある何かを野生で見つけることは、パラダイムシフトを表していると述べた。
「問題は、それが20年前に起こったため、ある特定の国での長年の失敗の一部を再検討し、モニターをしばらくの間見つめ、単に可能性をよく考えるのは興味深いだろう」と彼は投稿した。