静的解析に強いSparkRAT

ほぼこもセキュリティニュース By Terilogy Worx

SparkRATの活動が観測されています。
新しく出てくるマルウェアはいろいろな手法で持ち込まれます。
何段階もの手順を経て持ち込まれる動きをするマルウェアも多く観測されています。
SparkRATも多くの手順を経て持ち込まれるのですが、その手法が他のものとは異なります。

これまでの他のマルウェアはマルウェアとしての動作ができるバイナリを最終的には侵害環境に転送します。
そのため、そのバイナリがファイルとして保存されない場合でもネットワークを流れるバイナリを見るとかメモリの中に格納されたデータ列を見るなどすることでそのバイナリがマルウェアであることが確認できるものでした。

しかしSparkRATのアプローチは異なっています。
SparkRATはSparkRATのままのバイナリで転送される形式をとっていません。

  • 初期アクセス
    ターゲットは脆弱なMySQLおよびWebサーバーエンドポイントです。
    SQLインジェクション、クロスサイトスクリプティング、Webサーバーの脆弱性を悪用するなどしてWebシェルを展開します。

     

  • SparkRATを展開する
    YaegiというGoのインタープリターを使います。
    そこでGoのコードを動作させ、そのGoの実行可能状態になったバイナリの中に格納されたBase64でエンコードされたGoのソースコードをデコードしてさらにGoインタープリターで実行します。
    このように多段で解釈される形式をとっているため、動作していない状態のバイナリを静的に解釈しても悪意ある活動がそこに含まれていることを発見することが容易ではありません。

SparkRATは名前の通りRATです。
動作が始まってしまえばそれは普通の高機能なマルウェアです。
SparkRATはWindowsでもmacOSでもLinuxでも動作します。
例としてWindowsでの機能を見てみましょう。

  • コマンド実行機能
    PowerShellやWindowsのコマンドをリモート実行できます。

     

  • Windowsの機能の実行
    シャットダウン、再起動、中断を実行できます。

     

  • ファイル操作
    ファイルのダウンロード、ファイルのアップロード、ファイルの削除などのファイル操作が可能です。

     

  • 情報取得
    システム情報取得、スクリーンショット取得などの情報収集機能が実装されています。

     

  • 自動更新機能
    C2と通信し、自分自身をアップグレードすることができます。

Goで書かれたマルウェアはいくつも出てきていますが、このような形式で実装されたものはまだ他にはないかもしれません。
しかしSparkRATのソースコードは公開されてしまっています。
時間の経過とともにSparkRATの手法は他のマルウェアにも適用されてきてしまうかもしません。
このような手法があるのだということを防御側も認識して対策を進めていく必要があるということになりそうです。

参考記事(外部リンク):DragonSpark | Attacks Evade Detection with SparkRAT and
Golang Source Code Interpretation

www.sentinelone.com/labs/dragonspark-attacks-evade-detection-with-sparkrat-and-golang-source-code-interpretation/