TellYouThePass ランサムウェアが復活:Golang によるクロス・プラットフォームと Log4Shell

TellYouThePass ransomware returns as a cross-platform Golang threat

2022/01/12 BleepingComputer — TellYouThePass ランサムウェアは、Golang でコンパイルされたマルウェアとして再登場し、多様なオペレーティング・システムにおいて、特に macOS と Linux を標的にすることが容易になった。このマルウェアは、先月に Log4Shell エクスプロイトと組み合わせることで、脆弱なマシンを狙うために使用されたことで注目されている。今回、Crowdstrike が発表したレポートは、Windows 以外のプラットフォーム向けのコンパイルを容易にする、コードレベルの変更による復活に注目している。

なぜ Golang なのか?

Golang は、クロス・プラットフォームの汎用性を持つため、2019年からマルウェア作者が採用し始めているプログラミング言語だ。さらに、Golang では依存関係にあるライブラリを、1つのバイナリ・ファイルに並べることができるため、Command and Control (C2) サーバー通信のフットプリントが小さくなり、検出率の低下につながる。

また、Python などのプログラミング言語に比べて習得が容易であり、最新のデバッグ・ツールやプラグイン・ツールを備えているため、プログラミング・プロセスを簡素化できる。Golang で書かれたマルウェアの成功例としては、先月に Google のセキュリティ・スペシャリストにより破壊された、Grupteba ボットネットが挙げられる。

TellYouThePass の新しいサンプル

Crowdstrike のレポート TellYouThePass Ransomware Analysis Reveals a Modern Reinterpretation Using Golang によると、TellYouThePass の Linux/Windows サンプル間のコードの類似度は 85% であり、ランサムウェアを異なる OS 上で動作させるために、最小限の調整が必要になることが示されている。

このランサムウェアの、最新のサンプルにおける注目すべき変更点は、「main」以外の関数の名前が、すべてランダムにすることで、解析を妨害しようとする点である。TellYouThePass は、暗号化処理を開始する前に、メールクライアント/データベースアプリ/Web サーバ/ドキュメント・エディタなどの、タスクやサービスを削除することで、処理の妨害や暗号化の失敗を排除する。さらに、いくつかのディレクトリは暗号化から除外することで、システムの起動を保証し、支払いのチャンスが失われることを防いでいる。

最近に発生した TellYouThePass の感染では、解読ツールと引き換えに 0.05 Bitcoin (現在のレートで約 $2,150) が要求されている。暗号化方式は、RSA-2014 および AES-256 アルゴリズムを使用しており、無料の復号ツールは存在していない。また、現時点では、macOS のサンプルは発見されていない。

Golang のクロス・プラットフォーム機能は、ランサムウェア・ギャングにとっても便利というわけです。しかも、C2通信のフットプリントが小さくなり、検出率の低下につながるという点も気になります。関連するポストとして、2021年7月の「攻撃者たちが Go / Rust / Nim / DLang を使うのは何故なのか?」と、8月の「Go と Rust の “net” library に影響する IP アドレス解釈の脆弱性とは?」があります。よろしければ、ご参照ください。