【実演】WordPressへの不正ログイン攻撃

2016.08.22 (Mon)

兵藤考史

WEB制作

wp-pass-broken-00

第三者から推測されやすい、WordPress管理者の安易なパスワードは、管理画面への不正ログインのリスクを高めます。しかし、誰もがこれを理解しながらも安易にしてしまうのは、リスクを目の当たりにし、身近に感じる機会が無いことが理由の一つにあると考えます。

そこで今回は、WordPress管理者の安易なパスワードが如何に簡単に破られるかを実際にご覧いただいたうえで、WordPressの不正ログイン対策についてお伝えしたいと思います。

※実演は、弊社で管理しているテスト用WordPressサイトで行っています。
※実演と同様のテストを行う場合は、第三者が管理するWordPressに対しては絶対に行わないでください。
※実演と同様のテストを行って発生した損害については、一切の責任を負いかねますのでご了承ください。

目次

パスワード攻撃にも悪用できるペネトレーションテスト・ツール

今、私の手元にはWordPress専用のペネトレーションテスト・ツールがあります。

wp-pass-broken-01

ペネトレーション(Penetration)とは「侵入」を意味し、あるシステムやソフトウェアに対して侵入などの攻撃を試みて、プログラムの脆弱性などを検証し、安全性を確認するためのテストツールです。パソコンついてある程度の知識があれば、インターネット上から誰でも無料で手元のパソコンに導入することができます。

WordPress専用のペネトレーションテスト・ツールの本来の利用目的は、WordPressに対する安全性の確認ですが、使い方次第ではWordPressやWEBサーバーに対して想定以上の負荷を掛けてシステムダウンさせたり、ワードリストを使った辞書攻撃で管理者パスワードを破ることも可能です。今回はこのツールを使って、WordPressの管理者パスワードが破られる過程をご覧いただきたいと思います。

STEP1.管理者のユーザー名を暴く

WordPressの管理画面にログインするには、ユーザー名とパスワードの2つの情報が必要です。この内、ツールを使って簡単に暴くことができるのがユーザー名です。

ツールの操作画面から、WordPressの公開URL(または導入先URL)と、URLに対して実行する内容を指示すると、数分後に以下ようなの画面が表示されます。

wp-pass-broken-02

WordPressの管理者に該当するユーザーは、管理者が特別な変更を行わなければ、ID番号が1のユーザーです。よって、このWEBサイトの管理権限を搾取するためにはユーザー名「webya2006」のパスワードを破ればよいことになります。

STEP2.ワードリストファイルを入手する

このツールは、辞書攻撃と呼ばれる、ワードリストファイルを使ったパスワード攻撃により、特定のユーザーに対して手当たり次第にパスワードを照合し、正規のパスワードを突き止めます。

ワードリストファイルは、世界各地から収集された、使用頻度が高いパスワードや、ハッキングされて漏洩したパスワードが1つのファイルに数千〜数百万個収められ、インターネット上から無料または有料で簡単に入手できます。

以下のキャプチャ画像は、実際にインターネット上から無料で入手した、世界各地の主な使用パスワードが約500万個収録されたワードリストファイルです。

wp-pass-broken-03

ワードリストの中には、数字とアルファベットの単純な組み合わせや、人名、国名、地名、サービス名、動物名なども多数登録されています。個人的に気になるワードとしては、私の氏名である ”hyoudou”は910111番目に、”takashi”は800362番目に登録されていました。

STEP3.パスワードを破る

それでは、入手したワードリストファイルを使って、実際に管理者「webya2006」のパスワードを破りたいと思います。

ツールの操作画面からユーザー名「webya2006」に対して、入手したワードリストファイルを指定し、辞書攻撃を行うよう指示します。

実行から数分後、安易なパスワードを使用していた管理者「webya2006」は以下の画面の通り、パスワード「abcd1234」を解読されました。

wp-pass-broken-04

WordPressの不正ログイン対策

先に紹介した実演の例は、WordPressが提供する標準的な機能と設定を、ほぼそのままの状態で運用し、管理者権限のパスワードが推測されやすい場合に、高い確率で発生すると考えます。

WordPressが不正ログインされないための主な対策は「ログイン画面へのアクセス制限」、「xmlrpc.phpファイルへのアクセス制限」、「推測されにくいログイン情報の作成」の3つがあります。

では、それぞれの対策についてご紹介します。

ログイン画面へのアクセス制限

WordPressサイトの基本構造は世界中に周知されているため、攻撃者はログイン画面の所在を簡単に突き止め、プログラムを使って直ちに不正ログイン攻撃を仕掛けることができます。これに対して、ログイン画面にアクセス制限を行うことで、不正ログイン攻撃の回避、もしくは成功率を下げることができます。以下に主な5つの対策をご紹介します。

[1] wp-login.phpファイルへのIPアドレス制限

wp-login.phpファイルは、WordPressの管理画面に該当します。このファイルに対してアクセス可能なIPアドレスのみを設定することで、自社もしくは関係者以外からのアクセスを遮断することができます。

このアクセス制限は、WordPressの運用管理者が、固定IPによるインターネット接続をプロバイダーと契約していることが条件になります。通常契約である動的IPの場合はできません。また、運用上で社外からも管理画面にアクセスする場合は、それができなくなりますので注意が必要です。

アクセス制限は、WEBサーバーに直接設定を行う場合と、htaccessファイルの使用が可能な場合は、htaccessファイルに対して設定を行います。

[2] wp-login.phpファイルへのBASIC認証

IPアドレス制限を行えない場合は、BASIC認証によるアクセス制限が有効です。ログイン画面にアクセスする手前で、別のユーザーIDとパスワード入力を尋ねてアクセス制限することができます。

アクセス制限は、WEBサーバーに直接設定を行う場合と、htaccessファイルの使用が可能な場合は、htaccessファイルに対して設定を行います。

[3] ログイン画面のURLを変更する

ログイン画面へのIPアドレス制限、BASIC認証制限が技術的に難しい場合は、WordPress公式プラグインの「SiteGuard WP Plugin」を導入して、ログイン画面のURLを変更することで不正ログイン攻撃を回避できます。

[4] 画像認証またはログイン試行回数の設定

ログイン画面へのIPアドレス制限、BASIC認証制限が技術的に難しい場合は、ログイン画面に画像認証機能やログイン試行回数を設定することで、不正ログイン攻撃の成功率を下げることができます。これらの機能は、WordPress公式プラグインの「SiteGuard WP Plugin」を導入することで簡単に行えます。

画像認証は、ログイン認証時にユーザー名とパスワードの他、画像の中にランダムで表示する数字とアルファベットを入力させます。不正コンピューターが画像の中の文字や数字を識別できない弱点を利用した機能です。

wp-pass-broken-05

ログイン試行回数の設定は、ログイン認証時に再試行可能な回数を予め設定し、規定回数を超えた場合は一時的に、そのIPアドレスからのアクセスを遮断します。しかし、この制限には弱点があり、ログイン失敗後のアクセス制限から制限解除までの時間差を狙った攻撃や、ボットネットと呼ばれる、ハッキングされた複数のWEBサイトやサーバーからの一斉攻撃に対しては、一方の攻撃用IPアドレスを遮断しても、もう一方のIPアドレスから攻撃されるため、無力化する場合があります。

[5] 管理画面へのSSL適用

WEBサイトの公開用URL(独自ドメイン)に対して、独自SSLを取得している場合は、管理画面とログイン画面の両方に対して、SSLによる通信暗号化を適用すと、入力したログイン情報が第三者から傍受されにくくなり、不正ログインへのセキュリティ強度が高まります。

xmlrpc.phpファイルへのアクセス制限

xmlrpc.phpファイルは、例えば、正規の管理画面を経由せず、スマートフォンアプリからWordPressのブログ投稿を可能にするといった遠隔操作や、サイト内のブログ記事が、他のWordPressサイトのブログ記事にリンクされたことを通知するピンバック機能を提供します。

しかし便利な一方で、不正ログインを目的とした、ファイルへのパスワード攻撃を仕掛けられることがあります。外部やスマートフォンアプリからの遠隔操作や、ピンバック機能を使用しない場合は、function.phpファイルを使って機能を無効にするか、もしくはhtaccessファイルを使って機能を無効化、またはアクセス制限を設定をすることをお勧めします。

推測されにくいログイン情報の作成

ログイン画面へのセキュリティ対策を行うことで、不正ログインへのセキュリティ強度は高まりますが、併せてログイン情報も推測されにくくすることが望ましいです。また、ログイン画面へのセキュリティ対策を行っていない場合は重要です。

[1] 管理者として推測されやすいユーザー名、IDを使用しない

WordPress運用者であれば、誰でも一度は目にする注意事項ですが、やはり管理者として推測されやすいユーザー名は攻撃対象として絞り込みやすいため、よく使われがちなadminやwebmaster、また、そのようなワードを含む名称は避けることが望ましいです。また、ID番号を1で運用している場合も管理者として推測されやすいため、1以外のID番号のユーザーに権限を移すことが望ましいです。

[2] 推測されやすいパスワードを使用しない

理想はWordPressのプロフィール編集で使用できるパスワード作成機能を使い、セキュリティ強度の高いパスワードを設定することです。しかし、あまり複雑過ぎるパスワードは運用上の効率が下がる場合もあるため、JPCET/CCが以下のパスワード作成法を提案しています。ご参考ください。

例: JPCERT/CCのWEBページ「STOP!!パスワード使い回し!!キャンペーン」のタイトル名から特定のルールでパスワードを作成した例。

wp-pass-broken-06

引用元:JPCERT/CC 「STOP!!パスワード使い回し!!キャンペーン2016」

追記:function.phpファイルによるauthorページの非表示対策

この記事を公開後、そもそもペネトレーションテスト・ツールが、どのような仕組みでユーザー名を取得しているのかが気になり、調査した結果、WordPressサイトの以下のURLを指定した際に開く、authorページから取得していることがわかりました。

http://WordPressのサイトドメイン/?author=ユーザーID

よって、ペネトレーションテスト・ツールからユーザー名を暴かれず、辞書攻撃の切っ掛けを与えないためには、テーマフォルダに同梱されているfunction.phpファイルに以下の記述を追加し、authorページへのアクセスに対してリダイレクト処理を実行させます。

add_action(‘init’, ‘disable_author_archive’);
function disable_author_archive() {
// $_GETが送信された、もしくはアドレスが /author/ に当てはまった場合
if( $_GET[‘author’] || preg_match(‘#^/author/.+#’, $_SERVER[‘REQUEST_URI’]) ){
wp_redirect( home_url( ‘/404 notfound’ ) ); //リダイレクト
exit;
}
}
※ 上記の記述は、authorページへのアクセスに対して、404NotFoundへのリダイレクト処理

尚、WordPressの標準デザインテーマを使って運用されている場合は、デザインテーマをアップグレードした際に、function.phpも更新され、リダイレクト処理の記述が消去される場合がありますので注意が必要です。

また、この対策の重要度は前述の3つ(特にログイン画面へのIP制限またはBASIC認証)が最優先であり、3つの対策を行ったうえでの補足として私は考えています。

WordPress以外の場所での注意と対策

今回は、WordPressの不正ログイン対策について、ログイン画面とxmlrpc.php、アカウント情報への対策を中心にお伝えしました。しかし、不正ログインされる切っ掛けはWordPress以外の場所でも発生しますので以下も併せてご注意ください。

[1] パソコンのウィルス対策/基本ソフトとアプリケーションソフトのバージョンアップ

スパムメールの添付ファイルや不正に改ざんされたWEBサイト、正規のWEBサイトに掲載された不正広告からコンピュータウィルスに感染し、パスワード情報が漏えいする場合があります。ご利用のパソコンにはウィルス対策ソフトを導入して定期的なバージョンアップを行うとともに、基本ソフトやブラウザー、Flash Player、Adobe Reader、Javaなどのアプリケーションも同様に更新しておくことが重要です。

[2] SFTP/FTPSによるWEBサーバーへの接続とファイルアップロード

WordPress本体のアップグレード作業を行う際に、ご利用のパソコンからWEBサーバーへ直接接続してファイルやデータの送受信を行う場合があります。通常はFTPのファイル転送プロトコルを使って行いますが、安全のため、SFTPもしくはFTPSによる通信暗号化されたファイル転送プロトコルを使って行うことをお勧めします。レンタルサーバーを新規でご検討される際は、選定基準の1つとして、いずれかを標準で利用できることを是非ご確認ください。

◆ SFTPもしくはFTPSが標準で利用できるレンタルサーバー

bnr_wpsecuritycheck_w1022h348

topsilde_wpsupport

タグ
更新をチェック

Facebookでフォローする

関連記事
この記事を書いた人

兵藤考史 制作部 ( WEBディレクター )

【所属部署での主な業務】
制作部でWEB制作ディレクションを担当しています。
WordPressなどのCMSを使ったWEBサイト構築や、レスポンシブWEBデザインを使ったスマートフォン・タブレット端末対応の制作も数多く手掛けてきました。
お客様のご要望に応えながらも、品質、安全、使いやすさを一番に心がけ、制作のスケジュール設定と仕様設計を日々、行っています。

【ひとこと】
猫が大好きです。家族にオスの三毛猫がおります。

兵藤考史 制作部 ( WEBディレクター )

【所属部署での主な業務】
制作部でWEB制作ディレクションを担当しています。
WordPressなどのCMSを使ったWEBサイト構築や、レスポンシブWEBデザインを使ったスマートフォン・タブレット端末対応の制作も数多く手掛けてきました。
お客様のご要望に応えながらも、品質、安全、使いやすさを一番に心がけ、制作のスケジュール設定と仕様設計を日々、行っています。

【ひとこと】
猫が大好きです。家族にオスの三毛猫がおります。

バックナンバー
  
コメント

コメントを残す

更新をチェック

ブレインネットプレス カテゴリー

▲ページTOPへ