SMTPサーバへのブルートフォース攻撃対策

SMTPサーバへのブルートフォース攻撃対策

SMTPサーバへのブルートフォース攻撃対策を解説

SMTPサーバをインターネットへ公開すると、ほぼ確実に不正アクセスの試行を受けます。

その中でも特に多いのがブルートフォース攻撃です。

攻撃者は大量のユーザー名とパスワードを試行し、SMTP認証を突破しようとします。

もし認証に成功すると、そのアカウントを利用してスパムメール送信やフィッシングメール送信が行われる可能性があります。

本記事ではSMTPサーバに対するブルートフォース攻撃の仕組みや被害、具体的な対策方法について解説します。

ブルートフォース攻撃とは

ブルートフォース攻撃(Brute Force Attack)とは、ユーザー名とパスワードの組み合わせを総当たりで試行する攻撃です。

SMTPサーバではSMTP-AUTHに対して実施されます。

攻撃者は自動化ツールを利用して大量の認証試行を行います。

なぜSMTPサーバが狙われるのか

SMTPアカウントの乗っ取りに成功すると様々な悪用が可能になります。

  • スパムメール送信
  • フィッシングメール送信
  • マルウェア配布
  • なりすましメール送信
  • 企業情報の収集

攻撃者にとって非常に価値の高いサービスです。

攻撃の流れ

典型的な攻撃例です。

攻撃者
   ↓
SMTP認証試行
   ↓
大量のパスワード入力
   ↓
認証成功
   ↓
アカウント乗っ取り

自動化ツールによって短時間で大量の試行が行われます。

よく狙われるユーザー名

攻撃者はまず一般的なユーザー名を試します。

admin
administrator
info
mail
support
root
user
test

分かりやすいアカウント名は避けた方が安全です。

よく試されるパスワード

弱いパスワードは真っ先に狙われます。

password
123456
qwerty
admin
company
welcome

現在でもこのようなパスワードを利用している環境は少なくありません。

辞書攻撃との違い

ブルートフォース攻撃と似たものに辞書攻撃があります。

攻撃手法内容
ブルートフォース総当たり攻撃
辞書攻撃よく使われる単語を試す

実際には両方を組み合わせて利用されることが多くあります。

攻撃を受けているサイン

以下のような現象が発生した場合は注意が必要です。

  • SMTP認証失敗ログ急増
  • 海外IPからのアクセス増加
  • CPU使用率上昇
  • メール送信数増加

ログを確認する習慣が重要です。

ログで確認する方法

Postfixログを確認します。

# tail -f /var/log/maillog

または
# journalctl -u postfix -f

認証失敗が大量発生していないか確認します。

認証失敗ログの例

以下のようなログが出力されます。

authentication failed

大量に発生している場合は攻撃の可能性があります。

SMTP-AUTHを有効にする

まずSMTP認証を有効にします。

smtpd_sasl_auth_enable = yes

認証なし送信を防止できます。

現在では必須設定です。

強力なパスワードを利用する

最も基本的な対策です。

推奨される条件です。

  • 12文字以上
  • 英大文字
  • 英小文字
  • 数字
  • 記号

単純なパスワードは避けましょう。

パスワード使い回しを避ける

他サービスで漏洩した認証情報が悪用されることがあります。

メールアカウント専用のパスワードを利用しましょう。

TLS暗号化を利用する

認証情報の盗聴を防ぐためTLSを利用します。

smtpd_use_tls = yes

現在では必須の対策です。

STARTTLSを有効化する

587番ポートでの暗号化通信を利用します。

submission inet n - n - - smtpd

SMTP認証情報を保護できます。

Fail2banを導入する

SMTPサーバのブルートフォース対策として最も有効な方法の一つです。

Fail2banはログを監視し、認証失敗を繰り返すIPを自動的に遮断します。

Fail2banの動作イメージ

認証失敗
      ↓
Fail2ban検知
      ↓
規定回数超過
      ↓
IP遮断

自動で攻撃をブロックできます。

Fail2banの設定例

例えば以下のような設定です。

maxretry = 5
findtime = 600
bantime = 3600

10分以内に5回失敗すると1時間遮断します。

ファイアウォールで制御する

利用国が限定されている場合はアクセス制限も有効です。

不要な国からの接続を遮断できます。

企業環境で利用されることがあります。

接続数制限を設定する

大量接続を防止します。

smtpd_client_connection_count_limit = 20

同時接続数を制限できます。

接続頻度を制限する

短時間の連続接続を防ぎます。

smtpd_client_connection_rate_limit = 30

攻撃効率を低下させることができます。

送信数制限を設定する

万が一認証突破されても被害を抑えられます。

smtpd_client_message_rate_limit = 100

スパム送信対策として有効です。

メールキューを監視する

アカウント乗っ取り後はメールキューが急増することがあります。

# mailq

または
# postqueue -p

定期的に確認しましょう。

ブラックリスト登録を防ぐ

大量メール送信が発生すると送信元IPがブラックリストへ登録される可能性があります。

その結果、正規メールも届かなくなります。

早期発見が重要です。

ログ監視を自動化する

認証失敗回数の監視を行いましょう。

# grep authentication /var/log/maillog

監視システムと連携するとさらに効果的です。

多要素認証は利用できるか

一般的なSMTP-AUTHでは多要素認証を利用できない場合があります。

クラウドメールサービスではアプリパスワードやOAuth認証が利用されることがあります。

企業環境で推奨される対策

以下の組み合わせが推奨されます。

  • SMTP-AUTH
  • TLS
  • Fail2ban
  • 送信数制限
  • 接続数制限
  • ログ監視
  • 強力なパスワード

多層防御によって安全性を向上できます。

実務で最も効果的な対策

実務では以下の2つが特に重要です。

  1. 強力なパスワード
  2. Fail2ban

多くの攻撃はこの2つで大幅に防ぐことができます。

まとめ

SMTPサーバへのブルートフォース攻撃は非常に一般的な攻撃手法です。

攻撃に成功するとメールアカウントが乗っ取られ、スパムメール送信やフィッシング攻撃に悪用される可能性があります。

SMTP認証、TLS、Fail2ban、送信制限、ログ監視などを組み合わせることで被害を大幅に低減できます。

メールサーバを安全に運用するためには、ブルートフォース攻撃を前提とした対策を実施することが重要です。