メールヘッダインジェクション
当ページでは、「メールヘッダインジェクション」と呼ばれるサイバー攻撃の概要、攻撃手順やその被害の例、対策方法について記載しています。
メールヘッダインジェクションとはメールの構成とメールヘッダについて攻撃手順の例通常時のシステムの挙動攻撃例攻撃された場合の被害Webサイトが迷惑メールの送信に悪用される件名や本文の改竄が行われる対策方法メールヘッダにユーザの入力値を含めない入力値の検証を行う関連情報・参考情報
メールヘッダインジェクションとは
メールヘッダインジェクションとは、Webサイトのお問い合わせ画面などのメール送信機能でメールヘッダ(件名や宛先情報など)を指定できる場合、件名・メール送信元・メール送信先・本文を改変したり追加したりするサイバー攻撃。
改行コードやヌル文字を活用して攻撃する。
メールの構成とメールヘッダについて
Aさん([email protected])からBさん([email protected])へメールを送信した場合、本文データの前に「メールヘッダ」と呼ばれるメタ情報が付与されてデータが送受信される。
メールヘッダ内には以下のような情報が記録されている。
- 送信者のメールアドレス
- 宛先のメールアドレス
- メール送信日
- 件名
攻撃手順の例
ユーザが問い合わせページから質問を送信すると、Webサーバがユーザへ通知メールが送信するシステムを例に攻撃手順を示す。
通常時のシステムの挙動
まず、標的システムが通常時は以下の挙動をするものとする。
①ユーザはWebサイトから問い合わせを送信する。
②Webサーバは送信データを基にメールを作成し、ユーザへ送信する。
③ユーザはWebサイトからメールを受け取る
攻撃例
[email protected]宛てに件名と本文の内容を改竄したメールを送信する手順を示す。
①攻撃者は問い合わせフォームのメールアドレス欄に以下の値を入力して送信する。
※ 「%0d%0a」は改行コード、「%00」はヌル文字(メール文の終わり)を示す。
②Webサーバは送信データを基にメールを作成し、ユーザへ送信する。
③ユーザはWebサイトから件名と本文が改竄されたメールを受け取る。
攻撃された場合の被害
Webサイトが迷惑メールの送信に悪用される
攻撃のターゲットとされたWebサイトは迷惑メールの送信元となってしまうため、風評被害を被る可能性がある。
件名や本文の改竄が行われる
Webサイト側が指定している件名や本文を改竄し、全く別の内容のメールを送信される可能性がある。
また、メール送信先を「CC: 」や「BCC: 」で追加し、多人数に迷惑メールを送信される可能性もある。
対策方法
メールヘッダにユーザの入力値を含めない
可能な場合はメールヘッダにユーザからの入力値を含めず、メールヘッダは固定値とすることが好ましい。
入力値の検証を行う
メールヘッダにユーザからの入力値を含める必要がある場合は、入力値検証をする。
改行コードが含まれる場合は削除して出力するか、エラーとして処理を実行しない仕様とする。
また、入力値チェック機能のあるフレームワークの関数を利用するのが良い。
関連情報・参考情報
その他のサイバー攻撃・セキュリティ関連記事も良かったらご参照ください!