IISerpent:マルウェア連動型のSEO詐欺サービス

ESETは、IIS Webサーバーの脅威についてブログで連載しています。最終回は、サードパーティのWebサイトのページランキングを操作する悪意のあるIIS拡張機能について説明します。

ESETの研究者は、サーバーサイドのトロイの木馬を新たに発見し分析しました。このトロイの木馬は、セキュリティを侵害したWebサイトのレピュテーションをハイジャックして、検索エンジンの結果を操作します。このトロイの木馬は、IIS(Internet Information Services)Webサーバーの悪意のある拡張機能として実装され、検索エンジンの結果ページ(SERP)を操作するいかがわしい手法を使用するという2つの特徴から、IISerpentと命名されました。IISerpentのオペレータは、検索エンジン最適化(SEO)に関するさまざまな手法を使用して、サードパーティのWebサイトページの検索ランキングを上位に表示させます。これらのWebサイトを管理しているサードパーティは、この犯罪組織に報酬を支払っている可能性があります。

攻撃の概要

IISerpentは、マイクロソフト社のWebサーバーソフトウェアであるIISに悪意のある拡張機能として実装および構成されます。このため、このマルウェアはセキュリティが侵害されたサーバーがホストしているWebサイトへのすべてのHTTPリクエストを傍受できるだけでなく、サーバーのHTTPレスポンスを改変することも可能です。これまでに連載したブログでは、ECサイトの顧客からクレジットカード情報を窃取するIIStealerや、侵害されたIISサーバー上でバックドアコマンドを実行するIISpyなどのIISマルウェアファミリーについて説明しました。

これらのIISマルウェアファミリーとは異なり、IISerpentは感染したサーバーにもサーバーのユーザーにも直接影響を与えません。実際、このマルウェアは、侵害したWebサイトの正規ユーザーのすべてのリクエストは完全に無視します。IISerpentは、侵害したサーバーに送信されたすべてのHTTPリクエストを傍受および解析して、特定の検索エンジンのクローラーから発信されたリクエストだけを検索します。図 1に示すように、IISerpentはこれらのリクエストをC&Cサーバーにリレーして(またはローカルの構成を使用して)、これらのクローラーに提供されるコンテンツを改変します。

図 1. IISerpentの仕組み

SEO詐欺

この仕組みの目的とは?検索エンジンは、定期的にインターネットをクロールし、ネット上のすべてのコンテンツのインデックス(レコード)を作成し、検索ワードとコンテンツの関連性を構築し、さまざまなアルゴリズムによって特定の検索ワードに対する検索結果順位を算出します。

検索エンジンの結果ページでページの表示ランキングを上位にするためには、広告を購入したり、 検索エンジン最適化 (SEO)戦略を取り入れたりなど、さまざまな合法的な方法を用いることができますが、すべてのデジタルマーケティングの担当者がルールを遵守しているわけではありません。非倫理的なSEO (過去にはブラックハットSEOと呼ばれていました)とは、無関係なキーワードでページをロードしたり、Webサイトの評価を高めるために被リンクを購入したりするようなSEOブースト手法を指しますが、これらの手法は、Webマスターのガイドラインに違反します。

IISerpentの攻撃パターンは、これらの非倫理的なSEO手法が採用されています。Webマスターの同意なしにサードパーティの利益のために、侵害されたIISサーバー上でSEO詐欺の手法を実行しているため、「サービスとしてのSEO詐欺」と表現できます。IISerpentのオペレータは、このマルウェアを使用して侵害されたWebサイトのランキングに寄生し、サードパーティのWebサイトのページ検索順位を高めるために、以下の手法を利用します。

  • →検索エンジンを攻撃者が選択する特定のWebサイトにリダイレクトして、侵害されたWebサイトを事実上のドアウェイページにする。
  • →被リンクのリスト(あらかじめ構成したリスト、またはC&Cサーバーからその都度取得するリスト)を検索エンジンのクローラー用のHTTPレスポンスに注入し、IISerpentによって侵害されたサーバーをリンクファームにする。

図 2に示したシナリオの例では、攻撃者がIISerpentを使用して多数のIISサーバーを侵害し、そのマルウェアの機能を使用してこれらのサーバーがホストしているすべてのWebサイトに被リンクを挿入します。1~NまでのWebサイトは評価の高い正規のサイトです。検索エンジンのクローラーから見ると、これらのWebサイトはすべて、攻撃者が選択したWebサイト(この場合は詐欺サイト)にリンクしています。そのため、この詐欺サイトは、評価の高いWebサイトとリンクしているため、人気があるように見え、ページの検索順位が上昇する可能性があります。

図 2. SEO詐欺の仕組みの例

なお、セキュリティが侵害されたサーバーへアクセスした正規ユーザーには、要求したコンテンツが提供されるため、ユーザーやWebマスターは、サーバーで問題が発生していることに気づかない恐れがあります。この点が、侵害されたサイトに人為的に被リンクを挿入する他のマルウェアファミリーとIISerpentが異なる点です。IISerpentは、サーバーの拡張機能として動作することで、通常のユーザーに提供されるコンテンツに干渉せずに、検索エンジンのクローラーに変更した情報を提供できます(すべてのユーザーに表示される形で、不正な被リンクを追加して、侵害したWebサイトを恒久的に修正するマルウェアとは対照的です)。

もちろん、侵害されたIISサーバーでホストされ悪用されたWebサイトは、このスキームから全く利益を得ることができません。それどころか、通常のユーザーに表示されるサイトとは異なるWebサイトを表示して検索エンジンのクローラーを欺くことは、Webマスターガイドラインに違反しており、これらのWebサイトは検索エンジンによるペナルティを受け、SEOの統計値が下がってしまう可能性もあります。

技術的な分析

IISerpentは、IISのネイティブモジュールであり、C++ DLLとして実装され、 %windir%system32\inetsrv\config\ApplicationHost.configファイルで構成されます。これにより、IISerpentは常駐化とコマンド実行が可能となります。すべてのIISモジュールは、IISワーカープロセス(w3wp.exe)によってロードされ、受信したHTTPリクエストを処理するために使用されます。

IISerpentマルウェアのオペレータが、IISサーバーに最初に侵入する方法については不明ですが、IISのネイティブモジュールとして構成するためには 管理者権限が必要であることから、可能性があるシナリオを絞り込むことができます。Webアプリケーションまたはサーバーの構成上の弱点や脆弱性が原因となっている可能性があります。

他のIISネイティブモジュールと同じように、IISerpentはRegisterModuleという関数をエクスポートします(図 3を参照)。この関数は、モジュールを初期化します。悪意のあるコア機能は、イベントハンドラ に隠されており、特定のサーバーイベントで呼び出されるモジュールクラス(CHttpModuleから継承)のメソッドになっています。具体的には、IISerpentのコードクラスは、OnBeginRequestメソッドとOnSendResponseメソッドをオーバーライドしており、IISサーバーが受信したHTTPリクエストの処理を新たに開始するときに、また、レスポンスバッファを送信するときに、必ずこのマルウェアのハンドラが呼び出されます。

図 3. IISerpentによるDLLエクスポート

IISerpentは、受信したリクエストを解析し、複雑な構成データを使用して、検索エンジンのクローラーに提供されるコンテンツを操作します。表 1に詳細を掲載していますが、この構成にはリダイレクトURLや挿入する被リンクのリストなどのフィールドが含まれています。攻撃者は、侵害したIISサーバーにHTTPリクエストを送信するときに、リクエストURIにクエリパラメータとして?DisplayModuleConfig=1または?ReloadModuleConfig=1をそれぞれ指定することで、マルウェアの構成を表示または更新できます。

IISerpentは、更新リクエストを受信すると、このURLにHTTP GETリクエストを送信して、C&Cサーバーから構成を取得します。

   →http://sb.qrfy[.]net/mconfig/<host>.xml

<host>の値は、攻撃者の元のリクエストから取得されており、おそらく被害者のIDとして使用されています。libcurlライブラリがネットワーク通信に使用されています。

構成フィールドコメント
banipIPアドレスのリスト。このマルウェアは、このリストにあるIPアドレスのHTTPリクエストを無視します。
redirectrefererバイナリフラグ - Refererヘッダーにspider、bot、baidu.com/の文字列が含まれるリクエストを処理する場合に設定します。
onlymobilespiderバイナリフラグ - RefererヘッダーにAndroidまたはAppleWebKitという文字列が含まれるクローラーリクエストのみを処理する場合に設定します。
redirectこれらの値が設定されている場合、すべてのクローラーのリクエストを、HTTP 301レスポンスを介して構成済みのURLにリダイレクトします。
redirecturl
proxyこれらの値が設定されている場合、検索エンジンのクローラーのリクエストをC&Cサーバーに転送し、クローラーを悪意のあるURLに直接リダイレクトするのではなく、HTTPレスポンスを取得したデータと置換します。
proxyurl
proxymode
folderlinkこれらの値が設定されている場合、User-Agentヘッダーにspiderまたはbotという文字列が含まれているHTTPリクエストのレスポンスへの被リンクとしてこれらの値をすべて追加します。
folderlinkcount
folderlinkpath
proxyfolder
locallink
locallinkext
locallinkfolder
locallinkcount

表 1. IISerpentが使用する構成フィールド

IISerpentは、図 4に示すように、User-Agentヘッダーを解析して特定の部分文字列を検索して、検索エンジンのクローラーのリクエストを認識します。redirecturlフィールドが構成されている場合、マルウェアはHTTPレスポンスでLocationヘッダーを設定して、User-Agentヘッダーにspiderまたはbotという文字列が含まれるすべてのリクエストをこのURLにリダイレクトします。HTTPステータスは301 (“Moved Permanently”)に設定されます。

図 4. IISerpentは、 User-Agentヘッダーを解析して、検索エンジンのクローラーのリクエストを認識する

 

proxymodeが設定されている場合、IISerpentはクローラを悪意のあるURLにリダイレクトするのではなく、クローラのリクエストをC&Cサーバーのproxyurlに転送し、HTTPレスポンスボディを取得したデータと置換します。これは、Refererヘッダーにspider、bot、baidu.com/が含まれるすべてのHTTPリクエストに適用されます。また、RefererヘッダーにAndroidまたはAppleWebKitという文字列が含まれるリクエストにも適用される場合があります。さらに、このマルウェアは以下のように構成できます。

  →IISサーバーがレスポンスステータスを404に設定しているHTTPリクエストのみを処理する
  →禁止リストにあるIPアドレスのリクエストを無視する

最後に、IISerpentには、構成済みのリンクリストを設定でき、検索エンジンのクローラーのリクエストのHTTPレスポンスボディにこれらのリンクを追加できます。これらのリンクは、既存のHTTPレスポンスボディにHTMLエンティティとして追加されます。

<a href='/<link><timestamp1>_<timestamp2>_<randomId>.html'></a>

注記するべきその他のマルウェア

IISerpentだけが、SEO詐欺の機能がある悪意のあるIISモジュールではありません。ホワイトペーパー 「ネイティブIISマルウェアの解析」(英語のみ)に記載してある、ESETが分析した14のマルウェアファミリーのうちの6つのマルウェアがSEO詐欺の手法を取り入れていました。これらのマルウェアファミリーでは、SEO詐欺の機能が他の悪意のある機能(バックドアのサポートや、Webサイトへの正規のユーザーに悪意のあるコンテンツを提供するなど)とバンドルされていることが多くあります。

IISerpentを最初に検出したのは2021年5月ですが、SEO詐欺については、2019年にSecpulseがIISサーバーに影響を与える新しいマルウェアに関するインシデントレポートを中国語で公表した最初の攻撃の事例まで遡って追跡できました。IISerpentマルウェアの分析とSEO詐欺の機能については、ESETホワイトペーパーのグループ9のカテゴリで説明しています。

ESETでは、さまざまなSEO詐欺マルウェアファミリーを分析してきました。これらのSEO詐欺マルウェアが使用する非倫理的なSEO手法も多様であり、さまざまな検索エンジンクローラーを対象にしています。平文で指定するもの(ホワイトペーパーのグループ12、図 5を参照)、暗号化されたリストとして指定するもの(グループ9)、C&Cサーバーのホスト名のDNS TXTレコードを照会してオンザフライで取得する(グループ11)手法があります。これらのファミリーはすべて、ESETのセキュリティソリューションによってWin32/BadIISとして検出されます。

図 5. IISマルウェアが検索エンジンクローラーのリクエストを識別するために使用する文字列の例

これらのIISマルウェアファミリーの詳細については、ESETのホワイトペーパーを参照してください。

結論

IISerpentは、通常とは標的および目的が異なる悪意のあるIISモジュールであり、サードパーティのWebサイトの検索順位を上げることを目的に操作を支援するために設計されています。セキュリティが侵害されたサーバーにアクセスした正規のユーザーに影響はありませんが、検索結果を不正に操作されマネタイズの恐れもあるため、注意が必要です。

IISerpentは、侵害されたWebサイトの評判をハイジャックするだけではありません。非倫理的なSEO対策の対象となるWebサイトは、検索エンジンのアルゴリズムによるペナルティが課せられる恐れもあり、デジタルマーケティングの担当者にとっては放置できない問題です。IISerpent(およびその他のIISマルウェア)のリスクを防止する最善策は、IISサーバーを最新の状態に保ち、信頼できないソースからはIIS拡張機能をダウンロードしないように注意することです。特に、魔法のように検索結果を向上させるなどとあり得ない約束をするモジュールには注意してください。保護をさらに強化するためには、Webアプリケーションファイアウォールや、IISサーバーのセキュリティソリューションの使用を検討してください。

その他のリスクの緩和策やセキュリティ侵害の指標については、ESETのホワイトペーパーGitHubhttps://github.com/eset/malware-ioc/tree/master/badiisを参照してください。この問題に関するお問い合わせや検体の提供については、threatintel@eset.comまでご連絡ください。

このブログ連載では、ESETの研究者がIIS Webサーバーで検出した一連の脅威について特集します。今回は連載の最終回です。第一弾と第二弾では、サイバー犯罪とサイバースパイ活動に悪用されているIISマルウェアについて説明しました。IISマルウェアの検出、分析、削除の方法については、詳細を解説したホワイトペーパー「ネイティブIISマルウェアの解析」(英語のみ)を参照してください。ホワイトペーパーではIISerpent(グループ13)についても詳しく説明しています。

セキュリティ侵害の痕跡(IoC)

ESETの検出名

Win32/BadIIS.H

SHA-1

D0F274EBD2A0636FEF9D9C48A7AC2FAD7B661653

ファイル名

stati.dll

ネットワークの侵害の痕跡

URLのクエリパラメータ
?DisplayModuleConfig=1
?ReloadModuleConfig=1

C&Cサーバー

http://sb.qrfy[.]net

MITREのATT&CK手法

注:この表は、MITRE ATT&CKフレームワークのバージョン9を使用して作成されています。

手法ID名前説明
リソース開発T1587.001能力の開発マルウェアIISerpentは、独自に作成されたマルウェアファミリーです。
実行T1569.002システムサービス:サービスの実行拡張機能のIISerpentによって、IISサーバーは、Windowsサービスとして常駐します。
常駐化T1546イベントトリガーによる実行IISerpentは、IISサーバーがHTTPリクエストを受信したときに、IISワーカープロセス(w3wp.exe)によってロードされます。
C&C(コマンド&コントロール)T1071.001アプリケーションレイヤープロトコル:Webプロトコル攻撃者は、IISerpentを管理するために、セキュリティを侵害したIISサーバーに特別なクエリパラメータと一緒にHTTPリクエストを送信します。
影響T1565.002データの操作:送信データの操作IISerpentは、侵害したサーバーから検索エンジンのクローラーに提供されるコンテンツを変更します。