ペンテスターが語る攻撃者の視点 ~WordPress編 前編~ ホワイトハッカー

2018年7月18日

はじめに

背景

Webサイトをはじめとして、インターネットへ接続しているサーバへの攻撃は年々増加傾向にあり、サービスを提供する事業者は、脆弱性に対する迅速なリスクの把握・対応検討と対処が求められます。
本コラムではそうしたリスクへの対応の一環として、企業のWebサイトなどでよく利用されるWordPressを取り上げ、ペンテスターである筆者の経験を基に攻撃者がどのような視点でWebサイトを見ているのかを解説します。
本コラムの内容はWebサイト管理者向けの内容となっておりますので、ぜひ本内容を基に自社のWebサイトの対応状況を確認いただき、今後の対応方針の策定に活用していただければと思います。

また、本コラムに記載の内容を用いて自社管理サーバ以外の外部サーバへのアクセスおよび攻撃をすることは絶対に行わないようお願いいたします。
検証などはご自身で管理するサーバに対してのみ実施してください。

WordPressとは

まず始めに、ご存じの方も多いと思いますが、WordPressはオープンソースのブログソフトウェアで、主にWebサイトの構築やブログサービスに利用されるCMS(Content Management System)の一種です。
企業のWebサイトや洗練されたデザインのサイトを作る際に重宝され、現在のWebサイト制作には欠かせないものといっても過言ではありません。

WordPressのメリット・デメリット

【メリット】
  • サイト構築時のハードルが低い
    (基本的に無償利用が可能、導入時の情報がインターネットに豊富に存在している)
  • 豊富なテーマ・プラグインによりカスタマイズ性が高い
  • GUI(Graphical User Interface)の日本語対応により、運用がしやすい
【デメリット】
  • WordPress、テーマ、プラグインの脆弱性が頻繁に公開される
    → パッチ管理の対応頻度が高い
  • 設定の不備による不正アクセスや乗っ取りのリスク
    → 外注でサイト構築を依頼した場合に見落とされがち
      簡単にサイト構築が可能であるため、サーバの知識のない管理者も多い

このような理由により、WordPressで構築したサイトは攻撃の難易度が低くなる傾向にあるといえます。
そのため、WordPressで構築したサイトであることが知られると、サイト改ざんなどの攻撃のターゲットになるリスクがあります。

攻撃者の視点

では、攻撃者はどのようにしてターゲットのWebサイトがWordPressで構築されていると特定するのでしょうか。
今回は、攻撃の初動となる情報収集のフェーズにフォーカスを当て、WordPressで構築されたサイトを特定するための観点を解説します。

WordPressサイトの見分け方

 WordPressで構築したサイトかどうかは、以下のような観点で確認することが可能です。

見分け方(1) 管理画面への直接アクセス

直接「http(s)://(IPアドレス・ドメイン名)/wp-login.php」などにアクセスする手法で、外部からアクセス可能なことがあります。また、攻撃対象のサイトがGoogleのロボットにより探索されている場合には、Google検索で「inurl:wp-login.php site:<サイト名>」等で探すことも可能です。

サイトによっては、プラグインによりログイン画面のURIを「wp-login.php」から「login_<5桁の乱数>」に変更されている場合があります。
この場合は「login_00000」~「login_99999」までの値を含んだURIに対して総当たりでアクセスする工夫が必要になりますが、丸1~2日程度の時間をかければログイン画面にアクセスすることが可能な状態です。

攻撃者にWordPressの管理画面を見つけられた場合、WordPressの詳細なバージョン情報を取得することが可能になるなど、不正アクセスを受けるリスクが顕在化することから、基本的にはログイン画面を外部公開しないこと、またログイン画面へのアクセス制御を推奨します。

【WordPressのログイン画面のHTMLソースの抜粋】

上記の画面から得られるWordPressの詳細なバージョン情報を基に、攻撃者が関連する脆弱性情報を調査し、Webサイトが影響を受ける可能性が高い攻撃を特定することが可能となります。 一例として、WordPress 4.7.0 から WordPress 4.7.1のバージョンにおいて、外部からサーバ上のコンテンツを改ざんされる脆弱性が大規模に流行した例(※)などは、記憶に新しい事象です。

見分け方(2) HTMLソースからの判断

「wp-content」など、WordPressに特有のディレクトリ構成がHTMLソース内に存在する場合、WordPressのログイン画面やテーマなどが存在するディレクトリを特定することができます。

脆弱性診断やペネトレーションテストを通して散見されるケースとして、トップページにPDFなどのファイルを掲載している場合、WordPressのメディアにアップロードしたファイルパスが含まれており、特定可能となるケースが挙げられます。

例:

見分け方(3) フォント・デザイン等から判断

少しあいまいな判断基準となりますが、見た目も重要な情報です。 フォントやデザインはプラグインにより変更ができるものの、インストールした状態からそのままになっているケースも多く存在します。

当社で構築した環境では、インストール直後から特に設定変更をしない場合、style.css内のfont-familyの項目で「”Hiragino Kaku Gothic Pro”, Meiryo, sans-serif」が利用されているようでした。
特に、「sans-serif」については、WordPressの広範囲のバージョンで利用されているようです。

もちろん、WordPressのみで使われているわけではいため、一概にWordPressの利用を特定できる情報とはいえないものの、当社の診断ではこのフォントのWebサイトを見た時点でWordPressの利用を想定し、調査を行います。

【インストール時点のデフォルトのstyle.css記載内容(Chromeの「検証」機能を用いて確認)】

最後に

今回のコラムで記載した内容は、いずれも広く知られている情報であり、攻撃者は常にこれらのアプローチを用いてWordPressサイトの探索を試みています。
管理しているWebサイトが攻撃を受けるリスクを減らすためにも、必要のない情報は極力公開しないことが有効です。
また、Webサイト管理者も、攻撃者の視点を想定してWebサイトを運営できれば、セキュリティレベルの向上につながります。

次回は、WordPressサイトの脆弱性や攻撃手法について解説します。

繰り返しとなりますが、本コラムに記載の内容を用いて自社管理サーバ以外の外部サーバへのアクセスおよび攻撃をすることは絶対に行わないようお願いいたします。

著者プロフィール
塚本 淳史

2012年 KCCS入社
ネットワーク脆弱性診断、PCI DSS関連業務(外部スキャン業務・ペネトレーションテスト)に従事。
脆弱性診断の業務を通し、攻撃者的視点でシステムの脆弱性を全力で発掘することが趣味。
業務を通し、IT社会全体のセキュリティレベル向上を図り、クレジットカード情報を守るため日々奮闘中。

掲載されている情報は、発表日現在の情報です。最新の情報と異なる場合がありますのでご了承ください。

ページトップへ