Emotet マルウェア 2020年の進化
悪名高いボットネットEmotetは、10月末には一旦沈静化したかに見えましたが、12月21日に復活しました。このボットネットは、感染したシステムに他のマルウェアをインストールするプラットフォームとして機能し続けています。現在は、主にTrickbotの配信が観測されています。リトアニアの国立保健所は、Emotetによって被害を受けた。マルウェアは内部ネットワークに感染し、追加のファイルをダウンロードしたり、偽の電子メールを送信したり、他のタイプの悪意のある活動に従事するようになりました。これにより、マルウェアが削除されるまで、機関は一時的に電子メールシステムを無効にしました。
私たちは、このボットネットの運用を追跡してきました。以前の発表では、Emotetが回避技術を駆使してセキュリティ製品による検出をどのように回避したかと、それを克服する方法、およびマルウェアを解凍する方法について説明しました。
今回のブログ記事では、Emotetの新しいローダーを検証し、以前のローダーと比較していきます。解凍順序の変更、ファイルの新しいユニークなプロパティ、新しい難読化方法について説明します。また、マルウェアの回避技術と指標となる特徴のうちどの部分は変わらなかったかについても触れます。
相違点
- 実行フロー - マルウェアがパックされ、最終的なペイロードが実行される前にいくつかのステップが実行されます。
先日集めたサンプルから、実行されるステップ数が削減されていました。
その理由は明らかになっていませんが、我々の仮説では、開梱プロセスが長くなると検出率の低下に効果がなかったのではないかと考えています。Emotetは、反射型ローディングと呼ばれる技術を使用して、すべてのステージにローディングを行っています。特定のセキュリティ製品が反射型ローディングを検出できるのであれば、このように複数回使用しても回避にはならないでしょう。別の説明としては、Emotet専用に作られたヒューリスティックを回避しようとしているということも考えられます。これまでの実行フローは非常に長く、独自のものでした。彼らのマルウェアがこの特定のフローを検出することで回避されているのであれば、それを変更することが役立つかもしれません。
2. ローダー - ローダーはいくつかの変更を行いましたが、最初の変更点は、実行ファイルを DLL に変更したことです。この DLL にはユニークな出力があります。"RunDLL "と "Control_RunDLL "です。これにより、EDRでEmotetの感染を検出することが可能になります。プロセス rundll32.exe がエクスポートと一致するパラメータで起動された場合、システムは感染します。
サンプルは、以下のYARAルールでも検出できます:
import "pe"
private rule emotet_exports
{
condition:
pe.exports("RunDLL") or pe.exports("Control_RunDLL")
}
private rule is_dll
{
condition:
pe.characteristics & pe.DLL
}
rule emotet
{
condition:
is_dll and emotet_exports
}
手作業で調べたサンプルから、もう一つの重要な変化に気づきました。それは、一部には良性のコードが含まれていないようです。この手法はマルウェアが検出される確率を下げ、セキュリティ製品を迂回するために使用されていましたが、姿を消しています。
3. 追加の難読化 - ローダから抽出されたペイロードに新たなコード難読化テクニックが観測されました。彼らは、単一の単純な操作ではなく、多くのビット単位の操作を使用してローカル変数に値を設定しています。この形式の難読化は、コードを実行しないとコードを理解することを困難にし、デバッグプロセスをより退屈なものにしています。
類似点
1. 復号化アルゴリズム - ペイロードは暗号化されたリソースとしてローダー内に格納されます。Emotet の前バージョンの調査を行う中で、マルウェアを実行せずにペイロードを静的に復号化して抽出できるツールを開発しました。このツールは最近のサンプルでも使用可能であり、開発者がアルゴリズムを変更していないことを示しています。
2. コード難読化 - 上記の難読化に加えて、ペイロードの以前のバージョンにも存在していた難読化技術があります。コードには複雑なスイッチケースや不要なジャンプ命令が含まれており、コードの自然な順序を理解しにくくなっています。
3. 隠されたデータ - ペイロードは、WinAPI インポートや意味のある文字列をリストアップしないことで機能を隠します。これは静的な分析を覆し、研究者はこのデータを発見するためにマルウェアをデバッグすることを余儀なくされます。文字列は暗号化された形で保存され、APIはその名前のハッシュを使用して解決されます。文字列の復号化アルゴリズムとAPIのハッシュ化アルゴリズムは同じままでした。
継続は力なり
Emotetの新しい亜種の段階を評価することで、マルウェアが使用している変更点や新しい手法が、変わらない部分や特徴とともに特定されました。
Emotetは非常に回避性の高いマルウェアとして知られています。これらの変更は、その検出率を可能な限り低下させたいという攻撃者の願望を示しています。セキュリティ製品を迂回するのに有効だと判断された手法は残し、改善や削除された手法は、十分に有効ではないものを改善するという機敏な方法論を反映しています。
Emotetのようなマルウェアは感染基盤が広範囲に及んでいるため、このような技術仕様の変更を追跡することは非常に重要です。新たな回避や注入技術は、他のマルウェアがセキュリティ製品を迂回して多くのシステムに感染するのに使われるかもしれません。