Angler Exploit Kit – Operating at the Cutting Edge

エクスプロイト キット (Nuclear EK) に関する以前のブログ記事の 1 つでお約束したように、今回は Angler Exploit Kit についてより深く見ていきたいと思います。 Angler EK は、おそらく現在サイバー犯罪者が使用している最も洗練されたエクスプロイト キットです。 アンチウイルス検知や暗号化されたドロッパーファイルなど、他のエクスプロイトキットが後から使い始めたソリューションを先駆けて開発しました。 さらに、Anglerは、数週間前のAdobe Flashゼロデイ(CVE-2015-0311)のような最新のゼロデイを最も早く統合する傾向があり、著しくユニークな難読化を採用しています。 最後に、Anglerは、ドロップしたマルウェアをメモリから実行し、ハードディスクに書き込む必要がありません。エクスプロイトキットの中でもこのユニークな手法は、ファイルシステムのスキャンに依存する従来のアンチウイルス技術にとって、検出が極めて困難なものとなっています。

Angler は今日の脅威の中で最も高度なエクスプロイト キットですが、Websense の顧客は、高度分類エンジンである ACE によって、次の段階でこの脅威から保護されています。

  • Stage 2 (Lure) – ACE は侵害した Web サイトを検出することができます。

    ステージ 3 (リダイレクト) – ACE は、ユーザーを悪用ページにリダイレクトする注入されたコードを検出します。

    ステージ 4 (悪用キット) – ACE は、このサイバー攻撃を実行しようとする悪質なコードを検出します。

  • Stage 5 (Dropper Files) – ACE は、この攻撃に関連するバイナリ ファイルを検出します。

Obfuscation

Angler のランディング ページは 4 つの基本部分で構成されています。 まず、目に見える英語のテキストがあり、エクスプロイト・キットの犠牲者に、正規のページにアクセスしたと思わせるために使用されます。 次に、実際の悪意あるスクリプトを難読化するための様々な難読化ルーチンを備えています。 これらのスクリプトは、pクラスタグ内に配置され、base64としてエンコードされています。 このbase64文字列をデコードすると、難読化された実際のエクスプロイトキットのコードが現れます。 そして最後に、ランディングページには、暗号化された文字列がいくつか含まれており、その中には、キットに含まれるさまざまなエクスプロイト(Flash、Silverlight、Internet Explorer)につながるさまざまなURLが入っています。

Angler ランディング ページからのサンプル

Angler

Exploit

Deobfuscated Exploit Code

一旦、ランディング ページがデオブファスカートされると、コードの真の性質は明らかにされることになります。 Angler は、Nuclear や他のさまざまなエクスプロイト キットと同様、セキュリティ製品による検出をさらに困難にするために、非常に基本的な第 2 層の難読化を使用しています。

また、さまざまな仮想化ソリューション (VMWare, VirtualBox, Parallels) や、セキュリティ研究者によって広く使用されている Fiddler という Web デバッグ プロキシの検出に加え、アンチウイルス検出も使用しています。 これらの対策を実施することで、ほとんどのセキュリティ研究者がこれらのツールに大きく依存していることが多いため、このエクスプロイトキットを野放しで観察・調査することが非常に難しくなっています。

AVおよび仮想化ソフトウェアに属するさまざまな .sys および .dll ファイルを検出

Software

VMWare, VirtualBox, Parallels検出と同様にFiddler Webデバッグ プロキシ

Exploit

Angler最大の特徴はこれらの暗号化URLパスを使っている点です。 これは、単純な転置ベースの暗号 (平たく言えば、文字をスクランブルすること) を使用して、このデータを暗号化および復号化します。

復号化ルーチンは、エクスプロイト キットの難読部分に埋め込まれています。

キットにある復号化ルーチン

Routine

フォーマットおよびコメントされた復号化ルーチン

Exploit

復号化がどう機能するかを示すために非常に単純な例を使用します。 暗号文(暗号化されたデータ)が「TEER CSURH TO PLTAOEL IX TP」、復号化キーが「OBFUSCATE」だとします。 アングラーが行うのは、鍵に含まれるアルファベット順の文字を取り出し、それに基づいて暗号文を並べ替えることです。 例えば、

OBFUSCATE → 6,2,5,9,7,3,1,8,4

これで暗号文の文字の順番がわかる。 2052>

復号の例

Malware

そして最後に、復号した文字列からホワイトスペースを除去する。 明らかに、これは極めて初歩的な暗号化であり、(上記の例のように)平文が実際の単語で構成されている場合には、鍵がなくても非常に簡単に解読できてしまいます。 しかし、Angler は高度にランダム化された URL を使用するため、この種の暗号化は、これらの文字列の真の性質と実際の URL パスをさまざまなセキュリティ製品から隠すには十分すぎるほどです。 また、Anglerは多段階のシェルコードを使用するため、シェルコード構築ルーチンも多数存在します。 また、ドロッパーファイルのハードコードされた暗号化/復号化キーも含まれています。

Encryption key for payload

Encryption

Multi stage Shellcode

Shellcode

Dropper

エクスプロイトが成功すれば、Anglerのペイロードは被害者のシステム上にドロップされます。 ペイロードがネットワークを通過する際、暗号化されたままであり、最終段階のシェルコードによって後で復号化されます。 この技術は、従来の侵入検知システム(IDS)にとって、悪意のあるドロッパーの検知を非常に困難にするために使用されます。 前にも述べたように、Anglerは「ファイルレス」ドロッパーを使用しており、これはメモリから直接実行されることを意味します。 Angler が使用するドロッパーは Bedep と呼ばれ、実際には単なるダウンローダーです。つまり、それ自体は悪質ではありませんが、さまざまな異なるマルウェアをダウンロードして実行するために使用されます。

ペイロードは、シェルコードと Bedep DLL の組み合わせからなります。 ペイロードの最初の数バイトが「909090」 (NOPs または x86 アセンブリの No Operations) であれば DLL はメモリから読み込まれ、そうでなければ通常のドロッパーファイルと同様にディスクに書き込まれます。 シェルコードは、メモリから DLL を実行する役割を果たします。

API

シェルコードは kernel32.dll や wininet.dll などの API を解決します

API

Summary

Angler Exploit Kit は間違いなく現在世界で最も危険な悪用キットといえるでしょう。 たとえば、

  • Unique Obfuscation
  • Detects antivirus/virtualization software
  • Encrypted payload
  • Fileless infections

さらに Angler はしばしば、ゼロデイ攻撃を含む最新の攻撃を最初に導入しています。 Angler の常に進化する性質は、キルチェーンの 1 つの段階だけに焦点を当てるのではなく、キルチェーン全体にわたって保護を提供するセキュリティ ソリューションが必要であることを強調しています。

コメントを残す

メールアドレスが公開されることはありません。