問い合わせフォームを悪用した攻撃が増えているようです

webサイトに設置された「問い合わせフォーム」を悪用した攻撃が増えているようです。

以前から問い合わせフォームにフィッシングサイトなどのURLを記載して投稿したり、機械的に投稿を繰り返してサイト管理者に通知メールを大量に送りつける嫌がらせはありましたので手法としては特に新しいものでもありません。

しかし今回話題にしたい件は正常な処理の流れの中で発生するもので、対策しないと確実に影響が出るので注意が必要だと思います。

通知メールを悪用

今回問題になっているのは問い合わせフォームから問い合わせをした際に、問い合わせた人に送られる通知メールを悪用した手法です。
「問い合わせを受け付けました」的な文言で送られるメールですね。
既にネット上にどういうやり方なのかは載っているので隠すことでもないのですが、真似をする人が現れると厄介なので詳細は割愛します。
問い合わせフォームの脆弱性を狙ったとかではなく、普通の処理の流れの中で迷惑メールの送り手になってしまう点がサイト管理者としては頭の痛いところです。

対策としてできること

前述の通り、処理の流れとしては正常なので通知メールを送らないようにするしか対策はないと思います。
言うまでもなく本当に問い合わせが必要で投稿してきた方にも送られなくなってしまいますが、そこはフォーム画面もしくは投稿後の画面でフォローするしかないでしょう。
「現在、投稿受付のメールは送信しておりません」的な…。

THE THORの場合

WordPressに問い合わせフォームの機能は備わっていないのですが、プラグインがいくつかあり簡単に実装することができます。
また、テーマによっては独自に実装しているものもあり、私が使っている「THE THOR」というテーマはこれに該当します。

THE THORの設定画面を見ても投稿後の通知メールに関する設定はなく、無条件で送信されてしまうようです。
ですからプログラムを編集して送信しないようにします。

THE THORの機能で問い合わせフォームを作った場合、その動作を担うのは「page-contact.php」です。
子テーマのディレクトリの中にこれがない場合は親テーマのディレクトリからコピーしてきてください。
そもそも子テーマのディレクトリがない場合は親テーマのディレクトリの中のファイルを弄ることになりますが、テーマのアップデートで元に戻ってしまうのでできれば子テーマを作ることをオススメします。

page-contact.phpの80行目あたりからがメール送信に関わる処理になります。
(バージョンによって違うと思いますので行番号はあくまでも参考程度で…)
「mb_send_mail」で検索すると2箇所引っかかるのですが、後の記述が問い合わせをした方に対するメールの送信になります。
その行をコメントアウトすれば投稿後の通知メールは送信されなくなります。


まとめ

すごく消極的な対応ですが、現状はこれが一番いいのかなと思います。
意図していないところで加害者にならないためにも是非対策されることをオススメします。