目次
急増しているお問い合わせフォーム攻撃の手口
昨今、Webサイトのお問い合わせフォームを狙った大量メール送信攻撃が急増しています。手口は非常に古典的で、フォームから問い合わせをした際に送信される「お問い合わせありがとうございました」メールを悪用します。
- お問い合わせした人のメールアドレス欄に、スパムメールを送りたいメールアドレスを入力
- お問い合わせ内容にフィッシングサイトや広告のリンクを入力
- 送信ボタンをクリック
- お問い合わせありがとうございました!の確認メールが1で入力したアドレスに送信される。問い合わせ内容も含んだ自動返信が送られるので、結果的に広告メールを他人のサーバーから送信できる
これをプログラムで何千、何万件と自動実行します。何が起きるかと言うと、全く関係ないフォームが置いてあるだけのサイトのサーバーから、任意のメールアドレスに大量のメールを送信することができるようになるのです。
もちろん、フィッシングサイトへのリンクが含まれている場合はクレジットカード番号や銀行口座番号の不正取得に加担してしまうことになります。フィッシングサイト以外でも、偽ブランド品の広告メール送信等の犯罪に利用されるケースもあります。
Webサイト運営者が今すぐできること
さくらのレンタルサーバでもこの手口を使ったメール大量送信被害が増えています。一番の特徴は、脆弱性などを利用したものではなくお問い合わせフォームの「自動返信機能」を悪用しているのがポイントです。つまり「自動返信機能をOFFにする」ことが究極の対策です。
現在、このお問い合わせフォームスパムが行われている約9割(当社調べ)のサイトでWordPressのプラグインであるContact Form 7が使用されています。ただ、誤解してはいけないのが、Contact Form 7が悪いわけではなく、Contact Form 7のシェアが高いことで被害にあう確率が高くなっているだけであることは知っておく必要があります。こうしたセキュリティリスクを扱う記事で名前を挙げると、「Contact Form 7は危険!」と思う方もいらっしゃるかもしれませんがトップシェアのオープンソースプログラムは利用者も多いので、それだけ脆弱性の検出も早く迅速にメンテナンスが行われます。変に独自実装でフォームを作るよりは、メジャーなプラグインを使った方が確実に安心なのです。
Contact Form 7ではこの自動返信機能は初期設定でOFFになっていますので、OFFのまま使うのが良いでしょう。以前までは、どうしても自動返信機能を使いたい場合は、「reCAPTCHA(リキャプチャ)を使う」ことが対策となるとお伝えしてきました。下の画像のような「信号機」を画像の中から選択するものや、
最新版のreCAPTCHA v3は信号機を毎回選ぶ必要はなくなっているものもあります。Contact Form 7におけるreCAPTCHAの設定方法はこちらの記事で詳しく紹介しています。
今、お問い合わせフォーム(メールフォーム)が危ない! 不正アクセスの増加と対処方法 | さくらのナレッジ
ただ、2023年現在このreCAPTCHAを突破するボットが出現して猛威を振るっていることもあり、お問い合わせフォーム実装時の推奨設定はフォーム投稿内容を転載した「お問い合わせありがとうございました。投稿内容は〜」メールを送信しない、もしくは単純な「ありがとうございました」の固定文言のみを送信する、というものになります。これまではメールを返信するのが一般的だったため、不安に思う方もいらっしゃるかもしれません。お問い合わせフォームには「セキュリティを強化するために自動返信メールは送信しておりません。お返事までしばらくお待ちください」といったメッセージを追記しておくのも良いでしょう。
自分のサイトは関係ないと思わない
脆弱性などのセキュリティ対応をおすすめする際に、必ず「私のサイトは個人サイトだから」「うちの会社程度の規模だったら大丈夫」という方がいらっしゃるのですが、フォームが設置されていればサイトの大小、有名無名は一切関係ありません。脆弱なフォームがあれば、高い確率で攻撃されると思って間違いありません。
脆弱なフォームは攻撃され、フィッシングサイトへの誘導メールや偽ブランド品の広告など、犯罪行為に利用される可能性があることを認識して対策を取る必要があります。
2023年最新のお問い合わせフォーム事情
お問い合わせフォームについては、WordPressプラグインのContact Form 7を利用するのが一般的でしたが、Google フォームやMicrosoft Formsを利用してしまうのも手段の1つです。フォームの実装においてはクロスサイトスクリプティング(XSS)やクロスサイトリクエストフォージェリ(CSRF)といった脆弱性対応が必要になりますが、GoogleやMicrosoftでやってくれるので安心感があります。また、自動的にExcelのような表に問い合わせ内容をまとめてくれるので非常に便利です。さくらのレンタルサーバでも、お客様アンケートなどを実施する際にMicrosoft Formsを利用しています。
こういったフォームサービスの難点は、Google アカウントやOffice365の契約が必要だったりする上に、フォームのURLが自社の独自ドメインと異なってしまうという点があります。例えばMicrosoft Formsの問い合わせフォームへのリンクを rs.sakura.ad.jp に設置したとしても、フォームのURLはMicrosoftのものになることですね。フォームのタイトルにロゴを埋め込んだり、ある程度のデザイン編集をしたりすることはできるので違和感を減らすことはできます。これを許容できるのであれば、こういったフォームサービスを使うのが一番のおすすめです。
どうしてもフォームURLを自社ドメインにしたい場合であれば、WordPressならContact Form 7等プラグインを利用するのがおすすめです。脆弱性対応を完璧にできる自信のない方は絶対にHTMLのフォームタグ等を使って独自実装をしないでください。PHP等のサンプルスクリプトをWebサイトで拾ってくるのもあまりおすすめできません。独自実装や拾ってきたサンプルをそのまま使うと、実装後に脆弱性が見つかった場合の対応など運用が格段に面倒になりますが、プラグインであれば作者の方が対応しているので安心です。
Contact Form 7を利用する場合、自動返信機能を使わない設定にしておくと非常に安心です。また、Contact Form 7を常に最新版に保つことも忘れないでください。
今回は最近のお問合せフォームへの攻撃を例に挙げて、最新Webサイトフォーム事情をご紹介しました。自分のサイトやクライアントのサイトでお問合せフォームを設置している場合は今一度、設定を見直してみることをおすすめします。