こんにちは、インフラエンジニアのryuです。
今回の記事は、ブルートフォース攻撃とは何かを解説していきます。 ブルートフォース攻撃とはパスワードを総当たりで試してパスワードを奪取する手法です。kali linuxを使用して攻撃方法の解説と対策方法を解説していきます。
※ブルートフォース攻撃は自分の環境で行ってください。他人のサーバーへの攻撃は絶対に行わないようにしてください。
目次
ブルートフォース攻撃とは?
ブルートフォース攻撃とは、総当たり攻撃のことです。
総当たり攻撃とは、暗号や暗証番号などで、理論的にありうるパターン全てを入力し解読する暗号解読法。例としては、自転車のチェーンロックやトランクのダイヤル錠を、全ての番号の組み合わせ(4桁なら0000から9999まで)を片っ端から試す方法と同じで、この「片っ端から」で、いずれ正解に行き着こうというものである。
(wikipediaより)
つまり、パスワードを総当たりで試し、パスワードを解析する攻撃方法です。
kali linuxでブルートフォース攻撃してみる
では、ブルートフォース攻撃をやってみましょう。
準備:環境構築
まず、環境の構築を行います。攻撃用のサーバーとしてkali linuxを準備しましょう。インストール方法はこちらの記事を参考にしてください。
次に、攻撃されるサーバーの準備をします。linuxサーバーでWebサーバーを構築して、Basic認証の設定を行います。Basic認証のやり方は今回は割愛します。Basic認証で使用するユーザは”user”でパスワードも”user”です。
basic認証についてもこちらの記事で解説しています。参考にしてください。
kali linuxの”hydra”を使用して攻撃する
“hydra”とは、パスワード攻撃をするためのツールです。kali linuxにデフォルトでインストールされています。web以外にも、sshやftpへの攻撃が可能です。
まず、総当たり攻撃で使うパスワードを作成します。”crunch”というコマンドを使うと簡単に作成できます。以下のコマンドを入力してください。
crunch 4 4 -o password.txt
crunchコマンドを使うことで、4文字の”aaaa”から”zzzz”までのパスワードを自動生成してくれます。以下のようなファイルが作成されます。
次に”hydra”コマンドを入力して、このパスワードファイルを使ってブルートフォース攻撃を行います。
hydra -l user -P password.txt 127.0.0.1 http
hydra -l user -P password.txt XX.XX.XX.XX http
コマンドの説明については、以下の通り。
- -l で認証するユーザを指定します。
- -Pはパスワードファイルを指定します。
- XX.XX.XX.XXはwebサーバのIPアドレスを指定します。
- httpはプロトコルの指定です
httpはプロトコルの指定です。ftpの場合は”ftp”、sshの場合は”ssh”と指定します。
実行すると、以下のようになります。パスワードがuserと表示されました。
このように、ブルートフォース攻撃を使うと、パスワードを解析することができます。
ブルートフォース攻撃の対策
次にブルートフォース攻撃の対策を解説します。ブルートフォース攻撃を防ぐためには、どのようにすればよいのでしょうか?
対策は以下のようなものがあります。
- パスワードを長く複雑なものにする
- 多要素認証を導入する
- パスワードの試行回数を制限する
- ログの監視
さらに詳しく解説します。
パスワードを長く複雑なものにする
総当たり攻撃は、パスワードファイルのものを全て試します。そのため、時間がかかります。今回、試しで攻撃した「user」という4文字のパスワードですら、1時間くらいかかりました。パスワードの文字を長く、英語大文字小文字数字記号を含めたパスワードにすれば、パスワード解析に膨大な時間がかかります。
多要素認証を導入する
多要素認証とは、パスワードと他の要素を使って認証をするものです。パスワード+生体認証など、詳しくはこちらの記事で解説しています。
パスワードの試行回数を制限する
パスワードの試行回数を制限します。そうすることで、パスワード総攻撃を防げます。例えば、3回パスワードを間違えたらアカウントをロックするなど。銀行のキャッシュカードのような感じです。
ログの監視
パスワード総攻撃を行うと、ログに大量の認証エラーのログが表示されます。普段よりログの監視を行いましょう。そして、不審なログが大量に出た場合は、通知を出し未然に防ぐようにしましょう。
さいごに
ブルートフォース攻撃の攻撃方法と対策方法を解説しました。攻撃方法を理解すると、対策も考えやすいです。kali linuxには攻撃用ツールが多く入っているので、ぜひ使ってみてください。
当ブログでは、このようなセキュリティやネットワークに関する記事を発信しているので興味のある方は是非ご覧ください
セキュリティについてさらに勉強したい方は、こちらの参考書がオススメです。