DragonSpark という中国の APT:Golang ソースの実行時解釈で検出を回避

Hackers use Golang source code interpreter to evade detection

2023/01/24 BleepingComputer — DragonSpark という名で追跡されている、中国語を話すハッキング・グループは、東アジアの組織に対してスパイ攻撃を行う際に、検出を回避するために Golang ソースコードの解釈を採用していることが確認された。この攻撃は SentinelLabs により追跡されており、DragonSpark は SparkRAT と呼ばれるオープンソース・ツールに採用し、感染させシステムから機密データを盗み、コマンドを実行し、ネットワーク上での横移動などを行うと、研究者たちは報告している。SentinelLabs が観測した侵入経路は、オンラインで公開されている脆弱な MySQL データベース・サーバだった。


野放し状態の SparkRAT

攻撃者は、SQL インジェクション/クロスサイト・スクリプティングなどの、Web サーバの脆弱性を介して Web シェルを展開し、脆弱な MySQL および We bサーバのエンドポイントにアクセスしていた。続いて攻撃者は、Windows/macOS/Linux 上で実行できる Golang ベースのオープンソース・ツールである SparkRAT を展開し、豊富な機能を持つモートアクセスを確立する。

この SparkRAT は、C2 サーバから受け取る 26種類のコマンドをサポートし、以下の機能を実行する。

  • PowerShell や Windows のシステムコマンドのリモート実行
  • Windows の機能を介した強制的な停止/再起動/シャットダウン
  • ダウンロード/アップロード/削除などのファイル操作の実行
  • システム情報やスクリーンショットの C2 サーバへの流出

SparkRAT は、C2 サーバとの通信において WebSocket プロトコルを使用し、自身を自動的にアップグレードし、常に新機能を追加することが可能である。

SparkRAT upgrading itself automatically
SparkRAT upgrading itself automatically (SentinelLabs)


DragonSpark は SparkRAT を使用する他に、特権昇格のための SharpToken/BadPotato ツールおよび、侵入したシステムで永続性を確立するための GotoHTTP ツールなどを使用する。

コード解釈のメリット

ただし、このキャンペーンを際立たせているのは、Golang ソースコードのインタープリット処理を用いて、マルウェア・バイナリに埋め込まれた Go スクリプトから、コードを実行する点にある。この Go スクリプトは、リバースシェルを開くために使用される。それにより脅威アクターは、Metepreter を介した接続により、リモートからコードを実行できるようになる。

A Meterpreter session
A Meterpreter session (SentinelLabs)

このマルウェアは、Yaegi フレームワークを介して、コンパイルされたバイナリ内にエンベッドされた base64 エンコード・ソースコードを実行時に解釈する。それにより、事前のコンパイルを必要とせずにコードを実行し、静的な解析を回避することが可能になる。

大半のセキュリティ・ソフトウェアは、コンパイルされたコードの動作を評価し、ソースコードを検出の対象としないため、この手法により、静的解析を効果的に回避できるようになる。

Golang source code
Golang source code (Sentinel Labs)
DragonSpark とは何者か?

DragonSpark は、中国語を話す他のハッキング・グループと、目立った重複がないように見える。したがって、SentinelLabs は。このクラスターに新しい名前を付けたという。その活動は、2022年9月に初めて発見された。Zegost マルウェアが関与していることから、中国の APT と強く結び付けられる。

DragonSpark が侵害したサーバに仕込まれる Web シェルは、世界的に広く利用される China Chopper である。また、DragonSpark が使用したオープンソースのツールは、すべてが中国の作者により開発されていることから、この脅威アクターと中国のつながりが強く示唆される。

DragonSpark は、台湾/香港/中国/シンガポールの、ギャンブル関連/アートギャラリー/旅行代理店/学校などの、侵害済みネットワークを利用するケースが多い。

SQLi や XSS などの、Web サーバの脆弱性を悪用してMySQL などに侵入し、Golang ベースのオープンソース・ツールである SparkRAT を展開し、C2 サーバとの通信の行うマルウェアです。そして、Golang ソースコードのインタープリット処理を用いて、悪意のコードを実行することで、検出を回避するとのことです。よろければ、2021/07/27 の「攻撃者たちが Go / Rust / Nim / DLang を使うのは何故なのか?」も、ご参照ください。

%d bloggers like this: