Information

WordPressでxmlrpcを使ったブルートフォースアタックについて

ブルートフォースアタックはパスワード辞書を使った総当たり攻撃で、辞書と同じパスワードがヒットすれば、不正ログインを許してしまう原始的ではありますが結構怖い攻撃です。

当方のサイトへの最近の攻撃では、1万を越える異なるパスワードでログインが試みられています。

人がログイン画面からログインを試す場合、10回も繰り返せば嫌になります。が、しかしプログラムを利用すれば、お茶を飲んでる間にログインチェックが可能となります。クラッカーの皆さんは、さほど苦労せず脆弱なサーバーやサイトを日々探索しているのです。

さて最近ですが、WordPressのxmlrpc.phpを悪用してDDoS攻撃が仕掛けられたことから、悪用されたWordPressサイトの一覧が公開されました。日本の結構名のある会社のサイトも上がっていて、不名誉なレッテルを貼られてしまいました。

そんなレッテルは貼られたくないので、早速ping機能を無効にしました。

xmlrpcそのものはブログに取って大切な機能であるため、そのものを無効とするわけにはいきません。

が、何と、そこに付け込んだ新たなブルートフォースアタックが発生しました。

そのアタック方法は?

話には聞いてはいたのですが、実際どのように実行されているかは調べていませんでした。ですが、当方のサイトが標的にされたので早速確認してみました。

方法は至って簡単です。ログイン名とパスワードをWordPressのxmlrpc.phpに投げることで、戻されたその結果によりログイン名とパスワードが正しいかどうか分かるわけです。

以下は実際に投げ込まれたXML文です(見易いように編集してあります)。

xmlrpcに投げ込まれたXML

するとWordPressからは次のような結果が送信されます。

ログインできなかった場合

上記のログイン名、パスワードは誤りですのでこのようなデータが送り返されたわけですが、もし正しい場合はどんなXMLが送り返されるかを見てみました。

ログインが成功した場合

これではログイン画面を隠したところで裏口の場所が分かっているので、攻撃を避けるのは容易ではありません。

なお、WordPressにおける「XML-RPC」のAPIは、「XML-RPC wp」に一覧があります。

(140807)

「/?author=xx」でユーザー名が分かる?穴を塞ぐには

WordPressは記事の作成者で検索できるので、「author.php」テンプレートを利用して作成者別の一覧ページが作成できます。これは便利な反面、作成者のIDがあらわになるため、WordPressのログイン名が公開されている状態となります。

これを避けるため「ユーザー名が「/?author=xx」で知られるのを防ぐには」で、author.phpを表示しない方法について掲載しました。

これで安心していたのですが、ある日隠したはずのログイン名を利用したブルートフォースアタックがログインログに登録されていました。

サイト上でログイン名が表示されないように、テンプレートをチェックしたにも関わらず情報が漏れているのです。そこで調べたところ、穴が判明しました。それは「HTTPプロトコル」の通信データにあったのです。

HTTPプロトコルを簡単に説明すると、ブラウザとWebサーバー間でデータ通信するためのデータ伝送手順です。転送データにはブラウザに表示するHTMLデータ以外に、アクセスした結果のステータスコードや日時データが、目に触れない状態でやり取りされています。

この通信データの中に、何とユーザー名が含まれていたのです。

以下の通信データは、「http://web.mt-systems.jp/?author=1」とURLを入力したときの通信データの一部です。

?author=1の通信データ

author.phpでリダイレクトして表示しないようにしても、こんなところでユーザー名が分かってしまう「穴 ●」があったのです。

対処方法

WordPressはユーザー名に関して3つのデータ項目があります。

  • user_login
    ログイン名
  • user_nicename
    ユーザー名
  • display_name
    表示名

通常ログイン名でユーザー登録するとユーザー名には、自動でログイン名が設定されます。そしてプロフィール編集で表示名は編集できますが、ログイン名とユーザー名は編集できません。

通信データで「author」名に利用されるデータは、この「user_nicename」が利用されています。ですので「user_nicename」を書き換えれば良いのです。

書き換え方法

通常の管理画面からは編集できませんが、弊社のプラグイン「MTS Login Logger」を利用すればプロフィール画面から編集することができるようになります。

その他、サーバーにあるデータベースの管理画面からデータを直接編集しても良いでしょう。

(140807)

 

WordPress 3.8.1の自動更新ー止めるには

WordPress 3.8.1の自動更新ー止めるには

3.7で機能追加された自動更新機能ですが、日本語版ではこの3.8から機能が有効になったようで、作業用WordPressサイトから「自動更新完了」のメールが届き3.8.1に自動アップデートされていました。 表示する

MTS Simple Bookingビジネス版 Ver.1.12 リリース

MTS Simple Bookingビジネス版 Ver.1.12 リリース

お待たせいたしました。大きく機能追加された新しい「MTS Simple Bookingビジネス版」のリリースを開始しました。
表示する

ユーザー名が「/?author=xx」で知られるのを防ぐには

ユーザー名が「/?author=xx」で知られるのを防ぐには

管理者名に「admin」の利用は脆弱なため使わないように言われています。が、WordPressでは「admin」を利用しなくても簡単にユーザー名を知られてしまう可能性があります。

表示する

WordPressとHTTPS通信 予約入力フォームでSSLを利用するには

WordPressとHTTPS通信 予約入力フォームでSSLを利用するには

予約入力フォームには個人情報が入力されるため、SSL通信を実装したいと考える人は多いと思います。が、WordPressサイトでhttps://~アクセスしても画像のような表示になり、諦めていませんか?

表示する

ビジネス版 1.8 管理画面で連続予約の編集保存の不具合

連続予約機能を利用して保存された予約データで、管理画面から当該予約データの編集後に保存を実行すると、連続予約データが消えてしまう不具合が発見されました。

修正プログラムをダウンロードページに用意しましたので、ダウンロード・解凍後、プラグインディレクトリへ上書き保存してご利用下さい。

お手数をお掛けし恐縮ですがよろしくお願いします。

Ver.1.4.5をご利用の場合はVer.1.8へバージョンアップしていただくことが望ましいですが、そのままご利用いただけるように修正版をダウンロードページに用意いたしました。

修正プログラムのダウンロードファイルはそれぞれ以下の通りです。

  • mtssb-booking-1.8.1.zip
  • mtssb-booking-1.4.6.zip

 

低価格で高機能テーマを活用

Themify WordPress Themesこちらのサイトで利用しておりますテーマの提供サイトをご紹介します。

Webサイトのデザインは来訪者の感性に直接訴求するので大変重要なものと考えていますが、WordPressを活用する場合は、デザインと共に動作機能を含めたテンプレートの集合したテーマ利用が必須となります。

表示する

予約カレンダー表示ショートコード不具合の修正

フロントエンドで表示する予約カレンダーを指定するショートコードのパラメータにおいて、次の2つのパラメータ設定が正常に動作しない不具合が見つかりました。

表示する

WordPress3.4 メール送信の不具合について

WordPress 3.4.1バージョンアップが開始されました(6/28 9時現在en版のみ)。

修正項目の中に、セーフモードで動作しているサーバーにおいてメール送信できないケースがあり、それが修正されたようです。

» WordPress 3.4.1 Maintenance and Security Release

表示する