• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「Brute Force Attacks」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(外部資料: 「WordPress のパスワード強度チェック」を追加)
(「Brute_Force_Attacks」と「ブルートフォース攻撃」が重複となっていたため、こちら(ブルートフォース攻撃)に集約する。そのために、すでに日本語訳が進んでいる「Brute_Force_Attacks」の)
 
1行目: 1行目:
{{CheckTrans}}
+
[[ブルートフォース攻撃]]へ移動
 
+
ソフトウェアの脆弱性に着目する攻撃とは異なり、ブルートフォース攻撃(Brute Force Attack) は、非常に単純な方法でアクセス権を取得しようとします。ユーザー名とパスワードを入力し、ログイン成功するまで繰り返します。 美しくないですが、ユーザー名 admin パスワード 123456 のようなものを採用している場合、攻撃が成功しやすいです。
+
 
+
手短に言うと、ウェブサイトのセキュリティで一番脆い場所、つまり、あなた、を狙っているのです。
+
 
+
攻撃の性質上、サーバーのメモリ上限に達してパフォーマンス低下を引き起こすかもしれません。http リクエストの数 (あなたのサイトを訪問する回数) が非常に多いため、サーバーがメモリ不足になるからです。
+
 
+
この攻撃は、WordPress 特有のものではありません。すべてのウェブアプリケーションに起こりえます。しかし WordPress は良く利用されているため、攻撃の標的となりやすいです。
+
 
+
==自分を守る==
+
 
+
WordPress へのよくある攻撃の場合、wp-login.php ファイルに繰り返しアクセスし、ログインできるかサーバーがダウンするかするまで継続します。自分を守るために、いくつかの方法があります。
+
 
+
===ユーザー名 admin を使用しない===
+
 
+
WordPress のデフォルトのユーザー名が admin のため、admin を使用していると仮定した攻撃が多いです。 ユーザー名 admin を使用している場合は、新しいアカウントを作成し、全ての投稿を新しいアカウントに移譲し、admin を購読者に変更してください (あるいは削除してください)。
+
 
+
プラグイン [http://wordpress.org/extend/plugins/admin-renamer-extended/ Admin Renamed Extended] を使用してユーザー名を変更できます。
+
 
+
===良いパスワードを使用する===
+
 
+
パスワードの目的は、他者が推測しずらく、ブルートフォース攻撃が成功しにくいものにすることです。安全なパスワードを作成することができる、多くの[http://www.google.com/?q=password+generator automatic パスワード生成ツール(google 検索)]があります。
+
 
+
WordPress にはパスワード強度を示すメーターがあり、パスワードを変更するときに表示されます。パスワードを変更するときは、十分な強度であることを確かめておきましょう。
+
 
+
プラグイン [http://wordpress.org/extend/plugins/enforce-strong-password/ Enforce Strong Password] を使用して、強固なパスワードを強制することができます。
+
 
+
パスワード生成時に避けたほうが良い事:
+
 
+
* 本名、ユーザー名、会社名、ウェブサイトの名前やそれらの組み合わせ。
+
* どんな言語であれ、辞書にある単語。
+
* 短いパスワード。
+
* 数字のみ、またはアルファベットのみのパスワード (両方を混ぜるのが良い)。
+
 
+
強固なパスワードは、ブログ投稿を守るのに必要ですが、それだけではありません。管理者アカウントのアクセスを取得した攻撃者が、悪意あるスクリプトをインストールし、サーバー全体が危うくなることがあります。
+
 
+
=== プラグイン ===
+
 
+
プラグインを用いて、ログイン試行回数を制限したり、wp-admin へのアクセスを禁止したりできます。
+
 
+
* [http://wordpress.org/extend/plugins/limit-login-attempts/ Limit Login Attempts]
+
* [http://wordpress.org/extend/plugins/lockdown-wp-admin/ Lockdown WP Admin]
+
* [http://wordpress.org/extend/plugins/wp-fail2ban/ WP Fail2Ban]
+
* [http://wordpress.org/extend/plugins/admin-renamer-extended/ Admin Renamed Extended]
+
* [http://wordpress.org/extend/plugins/enforce-strong-password/ Enforce Strong Password]
+
* [http://wordpress.org/extend/plugins/wordfence/ Wordfence Security]
+
* [http://wordpress.org/extend/plugins/threewp-activity-monitor/ 3WP Activity Monitor]
+
* [http://wordpress.org/plugins/all-in-one-wp-security-and-firewall/ All in one WP Security]
+
 
+
== サーバーを守る ==
+
 
+
wp-login.php あるいは wp-admin をロックする事を決めた場合、これらのページへアクセスすると、404 または 401 エラーに遭遇するでしょう。これを避けるには、.htaccess ファイルに下記のように記述します。
+
 
+
<pre>
+
ErrorDocument 401 default
+
</pre>
+
 
+
401 エラーを 401.html に向けることもできます。ここで重要なのは、WordPress で<em>ない</em>、ということです。
+
 
+
For Nginx you can use the error_page directive but must supply an absolute url.
+
 
+
error_page  401  http://example.com/forbidden.html;
+
 
+
 
+
=== wp-login.php をパスワード保護する ===
+
 
+
wp-login.php ファイル (と wp-admin フォルダ)をパスワード保護することにより、防御壁を増やすことができます。wp-admin をパスワード保護すると、フロントエンドで ajax を使用するプラグインを破壊するため、wp-login を保護するだけで通常は良いでしょう。
+
 
+
パスワード保護するには、.htpasswd ファイルを作成する必要があります。多くのホスティングでは生成ツールを提供してますが、もし手作業で作成する必要がある場合は、[http://www.htaccesstools.com/htpasswd-generator/ htpasswd generator] を使用することができます。.htaccess ファイル (拡張子のみを持つファイル) と同様、.htpasswd も拡張子のみです。
+
 
+
このファイルをウェブ公開領域(public_html や domain.com 等。ホスティングにより異なる)の外に置くことができます。同じフォルだに置くことも<em>できます</em>が、こうする場合は .htaccess ファイルに追加でセキュリティ対策を施す必要があります。
+
 
+
.htpasswd ファイルをアップロードしたら、どこにあるかを .htaccess に伝える必要があります。.htpasswd をホームディレクトリに置き、htpasswd ユーザー名が mysecretuser の場合、.htaccess に下記のように記述します。
+
 
+
<pre>
+
# Stop Apache from serving .ht* files
+
<Files ~ "^\.ht"> Order allow,deny Deny from all </Files>
+
 
+
# Protect wp-login
+
<Files wp-login.php>
+
AuthUserFile ~/.htpasswd
+
AuthName “Private access”
+
AuthType Basic
+
require user mysecretuser
+
</Files>
+
</pre>
+
 
+
AuthUserFile の実際の位置はサーバーに依存します。また 'require user' にはユーザー名を指定してください。
+
 
+
If you are using Nginx you can password protect your wp-login.php file using the [http://wiki.nginx.org/HttpAuthBasicModule HttpAuthBasicModule].  This block should be inside your server block.
+
 
+
<pre>
+
location /wp-login.php {
+
    auth_basic "Administrator Login";
+
    auth_basic_user_file .htpasswd;
+
}
+
</pre>
+
The filename path is relative to directory of nginx configuration file nginx.conf
+
The file should be in the following format:
+
<pre>
+
user:pass
+
user2:pass2
+
user3:pass3
+
</pre>
+
Passwords must be encoded by function crypt(3). You can use an online [http://www.htaccesstools.com/htpasswd-generator/ htpasswd generator] to encrypt your password.
+
 
+
===wp-admin へのアクセスを IP アドレスで制限する===
+
 
+
自分だけが管理画面にログインする必要がある場合で、自分の IP アドレスが分かっている場合、.htaccess ファイルを用いて自分以外の wp-admin へのアクセスを拒否することができます。
+
 
+
.htaccess をテキストエディタで開き、下記を追加する:
+
 
+
<pre># Block access to wp-admin.
+
order deny,allow
+
allow from x.x.x.x
+
deny from all</pre>
+
 
+
x.x.x.x は自分の IP アドレスに置き換えてください。インターネットサービスプロバイダに問い合わせると、自分の IP アドレスが分かるでしょう。あるいは [http://www.whatismyip.com/ What Is My IP] のようなオンラインサービスを使用することもできます。
+
 
+
For Nginx you can add a location block inside your server block that works the same as the Apache example above.
+
<pre>
+
error_page  403  http://example.com/forbidden.html;
+
location /wp-admin {
+
  deny    192.168.1.1;
+
  allow  192.168.1.0/24;
+
  allow  10.1.1.0/16;
+
  deny    all;
+
}
+
</pre>
+
 
+
deny/allow の順序が重要である事に注意してください。アクセス指定順を変えても上手くいく、と思うかもしれません。実際はそうではありません。上記の例の順序を変えると、全てのアドレスからのアクセスを拒否します。
+
 
+
テーマやプラグインが AJAX を使用している場合、.htaccess に追加の設定を記述して、それらがうまく動作するようにする必要があります。
+
 
+
<pre># Allow acces to wp-admin/admin-ajax.php
+
<Files admin-ajax.php>
+
    Order allow,deny
+
    Allow from all
+
    Satisfy any
+
</Files></pre>
+
 
+
このファイルを保存し、wp-admin フォルダにアップロードしてください。
+
 
+
Again for Nginx if you are restricting access to wp-admin and use ajax you will need to add another location block to your server block.
+
<pre>
+
location /wp-admin/admin-ajax.php {
+
    allow all;
+
}
+
</pre>
+
 
+
許可する IP アドレスを複数指定することができます。
+
 
+
<pre># Block access to wp-admin.
+
order deny,allow
+
allow from x.x.x.x
+
allow from y.y.y.y
+
allow from z.z.z.z
+
deny from all</pre>
+
 
+
複数のインターネットサービスプロバイダを使用する場合 (モバイル環境から管理画面にアクセスする場合、等)や、何人かが管理画面にアクセスできるようにする場合に役立ちます。
+
 
+
IP アドレスブロックを許可する場合は、下記のように記述します。
+
 
+
<pre># Block access to wp-admin.
+
order deny,allow
+
allow from x.x.x.*
+
deny from all</pre>
+
 
+
例えば、192.168.1.* を設定すると、IP アドレス範囲 192.168.1 を許可します。
+
 
+
===リファラーの無いアクセスを拒否する===
+
 
+
[[Combating_Comment_Spam/Denying_Access#Deny_Access_to_No_Referrer_Requests|Combatting Comment Spam]] の発展として、これを使用してサイトにアクセスしないでログインフォームにアクセスされたものを拒否することができます。
+
 
+
<pre>
+
# Stop spam attack logins and comments
+
<IfModule mod_rewrite.c>
+
RewriteEngine On
+
RewriteCond %{REQUEST_METHOD} POST
+
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php*
+
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
+
RewriteCond %{HTTP_USER_AGENT} ^$
+
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
+
</ifModule>
+
</pre>
+
 
+
Nginx - Deny Access to No Referrer Requests
+
<pre>
+
location ~* (wp-comments-posts|wp-login)\.php$ {
+
        if ($http_referer !~ ^(http://example.com) ) {
+
          return 405;
+
        }
+
      }
+
</pre>
+
example.com は自分のドメインに変更してください。マルチサイトで複数ドメインを使用している場合は、<code>(example.com|example.net|example4.com)</code> のように変更してください。
+
 
+
=== ModSecurity ===
+
 
+
ModSecurity を使用する場合は、[http://www.frameloss.org/2011/07/29/stopping-brute-force-logins-against-wordpress/ Frameloss - Stopping brute force logins against WordPress] の指示に従ってください。サーバーのルート権限が必要になります。ホスティング業者の手助けが必要かもしれません。
+
 
+
ModSecurity 2.7.3 を使用している場合は、ルールを .htaccess ファイルに追記することもできます。
+
 
+
=== Cloud/Proxy サービス===
+
 
+
CloudFlare や Sucuri CloudProxy のようなサービスは、攻撃者がサーバーに到達する前に IP  をブロックすることで、これらの攻撃を沈静化するのに役立つでしょう。
+
 
+
== 外部資料 ==
+
 
+
* [http://blog.sucuri.net/2013/04/protecting-against-wordpress-brute-force-attacks.html Sucuri: Protecting Against WordPress Brute Force Attacks]
+
* [http://kb.liquidweb.com/wordpress-modsecurity-rules/ Liquid Web: ModSecurity Rules To Alleviate Brute Force Attacks]
+
* [http://support.hostgator.com/articles/specialized-help/technical/wordpress/wordpress-login-brute-force-attack HostGator: Password Protecting wp-login]
+
 
+
* [http://www.rescuework.jp/blog/password-strength.html 本当は怖い WordPress:  WordPress のパスワード強度チェック]
+
 
+
{{原文|Brute Force Attacks|132730}}<!-- 04:02, 2 July 2013 Mra13  版 -->
+
 
+
[[Category:上級トピック]][[Category:Security]]
+

2014年6月8日 (日) 13:35時点における最新版

ブルートフォース攻撃へ移動