レンタルサーバーやSSL関係のお役立ちコラム

さくらのホームページ教室

Webサイトのフォームで悪用被害急増中!加害者にならないためのフォーム設置講座

商用のWebサイトでは欠かすことのできない「お問い合わせフォーム」。顧客との重要な接点ですので設置しているWebサイトは多いはず。今、そんなお問い合わせフォームが狙われています。「え、WordPressプラグイン最新にしてればいいんじゃないの?」と思われるかもしれませんが、今回は違いますよ!

急増しているお問い合わせフォーム攻撃の手口

昨今、Webサイトのお問い合わせフォームを狙った大量メール送信攻撃が急増しています。手口は非常に古典的で、フォームから問い合わせをした際に送信される「お問い合わせありがとうございました」メールを悪用します。

  1. お問い合わせした人のメールアドレス欄に、スパムメールを送りたいメールアドレスを入力
  2. お問い合わせ内容にフィッシングサイトや広告のリンクを入力
  3. 送信ボタンをクリック
  4. お問い合わせありがとうございました!の確認メールが1で入力したアドレスに送信される。問い合わせ内容も含んだ自動返信が送られるので、結果的に広告メールを他人のサーバーから送信できる

これをプログラムで何千、何万件と自動実行します。何が起きるかと言うと、全く関係ないフォームが置いてあるだけのサイトのサーバーから、任意のメールアドレスに大量のメールを送信することができるようになるのです。

もちろん、フィッシングサイトへのリンクが含まれている場合はクレジットカード番号や銀行口座番号の不正取得に加担してしまうことになります。フィッシングサイト以外でも、偽ブランド品の広告メール送信等の犯罪に利用されるケースもあります。

Webサイト運営者が今すぐできること

さくらのレンタルサーバでもこの手口を使ったメール大量送信被害が増えています。一番の特徴は、脆弱性などを利用したものではなくお問い合わせフォームの「自動返信機能」を悪用しているのがポイントです。つまり「自動返信機能をOFFにする」ことが究極の対策です。

現在、このお問い合わせフォームスパムが行われている約9割(当社調べ)のサイトでWordPressのプラグインであるContact Form 7が使用されています。ただ、誤解してはいけないのが、Contact Form 7が悪いわけではなく、Contact Form 7のシェアが高いことで被害にあう確率が高くなっているだけであることは知っておく必要があります。こうしたセキュリティリスクを扱う記事で名前を挙げると、「Contact Form 7は危険!」と思う方もいらっしゃるかもしれませんがトップシェアのオープンソースプログラムは利用者も多く、それだけ脆弱性の検出も早く、迅速にメンテナンスが行われます。変に独自実装でフォームを作るよりは、メジャーなプラグインを使った方が確実に安心なのです。

Contact Form 7ではこの自動返信機能は初期設定でOFFになっていますので、OFFのまま使うのが良いでしょう。どうしても自動返信機能を使いたい場合は、「reCAPTCHA(リキャプチャ)を使う」ことが対策となります。「えー、あの信号機選ぶやつでしょ?」と思った方もいらっしゃるかもしれません。

reCAPTCHAイメージ画像
※画像はイメージです

最新版のreCAPTCHA v3は信号機を毎回選ぶ必要はなくなっていますのでご安心ください。Contact Form 7におけるreCAPTCHAの設定方法はこちらの記事で詳しく紹介しています。

今、お問い合わせフォーム(メールフォーム)が危ない! 不正アクセスの増加と対処方法 | さくらのナレッジ

reCAPTCHAは、フォームスパムを送信するプログラムからアクセスがあった場合に、こういった画像の一部を選択させるUIを操作させることによって人間が送信しているかを確認し、プログラムとみなした場合にフォーム投稿をさせなくするのが目的です。v3では機械学習により怪しい挙動が検出された場合にデータを送信させないようになっています。Contact Form 7の場合、Googleアカウントがあれば比較的簡単に設定できるようになっており、自動返信機能を使っていなくてもreCAPTCHAを設定しておけばフォームへのBotの攻撃を防ぐことができます。

自分のサイトは関係ないと思わない

脆弱性などのセキュリティ対応をおすすめする際に、必ず「私のサイトは個人サイトだから」「うちの会社程度の規模だったら大丈夫」という方がいらっしゃるのですが、フォームが設置されていればサイトの大小、有名無名は一切関係ありません。脆弱なフォームがあれば、高い確率で攻撃されると思って間違いありません。

脆弱なフォームは攻撃され、フィッシングサイトへの誘導メールや偽ブランド品の広告など、犯罪行為に利用される可能性があることを認識して対策を取る必要があります。

2020年最新のお問い合わせフォーム事情

お問い合わせフォームについては、WordPressプラグインのContact Form 7を利用するのが一般的でしたが、逆にGoogle フォームやMicrosoft Formsを利用してしまうのも手段の1つです。フォームの実装においてはクロスサイトスクリプティング(XSS)やクロスサイトリクエストフォージェリ(CSRF)といった脆弱性対応が必要になりますが、GoogleやMicrosoftでやってくれるので安心感があります。また、自動的にExcelのような表に問い合わせ内容をまとめてくれるので非常に便利です。さくらのレンタルサーバでも、お客様アンケートなどを実施する際にMicrosoft Formsを利用しています。

こういったフォームサービスの難点は、Google アカウントやOffice365の契約が必要だったりする上に、フォームのURLが自社の独自ドメインと異なってしまうという点があります。例えばMicrosoft Formsの問い合わせフォームへのリンクを www.sakura.ne.jp に設置したとしても、フォームのURLはMicrosoftのものになることですね。フォームのタイトルにロゴを埋め込んだり、ある程度のデザイン編集をしたりすることはできるので違和感を減らすことはできます。これを許容できるのであれば、こういったフォームサービスを使うのが一番のおすすめです。

どうしてもフォームURLを自社ドメインにしたい場合であれば、WordPressならContact Form 7等プラグインを利用するのがおすすめです。脆弱性対応に自信のない方は絶対にHTMLのフォームタグ等を使って独自実装をしないでください。PHP等のサンプルスクリプトをWebサイトで拾ってくるのもあまりおすすめできません。独自実装や拾ってきたサンプルをそのまま使うと、実装後に脆弱性が見つかった場合の対応など運用が格段に面倒になりますが、プラグインであれば作者の方が対応しているので安心です。

Contact Form 7を利用する場合、reCAPTCHAの設定と、自動返信機能を使わない設定にしておくと非常に安心です。また、Contact Form 7を常に最新版に保つことも忘れないでください。

今回は最近のお問合せフォームへの攻撃を例に挙げて、最新Webサイトフォーム事情をご紹介しました。自分のサイトやクライアントのサイトでお問合せフォームを設置している場合は今一度、設定を見直してみることをおすすめします。

Promotion

執筆 谷口 元紀

さくらインターネット大阪本社勤務。さくらのレンタルサーバ、SSL/ドメイン、CDNのサービス企画を担当しつつライター、イベントでのスピーカーなども兼務。