Slapdash Safeguards

にわか仕込みのセキュリティ

APT37のマルウェア「THUMBSBD」はUSBメモリをC2チャネルに使用

度々奇抜なC2チャネルが話題に挙がるが、今回攻撃者からのコマンド運ぶのはUSBメモリ。

インターネットに繋がっているPCでUSBメモリにマルウェアを仕込み、攻撃者からのコマンドをUSBに保存。

インターネットに繋がっていないPCでUSB内のコマンドを実行し、結果をUSBに保存。

再び、インターネットに繋がる端末に接続された際に、インターネットに繋がっていない端末で実行結果を送信。

これを繰り返すことで、インターネットに繋がっていなくてもC2からの攻撃を可能にした。

エアギャップネットワークも標的にし、まさかのUSBメモリを「物理レイヤーのC2チャネル」として使用。

www.zscaler.com

USBメモリを介した攻撃ステップ

Zscalerでは、USBメモリの感染に繋がるまでに複数のマルウェアについて解説している。

悪意あるLNKファイル(初期ベクタ)
  │
  ├─ デコイ文書表示(パレスチナ・イスラエル関連のアラビア語記事)
  │
  └─ PowerShell → シェルコード → RESTLEAF(Zoho WorkDriveでC2)
                                      │
                                      ▼
                                SNAKEDROPPER(Ruby環境インストール+永続化)
                                      │
                           ┌───────────┼───────────┐
                           ▼                     ▼
                       THUMBSBD              VIRUSTASK
                 ( エアギャップ越え       ( リムーバブルメディア
                   双方向C2バックドア )        伝搬・感染拡大   )
                       │
                  ┌───────┼─────-──┐
                  ▼               ▼
              FOOTWINE         BLUELIGHT
           (監視バックドア)  (クラウドC2バックドア)

不審なLNKファイルから始まり、マルウェアダウンロードしたり、埋め込まれていたマルウェアが展開されたり。

USBマルウェア感染に関連するのは、THUMBSBDとVIRUSTASK。

USBに関して、Zscalerの記事から推測される攻撃ステップはおそらく以下のようなもの。

エアギャップネットワークに対する攻撃活動フロー

SNAKEDROPPER

SNAKEDROPPERと名付けられたRubyベースのローダーは、Ruby 3.3.0ランタイム一式を展開する。

pythonを実行するためのファイル一式をマルウェアが持ち込むような事例が多い印象だが、ここではruby。

5分に一回実行されるrubyランタイムによって、THUMBSBDとVIRUSTASKが展開されるようだ。

%PROGRAMDATA%\usbspeedにフォルダが作成されるので、これが感染の合図となる。

rubyを使っていなくて急にrubyが実行されるようになったら怪しいが、rubyの実行だけでよくあるアンチウイルスは検知できるんだろうか。

THUMBSBDとVIRUSTASK

THUMBSBDがUSBにマルウェアを配置する。

USBメモリの接続を検知して、エクスプローラーからは隠しフォルダとなる$RECYCLE.BINを作成する。

このフォルダ内にC2へアクセスして取得したコマンドを配置。

VIRUSTASKが$RECYCLE.BINに感染拡大用セットを配置。

ショートカット(LNKファイル)をUSBのルートフォルダに配置。

元記事にはリムーバブルメディアとあるので、別にUSBメモリだけではなくドライブとして認識されれば何でも。

DVD、CD、ファイルサーバもあり得るか?

USB持ち込まれ先でショートカットがクリックされると、$RECYCLE.BINに設置されたrubyスクリプトが実行され、THUMBSBDとVIRUSTASKが展開される。

こうして、USBにあるC2から受け取ったコマンドを実行することになり、実行結果はUSBの$RECYCLE.BINに保存。

再び、インターネットに接続できる環境でTHUMBSBDの感染が確認されると、C2へコマンド結果送信&新たなコマンド取得。

おそらく、感染USBが端末Aから端末Bに行った後にまだ感染していないインターネットに繋がる端末Cに行った場合には、端末Bの実行結果送信を新たに感染した端末Cが担うような仕組みになっている。

エアギャップネットワークを標的にしながら、メッシュ型のリレーネットワーク的なもの。

つまり、VIRUSTASKでUSB経由の感染を広げれば広げるほどゲートウェイの候補が増え、通信チャネルの冗長性が高まる。

1本でUSBメモリで複数端末対応できるようなので、オフラインなら情報を溜め込み、オンラインなら情報送信&次のコマンド取得となるだろう。

意外と事例ある

StuxnetもUSBで物理的に離れた端末で実行されていたなというくらいしか知らなかったが、他にもあるらしい。

Agent.btz(2007-2008年初報告?)

Turla, Snake, UNC4210, Venomous Bear, Waterbug, Uroburosというグループが使っていたらしい。

中東の基地にある国防総省施設の駐車場に、外国の諜報機関によって感染したUSBフラッシュドライブが放置されたところから、誰かがPCに挿してしまったのが始まりって本当ですか?
Agent.btz: a Source of Inspiration? | Securelist

attack.mitre.org

Dark Web Profile: Turla

USBStealer(2014年初報告? コンパイルタイムスタンプ的には2005年から活動?)

Sednit, Sofacy, APT28, Fancy Bearと呼ばれるグループが使用していたとのこと。

データ窃取に特化で、一方向的な機能?
www.welivesecurity.com

attack.mitre.org

Fanny(2015年初報告? コンパイルタイムスタンプ的には2008年から活動?)

例の最強グループ「Equation Group」が使用していた。

実は、Stuxnetよりも前からLNKエクスプロイトを使用していたぽい痕跡があったらしい。
securelist.com

securelist.com

GoldenJackal(2019年初報告 現在も活用されている?)

攻撃者はハッキリしていないようだが、Turlaかもしれないとのこと。

今回と同じくらい機能がありそうだが、 THUMBSBDが単一バイナリなのに対してGoldenJackalは各機能ごとに分かれたバイナリになっているらしい。
securelist.com

www.welivesecurity.com

今はUSB感染ってあんまり無いイメージだが...。

見知らぬUSBは挿しちゃダメだし、知らないファイルがあったら消してください。

$RECYCLE.BINはNTFSなら勝手に作られちゃうので、それの存在だけだと判断できない。

でも、SIDとかが無いファイルツリーになっていたら怪しいかな。

たぶん普通のやつ↓
$RECYCLE.BIN\
  S-1-5-21-xxxxxxxxxx-xxxxxxxx-xxxxxxxx-xxxx\   ← ユーザーSID
    $I{ランダム6文字}.{元の拡張子}              ← メタデータファイル
    $R{ランダム6文字}.{元の拡張子}              ← 削除された実データ

マルウェアとか怪しいやつ?↓
$RECYCLE.BIN\
  [0x83 XOR暗号化されたコマンド/結果ファイル]    ← SIDサブフォルダなし
                                                ← $I/$Rの命名規則に従わない
                                                ← 復号するとVictim ID + コマンド構造

FAT32/exFATフォーマットのUSBメモリでは、通常$RECYCLE.BINは作成されないからその場合も怪しい。