Anglerエクスプロイト キットを理解する – パート1: エクスプロイト キットの基本

By

Category: Malware, Threat Prevention, Unit 42

Tags: ,

This post is also available in: English (英語)

概要

一般的に言うと、犯行グループはマルウェアを広く配布するために2通りの方法を使用しています。もっとも一般的な方法が、悪意のあるスパム(malspam)です。これはかなり直接的なメカニズムで、通常は、電子メールの添付ファイルやマルウェアにつながるメッセージ内のリンクを使用します。ただし、悪意のあるスパムを成功させるには、ユーザーによる何らかのアクション(添付されたファイルを開くなど)が必要です。

マルウェアを広く配布する他の方法は、エクスプロイト キット(EK)です。EKは、潜在的な被害者がWebを閲覧している間に、画面の背後で動作するように設計されています。EKには、エンド ユーザーによる追加のアクションは必要ありません。

EKは、精巧な配信方法です。EKを通じたマルウェアの配布には、マルウェアの感染に至るイベント チェーンを構成するその他のコンポーネントが含まれます。このブログは、Angler EKを明確に理解してもらうことを目的とした2つのパートの前半部分です。ここでは、Microsoft Windowsを実行するコンピュータを標的としているEKの活動を重点的に取り上げます。Windowsは、依然として世界的に普及しているオペレーティング システムであり、EKを使用する犯罪者にとって、潜在する被害者の数は最大となります。

定義:

EKを完全に理解するには、EKトラフィックの文脈に現れる次の用語を理解する必要があります。

  • 脆弱性 – 不正アクセスや他の悪意のある挙動で悪用される危険性に晒されているソフトウェア コード内の不慮の欠陥。
  • エクスプロイト – アプリケーションまたはオペレーティング システム内の脆弱性を悪用するファイルまたはコード。エクスプロイト キット(EK) – ブラウザ関連のソフトウェア アプリケーションの脆弱性を悪用するエクスプロイトを使用して、ユーザーが気付かぬうちにクライアント(Windowsデスクトップまたはラップトップ)を感染させるサーバベースのフレームワーク。
  • マルウェア – エクスプロイトが成功した場合に、EKによって配信されるペイロード。EKペイロードは、Windowsコンピュータを感染させるための悪意のある設計が施されています(.exeまたは.dllファイル)。

基本的な概念は、EKが、脆弱性を標的としたエクスプロイトであるということです。エクスプロイトが成功すると、ユーザーのコンピュータはマルウェア ペイロードに感染します。他に2つの重要な用語があります。

  • 攻撃者 – マルウェアの背後にいる個人または犯行グループ。サイバー セキュリティの世界では、「攻撃者」という用語は戦争の「戦域」に関連付けられます。良い攻撃者と悪い攻撃者の対立が存在するため、マルウェアの背後にいるさまざまな犯行グループを指す際に、「悪い攻撃者」または「悪意のある攻撃者」と言われる場合があります。
  • 攻撃(キャンペーン) – EKを使用した一連の攻撃と、被害者をそのEKに導くためのインフラストラクチャ。

EK自体は、システムへマルウェアを配信しません。何らかの形で、マルウェアを配信する前に、ユーザーをEKサーバーに導く必要があります。攻撃者は、攻撃を使用して被害者のトラフィックをEKへ導きます。

攻撃者は、ほとんどの場合、彼らが配布するマルウェアの特徴によって識別されます。攻撃は、ほとんどの場合、被害者がEKに到達する前のネットワーク トラフィックの特徴によって識別されます。攻撃者攻撃は、2つの異なる用語です。攻撃者は、1つまたは複数の攻撃を使用してマルウェアを配布することがあります。さらに、複数の攻撃者が同じ攻撃を使用して異なる種類のマルウェアを配信することもあります。

たとえば、CryptXXXの背後にいる攻撃者は、複数の攻撃を使用して、このランサムウェアを配布しています。私たちは、CryptXXXランサムウェアを配信する少なくとも2つの攻撃、擬似DarkleechAfraidgateを発見しています。

複数の攻撃者によって使用されている攻撃の一例がEITest攻撃です。私たちは、EITestを介して送信された複数の異なる種類のマルウェアについて言及しています。これは、複数の異なる攻撃者がこの攻撃を使用していることを示しています。

サービスとしてのEK

EKの大多数の作成者は自分たちのビジネス モデルにSoftware as a Service (SaaS)を利用しています。このモデルはPlatform as a Service (PaaS)、Malware as a Service (MaaS)またはEK as a Service (EKaaS)と呼ばれることもあります。

EKは犯罪の闇市場で売られており、トップクラスのものは月額数千ドルすることも少なくありません。EKの所有者はレンタルのEKサーバー監視用管理コンソールを買い手に提供しますが、買い手は攻撃のインフラを提供しなければなりません。先述したように、別個の攻撃インフラをEKと組み合わせたものが攻撃作戦であると考えられます。

EK内のイベント連鎖

EKを利用する攻撃においてマルウェアの感染に成功した場合、一般的に言って以下のイベント連鎖が認められます。

図1: EK内のイベント連鎖
図1: EK内のイベント連鎖

EKが最初に送りつけてくるものはランディング ページです。このHTMLページは裏で密かに受信されるので被害者のWebブラウザ上では見えません。ランディング ページは、被害者のWindowsコンピュータに関するデータを収集し脆弱性のあるアプリケーションを検出するコードから構成されています。標的となるアプリケーションには、多くの場合、Adobe Flash Player、Java Runtime Environment、Microsoft SilverlightおよびWebブラウザ(通常はInternet Explorer)などがあります。コンピュータにパッチが完全に適用され、アプリケーションがすべて最新のものに更新されていれば、大部分のEKはランディング ページで停止します。コンピュータの一部が最新になっていない場合、EKは検出した脆弱性のあるどのアプリケーションに対しても目的に適ったエクスプロイトを送信します。

EKエクスプロイトは、ホスト上でマルウェアを密かに起動する目的で、脆弱性のあるアプリケーション(Flash Player、Internet Explorerなど)を利用するよう設計されています。Mitre.orgのCommon Vulnerabilities and Exposures (CVE)データベースを検索すると、EKエクスプロイトが、攻撃者に被害者のホスト上で「execute arbitrary code(任意のコードを実行する)」のを許してしまう脆弱性に基づいていることがわかります。Flash、JavaまたはSilverlightに対して、EKはファイルとしてエクスプロイトを送信しますが、送信されるファイルは通常何かのアーカイブ形式になっています。脆弱性のあるブラウザに対しては、HTML内のコードとしてエクスプロイトが送信されます。

EKのペイロードはWindowsコンピュータに感染するよう設計されたマルウェア(.exeまたは.dllファイル)です。このペイロードは別のマルウェアを取得するファイル ダウンローダーかもしれませんし、あるいは最終的なマルウェアである可能性もあります。高性能のEKを使って、ペイロードは暗号化されたバイナリとしてネットワーク越しに送信されます。暗号化には単純なXOR暗号化を使うかRC4暗号化キーを使います。次に、暗号化されたバイナリは被害者のホスト上で復号化されてから実行されます。

EKは単独で機能しない

EKは一般的に言って何らかの攻撃作戦のもとで動作します。大多数の攻撃作戦では侵害を受けたWebサイトが利用されてネットワーク トラフィックがEKに向けられます。この場合は直截的なイベント連鎖になります。この種の攻撃作戦を表したフロー チャートを下に示します。

図2: 比較的直截的な攻撃作戦のイベント連鎖
図2: 比較的直截的な攻撃作戦のイベント連鎖

侵害を受けたWebサイトのWebページにはコードが埋め込まれます。一部の攻撃作戦では、このコードは比較的単純なものです。

図3: EKへと直接導いてしまう、侵害を受けたWebサイトのページに埋め込まれたコード
図3: EKへと直接導いてしまう、侵害を受けたWebサイトのページに埋め込まれたコード

上記イメージの埋め込まれたコードにはAngler EKのランディング ページを直接指しているiframeが含まれています。EKのランディング ページは黄色で協調してあります。iframeの位置が負の値になっている様子に注目してください。これにより、このiframeはWebブラウザに表示される際目に見えません。

また、挿入されたコードが高度に難読化されている場合もあります。以下は、疑似Darkleech攻撃で侵害を受けたWebサイトの2016年5月に挿入されたスクリプトの例です(長さ12,000文字以上)。

図4: 2016年5月に疑似Darkleech攻撃によって挿入されたコードの先頭部分
図4: 2016年5月に疑似Darkleech攻撃によって挿入されたコードの先頭部分

多くの攻撃は、侵害を受けたWebサイトとEKサーバーとの間で追加のサーバーを利用しています。これらの追加のサーバーは、EKへのゲートとして機能するため「ゲート」と呼ばれます。ゲートによってWindowsホストのみがEKサーバーと接続できることを意味する場合もあります。MacBookやLinuxのホストを使用している場合、ゲートがHTTPヘッダーのuser-agent文字列を調べるため、ユーザーはEKランディング ページに送られることはありません。

図5: ゲートを使用する攻撃イベントの連鎖
図5: ゲートを使用する攻撃イベントの連鎖

以下は、2016年3月のAfraidgate攻撃の例です。図6は、侵害を受けたWebサイトのページに挿入されたスクリプトを示しています。このスクリプトはゲートURLに導くものです。図7は、Nuclear EKランディングページのiframeを含むスクリプトをゲートURLが返す例を示しています。

図6: ゲートを指す侵害を受けたWebサイトのページに挿入されたスクリプト
図6: ゲートを指す侵害を受けたWebサイトのページに挿入されたスクリプト
図7: 2016年3月のAfraidgate攻撃のゲート トラフィック
図7: 2016年3月のAfraidgate攻撃のゲート トラフィック

侵害を受けたWebサイトとEKとの間で複数のゲートを使用する攻撃もあります。これらのゲートは、攻撃の背後にいる攻撃者によって悪用されたPastebinのような正規のサービスである場合があります。

図8: 複数のゲートを使用していた2015年11月の攻撃
図8: 複数のゲートを使用していた2015年11月の攻撃

悪意のある広告(マルバタイジング)

“malicious advertising”の短縮語である"malvertising"(悪意のある広告)は、オンライン広告を使用してマルウェアを拡散することを意味します。多くの攻撃は、イベントの連鎖のリンクとして悪意のある広告を使用し、マルウェアを拡散していました。

人々は、ニューヨーク タイムズ紙のような一般的なWebサイトを表示した後またはAnswers.comにアクセスした後に悪意のある広告の攻撃を受けてエクスプロイト キットに導かれました。これらのWebサイトは侵害を受けていませんでしたが、サイト内の広告トラフィックの一部が侵害を受けていました。悪意のある広告によって、悪意のある攻撃者は気付かれずに活動し、大量の潜在的な被害者にアクセスできます。これらの攻撃者は、高度なテクニックを駆使して悪意のあるトラフィック リダイレクトを隠し、検出からの回避を容易に実現します

結論

このブログ記事ではEKトラフィックの理解に必要な定義を説明しました。闇市場で入手可能なEKがサービスとしてどのように犯罪に使用されるかを説明しました。また、EK内のイベントの連鎖および攻撃の中でEKで観察される追加手順についても確認しました。悪意のある広告は、EKトラフィックで観察される多種多様な攻撃の1つです。

どのようにしてEKの活動からシステムを防御すればよいのでしょうか? 多層防御を使用することです。まず、オペレーティング システムおよびアプリケーションにパッチが適用されていて、これらが最新であることを確認します。EKは、古いブラウザベースのアプリケーションを利用して、脆弱なWindowsホストを感染させます。

ネットワーク検出が多層防御の2番目の要素です。パロアルトネットワークスの次世代セキュリティ プラットフォームのようなソリューションは、セキュリティ チームが日々刻々と変化するEKの活動の兆候を検出する際に役に立ちます。

最後に、多層防御に3番目の要素としてエンドポイント プロテクションも含める必要があります。パロアルトネットワークスのTrapsは、悪意のある実行可能ファイル、データ ファイルまたはネットワークベースのエクスプロイトから組織の資産を保護し、悪意のある活動が実行されないようにします。

このブログ記事の第二部は、犯罪市場の最も高度で、効果的かつ普及しているEKの1つであるAngler EKについて説明します。