不正ログイン攻撃には、総当たり攻撃やブルートフォースアタック(Brute-force attack)と呼ばれる第3者が想定される認証情報を入力してログインできるか調べる攻撃や、辞書攻撃と言われる良く使われるパスワードを「辞書」的に登録し攻撃に利用するなどがあります。
→DDoS攻撃についてはこちら
総当たり攻撃(ブルートフォースアタック)は、試行を繰り返すことでパスワードを特定する攻撃になりますが、最近のパソコンは処理スピードが早いため、パスワードが数字4桁程度の場合、数秒で突破できてしまいます。
使用する文字の種類と文字数での組み合わせパターン数は以下の通りとなります。単純な組み合わせで文字数も少ないとパターン数が意外と少ないことに気付くと思います。
使用する文字の種類 | 1文字の場合 | 4文字の場合 | 6文字の場合 |
---|---|---|---|
数字のみ(0~9) | 10 | 10,000 | 1,000,000 |
英字(大・小文字区別なし) | 26 | 456,976 | 38,915,776 |
英字(大小区別なし)+数字 | 36 | 1,679,616 | 2,176,782,336 |
不正ログイン攻撃の流れ
WordPressの場合、以下の流れで不正ログイン攻撃が行われます。
1.ログイン用URLの特定
変更を加えていない場合、ログインURLは、wp-login.phpとなる。
→SiteGuard WP Pluginで変更可能
2.管理者用ユーザIDの特定
WordPressへ特定のリクエストをすることで、存在する管理者用ユーザIDを取得することができる。
→Edit Author Slugで対応可能
3.ユーザIDとパスワードを送信する
総当たり攻撃(ブルートフォースアタック)、辞書攻撃、もしくはその両方の組み合わせなどで行われます。
→画像認証を追加する
4.返答されるHTTPヘッダを確認する
ユーザIDとパスワードが一致した場合、「Status 302」としてLocationヘッダにダッシュボードのURLを返します。(失敗時は「Status 200」となる。)
5.ダッシュボードへログインする
ログインした後は任意のコードを記述したり、任意のファイルを設置したり、様々な悪意ある改ざんが自由に出来てしまいます。
STEP5も、プラグインなど余分なファイルを削除・整理しておくことで改ざん後の特定が可能になったり、被害を最小限にすることが出来ます。
不正ログイン攻撃を防ぐには
逆に考えると、これらのSTEP4までのどこかのステップを防ぐことで不正ログイン攻撃を未然に防ぐことが可能になります。
複数対策することで、よりセキュリティ度は向上しますが、普段の運用に差し支えないレベルでの対策が望ましいので、各自でどこまで対応するかなど検討が必要かもしれません。
私の個人的な優先順は…
管理者用ユーザID→Edit Author Slugで対応可能
↓
ユーザIDとパスワード→画像認証を追加
↓
ログイン用URL→SiteGuard WP Pluginで変更
最後のログインURLの変更はAWSでは出来ないため、設定に汎用性を持たせるため優先順位を下げています。
WEBサイトの改ざん監視なら【SiteLock(サイトロック)】
参考:https://knowledge.sakura.ad.jp/4248/
https://ja.wikipedia.org/wiki/総当たり攻撃
https://ja.wikipedia.org/wiki/辞書攻撃