はじめに
SSH は Linux サーバやクラウド環境の管理に欠かせないリモート接続手段です。しかし、インターネットに公開された SSH サーバは、弱い認証設定のままだとブルートフォース攻撃の標的になりやすいのが現実です。
本記事では、有名なパスワード攻撃ツール Hydra を使って SSH に対するブルートフォース攻撃の仕組みを解説し、あわせて防御のポイントも整理します。
1. SSH ブルートフォース攻撃とは?
SSH のブルートフォース攻撃とは、
- 多数のユーザー名とパスワードの組み合わせを
- 自動化ツールで
- 片っ端からログイン試行する攻撃
のことです。
もし「ユーザー名が推測できる」「パスワードが弱い」場合、攻撃は短時間で成功 してしまう可能性があります。
だからこそ、攻撃手法を理解することは、防御設計の第一歩になります。
2. Hydra とは?
Hydra は、ログイン認証に対する攻撃を自動化するための有名なツールで、以下の特徴があります。
- SSH / FTP / HTTP / SMB / RDP / SMTP など多数のプロトコルに対応
- ユーザー名リスト × パスワードリストの総当たりが可能
- 並列実行により高速に試行できる
- ペネトレーションテストや演習環境で広く利用されている
一言で言うと、「ログイン系ブルートフォースの定番ツール」 です。
3. SSH に対する Hydra の基本コマンド
SSH に対してブルートフォースを行う基本構文は次のとおりです。
hydra -L users.lst -P /path/to/wordlist.txt ssh://10.10.x.x -v
各オプションの意味は以下のとおりです。
-
-L users.lst
→ ユーザー名のリストファイル(複数ユーザーを試す) -
-P /path/to/wordlist.txt
→ パスワードのワードリスト -
ssh://10.10.x.x
→ 攻撃対象のプロトコルと IP アドレス(SSH, 通常は 22 番ポート) -
-v
→ 詳細ログ(Verbose)表示
つまりこのコマンドは、
「users.lst にあるユーザー名と、wordlist.txt にあるパスワードを組み合わせて、10.10.x.x の SSH に順番にログインを試す」
という意味になります。
4. 実行時のログの読み方
Hydra を実行すると、次のような警告が出ることがあります。
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
これは、
SSH は同時接続数を制限していることが多いので、
-t 4などでスレッド数を減らしたほうが安定する
という意味です。
SSH は DoS 対策のため、並列接続に厳しい設定になっていることが多く、スレッド数を下げないと接続拒否されやすい点に注意が必要です。
攻撃が成功すると、次のような行が表示されます。
[22][ssh] host: 10.10.x.x login: victim password: xxxxxxxx
これは、
- ホスト:
10.10.x.x - ユーザー名:
victim - パスワード:
xxxxxxxx
の組み合わせで ログインに成功した ことを意味します。
5. なぜ「ワードリストの質」が重要なのか?
ブルートフォース攻撃の成功率は、ワードリストの質に大きく依存します。
例えば:
- よくある弱いパスワード(password, 123456, admin123 など)
- サービス名+数字(company2024 など)
- 季節+年(Spring2025! など)
- CeWL や CUPP で生成したターゲット特化リスト
こうした「人間が付けがちなパスワード」を含むリストほど、現実の環境では成功率が高くなります。
裏を返せば、防御側は「推測されやすいパスワードを使わない」ことが極めて重要だということです。
6. 防御の観点
SSH サーバを守るために、最低限以下の対策は必ず行うべきです。
- パスワード認証を無効化し、公開鍵認証のみにする
-
fail2banなどでブルートフォースを自動遮断する - root ログインを禁止する
- SSH のポート変更(本質対策ではないがノイズ削減には有効)
- 強力で推測不能なパスワードやフレーズを使う(パスワード認証を使う場合)
特に重要なのは:
パスワード認証を無効化して、鍵認証のみを使うこと
これだけで、Hydra などによるパスワード総当たり攻撃はほぼ無力化できます。
まとめ
- Hydra は SSH を含む多くのサービスに対してブルートフォース可能な強力ツール
- 攻撃の成否は「ワードリストの質」に大きく依存する
- 実運用の SSH サーバでは:
- パスワード認証の無効化
- 公開鍵認証の使用
- ブルートフォース対策の導入
を必ず行うべきである
攻撃手法を知ると、「これは通ったら危ないな」と実感できます。
でも同時に、「じゃあ、ここを塞げばいい」という防御ポイントもクリアになります。
セキュリティは結局、攻撃者の視点を知ることで強くなる世界なんですよね。