エクスプロイト&脆弱性
Web改ざんの攻撃手法をWordPress使用サイトでの事例から解説
CMSのプラットフォームを狙う攻撃は、現在もサイバー犯罪者の間では、情報窃取等を行使する際の効果的な攻撃経路と見なされています。当記事では、管理者アカウントやAPIのハッキング、Alfa-Shell展開、脆弱なサイトを利用するSEOポイズニングなど、トレンドマイクロで確認したWordPress使用サイトでの改ざん事例に基づき、さまざまなタイプのWebサイトへの攻撃手法を解説します。
「WordPress」は、Webサイトや個人ブログの作成に利用されるオープンソースのコンテンツ管理システム(CMS)としてよく知られています。このCMSは現在、全Webサイトの35%で使用されていると推測されています。長らくWindowsがマルウェアに狙われ続けているように、使用者の多いシステムは攻撃者の格好の攻撃対象となります。攻撃者はプラットフォーム上に存在するセキュリティ上の弱点をあらゆる手口を尽くして探し出し、攻撃に利用します。特にWebサイトは多くの場合インターネットからアクセスされる存在です。攻撃者にとっても弱点の探索が可能であり、セキュリティ対策が不十分な場合、深刻なリスクがもたらされることになります。 CMSのプラットフォームを狙う攻撃は、以前から確認されており、現在もサイバー犯罪者の間では、企業や組織へ攻撃を仕掛け、情報窃取等を行使する際の効果的な攻撃経路と見なされています。当記事では、管理者アカウントやAPIのハッキング、Alfa-Shell展開、脆弱なサイトを利用するSEOポイズニングなど、トレンドマイクロで確認したWordPress使用サイトでの改ざん事例に基づき、さまざまなタイプのWebサイトへの攻撃手法を解説します。
■ 管理者アカウントのハッキング
CMSを操作するための管理者アカウントを入手すれば、攻撃者は正規のアクセス手法でWebサイトを操作できます。攻撃者は、フィッシング詐欺などの手法で管理者の認証情報を詐取しようとします。また、WordPress本体やプラグインの脆弱性を利用することでシステムの認証情報が窃取できる場合もあります。もしくは、安易なパスワードなどセキュリティが手薄な認証情報管理を突いたり、以前に流出したアカウント情報を利用するアカウントリスト攻撃などの手口により、Webサイトへログインを試みます。WordPressの管理画面にログインする際のURLは標準で「/wp-login.php」などに設定されているため、攻撃者はそれを利用してURLを推測し、POSTリクエストを送信してログインを試行します。
ログインに成功すると、攻撃者は、管理者アクセスを駆使して複数の活動を行使することが可能になります。トレンドマイクロでは、以下の活動を確認しています。
- バックドア機能付きのカスタマイズ用テーマをインストール
- ファイルをアップロードするプラグインをインストール
上記の活動2つは、通常、管理者アクセス権限取得後に実行されます。その他、管理者パスワードの変更や、新規管理者アカウントの作成なども行われます。一般的にはこの後、カスタマイズ用に公開されたテーマを使用し、リモートコード実行(RCE)機能を備えたバックドア型マルウェアが埋め込まれたり、攻撃者が不正プログラムを直接アップロードするためのアップロード用のプラグインがインストールされたりします。 また、このバックドア型マルウェアの場合、そこからさらに同様の機能を備えた別のバックドアが展開される手法が一般的です。そして不正活動の関連コマンドや不正コードがCOOKIES、もしくはPOSTのデータ内にエンコードされており、GETやPOSTのリクエストを介してこれらが展開されます。展開向けの復号化ロジックは、最初に作成されたバックドア型マルウェア内に含まれています。そして別のバックドア型マルウェアの展開後、これにより、新たにアップロードされたコンポーネント用のURLを待機します。 ここで確認された興味深い機能は、既存の「.php」ファイルへのパッチ適用を駆使して、不正なリクエストを隠ぺいさせる点です。この場合、最初に書き込み可能なすべてのパスが記録され、その後、ランダムに適切なパスが選択され、最終的に選択されたファイルへパッチが適用されます。
この場合、偽装アイコンで拡張子「.ico」のUnixの隠しファイル(ドットファイル)内に不正なスクリプトを含ませるため、「index.php」ファイルへパッチが適用されます。
もう1つの注目すべき機能は、感染したユーザがディレクトリへの書き込みアクセス権を有している場合、対象のWebサーバで複数のドメインが処理されている場合、これらの複数のドメインにも感染させることが可能な点です。
■ Alfa-Shellの展開による感染WordPressサイトへの攻撃
前述の通り、Webサーバへの不正アクセスに成功した攻撃者は、遠隔操作を容易にするために「バックドア」を設置します。この際によく使用される手法として「Web Shell」があり、改ざんされたWordpressサイトの多くで確認されることで知られています。ここでは特に、攻撃手法開発チーム「Solevisible ~ ALFA TEaM」による「Alfa-Shell」が活用する高度な手法について説明します。
Alfa-Shellを活用した場合、Web Shellによるリモートコード実行(Remote Code Execution、RCE)の際にCGIハンドラに登録することで、Perl、Python、Bashなどのスクリプト実行が可能になり、攻撃者にとってはより利用しやすいインターフェイスを実現できます。さらに、WordPressの構成ファイルからデータベースの資格情報を取得したり、データベースをダンプしたり、すべての仮想ドメインとDNS設定を取得したりすることも可能になります。
さらにこの場合のWeb Shellは、Windowsを含む複数のプラットフォームを対象にしており、開発者の任意のWebサイトからリバースシェルをダウンロードして実行する機能も備えています。
感染したWordPressは、カスタマイズ用テーマのJavaScriptファイルやヘッダー・フッターの生成機能(wp-content\themes\twentyseventeen\functions.php)へパッチを適用することにより、広告のリダイレクト機能としても利用できます。例えば、パッチ適用によって変更されたJavaScriptにより、攻撃者が指定したWebサイトへユーザをリダイレクトさせます。
■ 改ざんサイトを利用したSEOポイズニング
攻撃者は改ざんに成功したWebサイトを検索エンジン最適化(SEO)ポイズニングに使用することがあります。SEOポイズニングは、ブラックハットSEOなどとも呼ばれ、Web検索エンジンの検索結果を不正に操作するための攻撃手法です。これにより、不正サイトがWeb検索結果の上位に表示されることがあります。トレンドマイクロが確認したWordPress使用サイトの事例からは、GETリクエスト内でキーワードを受信するPHPスクリプトが展開されていることが判明しました。
スクリプトは、まずUser-Agentが指定の正規表現のいずれかと一致するか、もしくは$ _SERVER [“ REMOTE_ADDR”](HTTPリクエスト時のIPアドレス)のDNS逆引き結果にGoogle検索の部分文字列が含まれるかを確認します。これらの条件のいずれかが確認された場合、$ isbot変数が1に設定されます。
条件が確認され、$isbotがゼロでない場合、同一のキーワードを用いて、ハードコーディングされたURLアドレスへ別のHTTPリクエストが実行されます。
応答されたテキストの長さが1,000文字未満の場合、検索エンジン「Bing」により他のクエリが実行され、指定された正規表現に一致する検索結果が$textへ追記されます。
同じクエリが再度実行される場合に備えて、最終的なHTMLページの応答がWebサーバに保存されます。
図17のHTMLファイルからは、アメリカンフットボールチーム「Cockeysville Eagles」のWebページ上に明らかに無関係のJavaScriptフレームワークのテキストを含む部分があり、SEOポイズニングの手法が施されていることが分かります。 なお、$isbotが未設定で、リンク元を参照するHTTPリファラ「HTTP_REFERER」にGoogle、Bing、Yahooなどの文字列が含まれている場合は、別のWebサイトにリダイレクトされます。
■ 「フェイクニュース」の拡散
ハッキングされたWordPressサイトは、虚偽もしくは誤解を招く記事、つまりフェイクニュースの拡散に悪用される場合もあります。拡散される記事は、事実に基づく内容はほとんど含まれておらず、代わりに注目を集める見出しやストーリーが使用されます。
上図は、侵害されたWordPressサイトから他のサイトに対して投稿された記事の例です。これらの記事は多くの場合、扇動的な内容で文法的なエラーが散見される内容になっており、分かりにくい内容になっています。この事例では、WordPress向けアプリケーションプログラミングインターフェース(API)である「XML-RPC」を介して投稿が行われていました。このAPIを用いると、データの送信、新しいファイルのアップロード、投稿記事の編集や公開など、複数のタスクが実行できます。
上述のAPIにより「POST /xmlrpc.php」および「metaWeblog.newPost」を使用することで、攻撃者は直接もしくは遠隔からWordPressの感染サイトへ記事を投稿できます。
■ WordPressサイトのセキュリティに関する推奨事項
これまで述べてきた攻撃手法は、攻撃者の使用事例から確認された手口の一部に過ぎません。適切な対策が施されていない、セキュリティが手薄なWordPressサイトは、簡単に侵害される危険性があります。セキュリティ侵害のリスクを減らすためには、二要素認証(2FA)のプラグインを使用し、認証情報の悪用やパッチ未適用の脆弱性を突く手法からの防御が不可欠です。ユーザおよびサイト管理者側で可能な対策は、以下のとおりです。
- 基本的なセキュリティ対策を徹底し、Webサイトへの攻撃経路を最小化する
- 古いプラグインや脆弱性が存在するプラグインは、無効化もしくは削除する
- 継続的な稼働が必要や場合や、修正パッチが利用できない脆弱性等には、仮想パッチを採用する
- 最小権限の原則を実施する
- プラグインを含め、ご使用のCMSを定期的に最新バージョンに更新する
- サイト管理者のアカウント情報を適切に管理する。特に偽の管理画面に誘導し認証情報を詐取するフィッシング詐欺の手口を知り、注意する
■トレンドマイクロの対策
CMSのプラットフォームを狙う攻撃に関しては、管理者アカウントの詐取、もしくはWebサイト内の脆弱性のいずれかが被害原因となります。管理者アカウントを守るためには、トレンドマイクロ製品のクラウド型セキュリティ基盤「Trend Micro Smart Protection Network(SPN)」の機能である、「E-mailレピュテーション(ERS)」技術によりフィッシングメールをブロックすること、また「Webレピュテーション(WRS)」技術により、不正サイトへのアクセスをブロックすることができます。 統合型サーバセキュリティソリューション「Trend Micro Deep Security™」の仮想パッチ機能によって、未更新の脆弱性を狙う攻撃からサーバを防御することが可能です。また、変更監視機能やセキュリティログ監視機能で予期しないシステム変更を警告することにより、サーバ上で行われる不審な活動を早期に可視化することが可能です。 参考記事:
- 「Looking into Attacks and Techniques Used Against WordPress Sites」 by Trend Micro
翻訳: 与那城 務(Core Technology Marketing, Trend Micro™ Research)