【ロリポップ!】不正なアクセスを検知いたしました‏ / WordPress

2014.04.19

ロリポップでWordPressを使用している2つのサイトに不正なログイン試行があり、「【ロリポップ!】不正なアクセスを検知いたしました‏」という件名のメールが飛んできました。

古典的な攻撃でパスワードを抜こうとしたようです。

ロリポップのWordPressログイン制限

驚いたのはロリポップ側で制限をかけたことです。WordPressのログイン画面にアクセスすると↑画像のように表示されログインできません。

 

アクセスの内容より、総当たり攻撃や辞書攻撃など、WordPress への

不正なログインを試みるアクセスの可能性が高いと判断されたため、

弊社側で .htaccess による wp-login.php へのアクセス制限を実施し、

WordPress ダッシュボードへのログインができないよう対応を行っております。

メールの内容の抜粋です。

 

ロリポップ不正アクセスログ

1つのサイトでアクセスログを確認すると攻撃があった日は3000リクエスト増ぐらいでした。

要するに、機械的に3000通りのID/PASSでログインしようとしたということです。

ブルートフォースや辞書攻撃で3000回というのはどの程度の威力なのか分かりませんが、ロリポップのWordPress攻撃に対する警戒はかなり高いのではないでしょうか。

ロリポップは例の事件から完全にWordPressトラウマになっていると思いますねw

例の事件:2013年夏、ロリポップ使用のWordPressサイトが不正に改ざんされた。公式発表では被害件数8438件。

 

ちなみに攻撃元のIPを見るとアメリカ・トルコでした。偶然無関係な2箇所から攻撃を受けるほど人気なサイトではなかったので、プロキシか乗っ取ったサーバーを使ったのでしょうね。同様の自体が起こった方は生ログを見てみてください。

 

さて、今後のためにセキュリティを改善しないといけません。

今回ロリポップがかけた制限ですが、

.htaccessでwp-login.phpに対してDeny from all

つまり、誰一人としてWordPressのログイン画面にアクセスできない状況です。

サーバーの方に入って.htaccessファイルをいじらない限りログインできません。

# BEGIN Lolipop [ http://lolipop.jp/manual/blog/wp-htaccess/ ]

<Files wp-login.php>

ErrorDocument 403 /lolipop_service_documents/wp-login-deny.html

Order deny,allow

Deny from all

Allow from IPADDRESS

</Files>

# END Lolipop

上記のIPADDRESSの部分に自分のIPを入れるというのがロリポップ推奨の改善です。指定したIPからのアクセスだけは受け付けるという設定です。

しかし、IPは複数指定できるとはいえ、やはり外出先からWordPressをいじれないのは不便です。(更新頻度の少ない私は外出先から更新なんてオシャレなことはしませんが。。。

 

別に今までと同じくどのIPからもアクセスできる設定に戻してもいいのですが、それだとまた同様の自体がいつ発生してもおかしくありません。攻撃がある度にロリポップに制限をかけられるのは面倒ですし、もしかしたらWordPressのID/PASSを抜かれるかもしれません。ロリポップオススメのWAF設定もありますが、プラグインが動かなくなったり面倒なのでWAFは要らないです。そもそもCMSでWAFとか相性悪いと思います。

 

散々もったいぶってきましたが、結論です。

Basic認証を使います。

指定したIPからはWordPressログイン画面に普通にアクセスできるが、それ以外のIPからはアカウント名とパスワードの入力を求められます。

言い換えると、Basic認証とWordPressのID/PASSの2段階認証を設定し、自宅やオフィスのIPからは例外的に1段階認証(今までどおりWordPressのログイン画面)になるという設定です。

 

# BEGIN WpAdminBasic
<Files wp-login.php>
Satisfy Any
order deny,allow
deny from all
allow from IPADDRESS

AuthType Basic 
AuthName "Protected Area" 
AuthUserFile /フルパス/.htpasswd 
AuthGroupFile /dev/null 
Require valid-user 

</Files>
# END WpAdminBacis

 

これを.htaccessファイルに追加します。

IPADDRESSに自分のIP、フルパスにWordPressのインストールディレクトリをフルパスで書きます。

フルパスはロリポップにログインしてアカウント情報で見られます。

次に.htpasswdファイルを作ってBacis認証用のアカウント名・パスワードを設定します。

当たり前ですがWordPressのID/PASSとは違うものにしてください。

.htpasswdファイルはWordPressインストールディレクトリにアップすればOKです。パーミッションは604です。

.htpasswdファイルの中身はロリポップにログインして、WEBツール>アクセス制限>htpasswdファイル用パスワード生成ツールはこちら、で作れます。

 

allow from IPADDRESS

の行を追加して別のIPを指定すれば複数のIPを許可できます。

IPがコロコロ変わってしまう環境の人は諦めて2段階認証の手間を受け入れてください。別にブラウザにパスワードを保存させてもいいので。

というわけで、2段階認証をオススメします。

2段階だと抜かれにくさは2倍なんてものではなく、級数的に強くなります。

今回の攻撃を期にアクセス数が小さいサイトまでこんな設定 をしました。(大きいサイトは前からやってましたが…

 


 

話が変わりまして、

はっきり言って攻撃対策として最強なのはそもそもWordPressを使わないことです。

最近はWordPressが流行りすぎてドコもかしこもやたらめったら使ってます。だからこそWordPressを狙い撃ちした攻撃が多いんです。

CMSにする必要がないサイトまでWordPressにしてないかあらためて考えてください。更新の少ないサイトではBootstrapなんかでさっくり静的サイトにした方が幸せだと思いますよ。

 

WordPressを使った上でセキュリティを高める場合、

  1. Basic認証(上記)
  2. パスワードを推測されないものに
  3. ムダにプラグインを入れない
  4. パーミッション

とにかくこれだけ守ります。

パスワードはセルフサービスで暗号化したいですね。

aqua@2014なんて文字ならa2q0u1a4@にすると辞書攻撃に強くなります。

ユーザー名もadminとかやめましょう。

そして、プラグインです。

プラグイン自体に脆弱性があってもプラグインの更新は作者の気分次第なわけです。

さらに悪い場合は、プラグイン自体に悪意がある場合や、配布サイトが改ざんされていてマルウェア入りの場合もないわけではないのですから。

使ってないプラグインはどんどんアンインストールしましょう。

パーミッションはロリポップならだいたい大丈夫じゃないかとwww詳しくはggrksでお願いします。

 


 

と、まぁ、WordPressへの攻撃とロリポップの対応の話から、Basic認証の設定、その他セキュリティ的な話までグダグダ書きました。参考になるかどうかはさておき、やたらめったらWordPressを使ってもろくなことがないと主張できれば満足です。

お約束ですが、同じようにやる場合は自己責任で。サポートセンターは私じゃなくてグーグル先生でお願いします。

 

 

記事おわりっ!

tag:,