WordPressで問い合わせフォームを設置する際によく利用されるプラグイン「Contact Form 7」。
問い合わせ内容をメールで受け取れるだけでなく、送信者に自動返信メールを送ることもできる便利なプラグインだ。
しかし最近、自分のメールアドレスの迷惑メールフォルダーに、Contact Form 7の送信控えを利用したと思われるスパムメールが数件入っていた。
実際にどれくらいの件数が送信されているのかは把握できていないが、以前にも見られた手口が再び使われている可能性がある。
こうしたスパムは、誰かが手作業で一つずつ問い合わせフォームを探しているとは限らない。プログラムを使って大量のWebサイトを調べ、悪用できるフォームを探している可能性がある。
今回は、Contact Form 7のメール機能がどのように悪用されるのか、放置するとどのような被害が考えられるのか、そして管理者ができる対策について整理する。
Contact Form 7の自動返信メールは便利な機能
Contact Form 7には、問い合わせ内容を管理者などに送信する「メール」と、追加のメールテンプレートである「メール (2)」が用意されている。
「メール (2)」は、問い合わせを送信した利用者への自動返信メールによく利用される。
例えば、問い合わせフォームから質問を送信すると、管理者に問い合わせ内容が届くと同時に、利用者にも「お問い合わせを受け付けました」という確認メールを送ることができる。
利用者に受付完了を知らせられるため、サイト運営者にとっても便利な機能だ。
しかし、メールの宛先などの設定によっては、この仕組みがスパムメールの送信に悪用される危険性がある。
送信控えを利用したスパムはどうやって送られるのか
問題になるのは、フォームに入力されたメールアドレスを、メールの送信先として利用するような設定だ。
例えば、自動返信メールの宛先に、フォームのメールアドレス欄に入力された値をそのまま指定している場合を考えてみよう。
通常は問い合わせをした本人に確認メールを送るための設定だが、悪意のある第三者がフォームを利用すれば、任意の宛先にメールを送信させるために悪用される可能性がある。
攻撃者が大量のメールアドレスを用意し、それらを宛先としてフォームから送信を繰り返せば、サイトのメール送信機能がスパム配信の経路になり得る。
この場合、攻撃者自身のメールサーバーではなく、悪用されたサイト側のメール送信環境が利用されることになる。
Contact Form 7の開発元も、メールの宛先(To)、CC、BCCにフォーム入力値を使用する設定について、十分なスパム対策がなければ悪用される危険性を警告している。
参考:Contact Form 7公式「安全でないメール設定」
どうやってサイトが狙われるのか
インターネット上のWebサイトを調べる作業は、プログラムによって自動化できる。
悪意のある第三者がプログラムを利用すれば、多数のWebサイトを巡回し、問い合わせフォームの有無や、悪用できる設定がないかを調べることが可能だ。
例えば、次のような流れが考えられる。
Webサイトを自動的に巡回する
プログラムが多数のWebサイトにアクセスし、問い合わせフォームを探す。
フォームの仕組みを調べる
フォームの実装やメール送信の挙動を確認し、悪用できる条件がないかを探す。
悪用できるフォームを見つける
メールの宛先をフォーム入力値から指定できるなど、危険な設定が残っていれば、スパム送信に利用される可能性がある。
自動処理で送信を繰り返す
条件に合うサイトが見つかれば、プログラムによってフォーム送信などを繰り返すことができる。
このような仕組みなら、攻撃者が一つずつサイトを手作業で調べる必要はない。大量のサイトを機械的に調査し、悪用できるサイトを探せる。
ただし、今回届いたスパムが実際にどのような方法で送信されたかは、メールのヘッダーやサーバーのアクセスログなどを確認しなければ特定できない。
放置されたWordPressサイトは何が危険なのか
WordPress本体やプラグインを長期間アップデートしていないサイトでは、既知の脆弱性が修正されずに残っている可能性がある。
また、問い合わせフォームの設定を見直さなければ、危険なメール設定がそのまま残り続けることもある。
自動化されたプログラムがWebサイトを調査している場合、管理者が長期間サイトを確認していなくても、問い合わせフォームが調査の対象になる可能性がある。
特に注意したいのは、次のようなサイトだ。
- WordPress本体やプラグインを長期間アップデートしていない
- 問い合わせフォームのメール設定を確認していない
- 自動返信メールを利用しているが、スパム対策を行っていない
- 不要になった問い合わせフォームを公開したままにしている
- 不審なメール送信やサーバーからの警告を確認していない
記事の更新頻度そのものが攻撃の原因になるわけではない。問題なのは、脆弱性や危険な設定が残っていることだ。
スパムを放置するとどうなる?
フォームが悪用された場合、繰り返しアクセスやメール送信が行われる可能性がある。
その結果、次のような被害が考えられる。
サーバーの負荷が増大する
短時間に大量のフォーム送信が行われれば、サーバーの処理負荷が増える可能性がある。
正規のメールが送信できなくなる
大量のメール送信によってサーバーの送信制限に達すると、管理者への問い合わせ通知など、正規のメールまで送信できなくなるおそれがある。
メールが迷惑メールとして扱われる
サイトのメール送信環境がスパム配信に利用されると、送信元の評価が低下し、正規のメールが迷惑メールに振り分けられたり、受信側から拒否されたりする可能性がある。
サーバー事業者との契約上の問題が発生する
大量のスパム送信によってサーバー事業者の設備やサービス運営に影響が及んだ場合、メール送信の制限やサービスの利用停止などの措置を受ける可能性がある。
契約内容によっては、事業者が被った損害などについて、契約者への補償請求が問題になることも考えられる。
また、第三者に実際の損害が発生した場合、管理者の管理状況や対応によっては、損害賠償責任が問題になる可能性もある。
ただし、第三者に悪用されたという事実だけで、管理者に直ちに損害賠償責任が生じるわけではない。実際の責任は、契約内容や具体的な状況によって異なる。
Contact Form 7でできるスパム対策
Contact Form 7を利用している場合、メール設定の確認に加え、フォームへのスパム送信を減らす対策も検討したい。
1. 自動返信メールを停止する
自動返信メールを利用していないのであれば、「メール (2)」を無効にすることが考えられる。
ただし、自動返信を停止しただけで、フォームのメール送信機能全体の悪用を防げるわけではない。メインの「メール」設定も確認する必要がある。
2. メールの宛先を確認する
メールの宛先(To)、CC、BCCに、フォーム利用者が入力したメールアドレスをそのまま指定していないかを確認する。
意図せず任意の宛先にメールを送信できる設定になっていれば、悪用される危険性がある。
3. 日本語を含まないメッセージを拒否する
日本語での問い合わせだけを受け付けているサイトなら、日本語を含まないメッセージを拒否する方法もあります。また、問い合わせフォームからURLを送る必要がなければ、URLを含むメッセージを拒否する対策も考えられます。
ただし、Contact Form 7の標準設定だけで、こうした条件を自由に設定できるわけではありません。実現するには、追加コードによるバリデーションや、対応するプラグインの導入が必要になる場合があります。
サイトの用途に合わせて入力条件を調整することで、スパム対策を強化できます。
4. URLを含むメッセージを拒否する
問い合わせ内容にURLを含める必要がないサイトでは、URLを含むメッセージを拒否する方法もある。
スパムメールや迷惑な問い合わせには、外部サイトへの誘導を目的としたURLが含まれることがあるためだ。
ただし、正規の問い合わせでもURLを記載するケースはある。問い合わせ内容にURLが必要なサイトでは、一律に拒否すると利便性が低下するため、運用に合わせて判断したい。
日本語の有無やURLの有無による判定は、スパムを減らすための補助的な対策として考えるのがよい。
5. reCAPTCHAやTurnstileなどを導入する
自動化されたプログラムによるフォーム送信を減らすため、CAPTCHAなどの仕組みを導入する方法もある。
代表的なものとして、GoogleのreCAPTCHAやCloudflare Turnstileが挙げられる。
これらは、アクセスやフォーム送信が人間によるものか、ボットによるものかを判定するための仕組みだ。
ただし、導入しただけで全てのスパムを防げるわけではない。サイトの構成や利用しているフォームに合わせて設定し、実際に機能しているかを確認する必要がある。
6. WordPress本体とプラグインを更新する
WordPress本体やContact Form 7などのプラグインは、更新状況を定期的に確認したい。
既知の脆弱性が修正されていない場合、攻撃に悪用される可能性があるためだ。
ただし、正規のメール送信機能を不適切な設定のまま利用している場合は、アップデートだけでは問題が解決しないこともある。メール設定の見直しと組み合わせることが重要だ。
7. サーバーのメール送信状況を確認する
スパムメールが届くようになった場合は、メール設定の確認に加えて、サーバー側のメール送信ログやアクセスログも確認したい。
心当たりのない宛先へのメールが大量に記録されていたり、短時間に送信量が急増していたりする場合は、フォームが悪用されている可能性がある。
状況によっては、フォームの一時停止やサーバー事業者への相談も必要になる。
便利な機能だからこそ、設定と管理を怠らない
Contact Form 7の自動返信メールは、問い合わせ対応を効率化する便利な機能だ。
しかし、メールの宛先などの設定によっては、第三者がその機能を悪用し、サイトをスパムメールの送信経路として利用する可能性がある。
自動化されたプログラムがWebサイトを調査している場合、管理者がサイトを確認していない間にも、フォームの調査や送信処理が繰り返されることが考えられる。
その結果、メール送信制限やサイト運営への影響だけでなく、サーバー事業者との契約上の問題や、損害賠償をめぐる問題に発展する可能性もある。
自動返信メールが不要であれば停止し、必要な場合は適切な設定とスパム対策を組み合わせる。さらに、WordPress本体やプラグインの更新を続け、異常なメール送信がないかを確認したい。
問い合わせフォームは、設置して終わりではない。便利な機能を安全に使い続けるためにも、定期的な確認と対策が必要だ。
参考資料













