皆さんは、どのようにサイトのセキュリティを保護していますか?
私は有名なプラグイン『Jetpack』を使い、
サイトのアクセス統計情報や、スパム対策をしています。
いつものようにJetpackをチェックしたところ、
気持ち悪いですよね…
対応をしたいと思います。
悪意あるログイン試行とは?
Webサイトは、誰でも見ることができますが、
管理者画面は管理者等関係者以外には見せないようにしていますね。
このとき、パスワードをかけていると思います。
この画面に対して、ログインし、悪さをしようとするクラッカーが世の中にはいます。
これを、「パスワードクラック」といいます。
クラッカーは、サイトのIDを把握すると、
あとは様々なパスワードを入力し、
どうにかログインしようとアタックをしかけてきます。
アタックの方法は大きく以下3つがあります。
攻撃方法
- 総当たり攻撃(ブルートフォース攻撃)
- 辞書攻撃
- スニッフィング
それぞれ簡単に説明します。
総当たり攻撃(ブルートフォース攻撃)
WordPressでは、この攻撃が最も多いようです。
ダイヤル錠を思い浮かべてください。
数字部分をくるくる回して、設定した数字が全部そろったら鍵が開く仕組みになっていますね。
数字を忘れてしまった場合などは、
当たるまで、くるくる回して開けると思います。
これが総当たり攻撃です。
考えられるすべてのパスワードを入力し、ログインを試みる攻撃方法のことです。
辞書攻撃
辞書攻撃は、辞書に載っている言葉をつかった攻撃です。
英和辞典などを思い浮かべてみてください。
皆さんがパスワードを設定するとき、
辞書に載っているような言葉や数字を組み合わせることはありませんか?
辞書に載っている言葉を使うのは、覚えやすいですが、
一方で、攻撃もされやすくなります。
スニッフィング
インターネットを使って通信するとき、
例えば写真や動画を誰かに送るとき、
そのまま送ると通信領域を占有してしまうため、
内部では小さく切って少しずつ送っています。
これを「パケット」と言います。
麻薬犬を思い浮かべてください。
麻薬犬は、空港などで荷物の臭いをかぎ、
麻薬が荷物の中に入っていないかをチェックしますね。
スニッフィングは、これと同じように、パケットのにおいをかぎ、
パスワードの情報が含まれていないかをかぎわけ、
集めたパスワードで攻撃をする方法のことです。
悪意あるログイン試行のまとめ
上述のような方法で攻撃をし、不正ログインがされ、
結果、サイトが乗っ取られ、改ざんされてしまうことがあるため、注意が必要です。
プラグインを使って対策をしよう
管理者画面のURL
そもそも、クラッカーは、どのように管理者のログイン画面を知ることができるのでしょうか?
簡単ですね。
WordPressでは、デフォルトの設定で、以下いずれかのURLからログインができるようになっています。
http://ドメイン/wp-login.php
通常、http://ドメインがトップになっているため、
誰でもログイン画面を見ることができるということになります。
誰でもわかる、
クラッカーもわかる。
マンションのオートロックのようなイメージですね。
誰でもオートロックの入り口までは行くことができる。
あとは部屋番号とパスワードがわかれば、入れますよね。
SiteGuard WP Pluginを使おう
管理者画面のURLがわからないようにするために、
URLの書き換えをしましょう。
それを簡単にする方法として、SiteGuard WP Pluginというプラグインがあります。
※検索するときは、SiteとGuardの間にスペースは入れないでください。
SiteGuard WP Pluginをインストール、有効化すると、
画面上部に次のようなメッセージが表示されます。
有効化時に、すでにログイン画面のURLを書き換えてくれています。
上述の、設定変更はこちらをクリックしてください。
以下のようにURLの変更画面が表示されます。
必要に応じて、URLを変更し、「変更を保存」をクリックしてください。
SiteGuard WP Pluginでできるその他のこと
管理者メニューに「SiteGuard」が追加されていますので、こちらをクリックすると、
SiteGuardのダッシュボード画面が表示されます。
先ほどのURL変更が上から2つ目のログインページ変更でした。
緑のチェックが入っている部分は対応している箇所となります。
未対応部分を確認してみましょう。
管理ページアクセス制限
ログインが行われていない接続元IPアドレスに対して、管理ページのアクセスを、404(Not Found)で返すための設定です。
ユーザー名漏えい防御
“/?author=数字” のアクセスによるユーザー名の漏えいを防止するための設定です。
WordPressでは、ユーザーはユーザー名を使ってログインしますが、
デフォルトでは、画面上にもユーザー名が表示されます。
ユーザー画面でニックネームを設定し、
ブログ上の表示名をニックネームにすることで、
漏えい防御の1対策ができます。
フェールワンス
リスト攻撃を受けにくくするために、
正しいログイン情報を入力しても、1回だけ必ずログインが失敗するようにする設定です。
一度失敗すると、このパスワードは正しくないと思い、
他のパスワードでの不正ログインを試みようとする点を利用しています。
WAFチューニングサポート
WAFを設定することで、Webサーバーに対する外部からの攻撃を防ぐことができます。
このとき、WordPressの機能や、プラグインの機能によっては、WAFが攻撃でないのに攻撃と判断して、その機能をブロックしてしまうため、ブロックしない対象を設定するための画面です。
まとめ
不正アクセスで折角のサイトが壊されたりしたら、たまったもんじゃないですね。
対策をしていきましょう!