【メモ】メール要件定義整理
はじめに(前提)
メールを扱うシステムの要件定義では、メールを「通知のための機能」として見るだけだと危険です。メールは同時に、なりすまし/フィッシング/情報漏えい(誤送信含む)/マルウェア侵入/踏み台化の攻撃経路にもなり得ます。
要件整理のステップ(全体像)
Step 0. メールの「使い方」を分類する
最初にユースケースを確定します。ここがズレると、以降の要件が全部ズレます。
| 区分 | 代表例 | 重点になりやすい論点 |
|---|---|---|
| A | 送信のみ(通知、OTP、請求書送付など) | 送信ドメイン保護、誤送信、踏み台化 |
| B | 受信のみ(問い合わせ窓口、添付受領など) | 偽装検知、添付/URL 対策、調査ログ |
| C | 送受信(チケット化、ワークフロー連携など) | 上記の両方+権限/連携の境界 |
| D | 本文/添付の保存(監査、証跡、検索) | 保管の権限・改ざん耐性・保持期間 |
Step 1. データとリスクを洗い出す(何が守る対象か)
メールで扱う「情報(データ)」を粒度を落として列挙します。
- 宛先(To/Cc/Bcc)
- 差出人(From、Return-Path 等)
- 件名/本文(個人情報・機密情報の有無)
- 添付(機密度が一段上がりやすい)
- メールヘッダ(トレース情報、認証結果)
- ログ/保管データ(メールそのもの、送信履歴)
次に「起きて困ること(リスク)」を言語化します。
- なりすましで社名・ドメインを悪用される(ブランド毀損)
- フィッシングで利用者が被害に遭う
- 誤送信/宛先ミスで情報漏えい
- 添付マルウェアで社内侵入
- メール基盤が踏み台化して大量送信される(レピュテーション悪化)
- 監査/調査の証跡が残らず、原因追跡できない
Step 2. 信頼境界と責任分界を確定する(どこまで自分の範囲か)
メールは外部事業者・外部環境が絡みます。境界(信頼境界)を明確にします。
- 自社システム(アプリ/バッチ/送信ロジック)
- 送信サービス(例:SES、SendGrid など)
- 受信ゲートウェイ(MTA、クラウドメール、メールセキュリティ製品)
- エンドユーザのメーラ(Outlook、Gmail 等)
- DNS(SPF/DKIM/DMARC は DNS に依存)123
これを決めると、次が決まります。
- 「どの設定を誰がやるか(RACI)」
- 障害/事故時に「どこから切り分けるか」
- 監査のときに「誰の証跡を見ればよいか」
Step 3. 機能要件をセキュリティ観点で分解する(脅威ごとに)
メール要件を、脅威に対応する観点へ分解すると漏れにくくなります。
- 送信元の正当性(なりすまし対策)
- 受信時の検証(偽装メールを見抜く)
- 内容の安全性(添付/URL、マルウェア)
- 宛先と誤送信(人為ミス対策)
- 通信の保護(暗号化)
- アカウント/権限(誰が送れるか)
- 監視と証跡(ログ、監査)
- 可用性と悪用対策(大量送信、DoS、スパム)
この分解を Step 0 のユースケース(A〜D)に当てはめ、必要な項目だけを確定させます。
Step 4. 必須/推奨/将来にランク付けして合意する
要件定義では、最初から完璧にしない判断もあります。だからこそ、優先度を明示します。
- 必須(リリースゲート)
- 推奨(短期改善)
- 将来(ロードマップ)
例:DMARC をいきなり reject にせず、まず可視化(レポート受領)から入る。43
Step 5. 受入条件(テスト観点)に落とす
「設定したつもり」を防ぐには、要件の時点で「どう確認するか」まで書きます。
- SPF/DKIM/DMARC が期待どおり評価されること(外部から検証)123
- DMARC 集計レポート(rua)を受領し、解析できること34
- 添付がブロック/隔離され、例外フローが回ること
- 誤送信対策(警告・承認・ディレイ送信等)が運用で機能すること
- ログから追跡(誰が/どこへ/何を)ができること
セキュリティ対策の内容(要件のひな形)
以下は「要件として書ける形」を意識したテンプレです(括弧内は非専門向け補足)。
A) 送信側の送信ドメイン保護要件(なりすまし対策)
狙い:自社ドメインを名乗る偽メールを減らす。
要件例
- SPF レコードを設定する(このドメインから送って良い送信元を DNS で宣言)1
- 送信メールに DKIM 署名を付与する(改ざん検知と責任主体の主張に利用)2
- DMARC を設定する(SPF/DKIM の結果と From 整合を条件に、受信側へ扱い方を宣言)35
- DMARC ポリシー(
p=none/quarantine/reject)を定義し、段階的に強化する計画を持つ34 - DMARC 集計レポート(rua)を受領し、定期的に送信元棚卸しを行う34
注意点(事故を減らす書き方)
B) 受信側の偽装メール検知要件
狙い:利用者が騙される確率を下げる。
- 受信時に SPF/DKIM/DMARC の評価結果を判定できること123
- DMARC 失敗時の扱い(拒否/隔離/注意表示)を定義する3
- なりすましが多いドメイン/自社ブランドに対する保護ルールを持つ(例:類似ドメイン対策、表示名ポリシー)
- 認証結果が含まれるヘッダ情報をログとして保持する(調査・証跡)3
C) 内容の安全性(添付/URL/マルウェア)
狙い:受信メールを入口とした侵入を減らす。
- 添付ファイルをウイルススキャンする(隔離・破棄・通知ルール含む)
- 危険な拡張子/実行形式/マクロ付き文書の扱い(拒否/隔離)を定義する
- URL の評価(フィッシング/マルウェア)を行う(URL 書き換え、クリック時検査等)
- サンドボックス(隔離環境)解析の要否を定義する
- 隔離/ブロック時の通知と、例外申請(業務都合の解除)フローを定義する
D) 誤送信対策(宛先ミス/情報漏えい)
狙い:人為ミスを前提に、漏えいを起こしにくくする。
- Bcc 強制、外部ドメイン宛の警告、承認フロー等のルールを定義する
- 機密ラベル(社外秘等)に応じて外部送信を制御できること
- 添付の自動暗号化/ダウンロードリンク化の要否を定義する
- 宛先候補の制御(オートコンプリート制限等)の要否を定義する
- 送信取り消し猶予(ディレイ送信)の要否を定義する
補足
ここは技術というより運用設計が支配的です。要件定義で決めないと、現場は後で揉めます。
E) 通信の保護(暗号化)
狙い:盗聴・改ざんの難易度を上げる。
- SMTP 通信を TLS で暗号化する(STARTTLS 等)6
- 受信側・中継でも TLS を必須化するか(強制範囲)を定義する7
- メール本文そのものの暗号化(S/MIME、OpenPGP 等)が必要かを要件化する(必要なら鍵配布・管理が主タスク)89
F) アカウント/権限
狙い:送信機能の悪用(踏み台化)を防ぐ。
- 送信 API キー/SMTP 資格情報の保管は秘密情報管理に統一する(リポジトリ直置き禁止等)
- 送信権限を最小化する(システムごとにキー分離、環境分離)
- 送信上限(レート制限)を設ける(誤作動・大量送信の抑止)
- テンプレート/差出人表示名の変更権限を制御する(フィッシング誘発を防ぐ)
G) 監視・証跡(ログ/監査)
狙い:事故時に追えること、平時に異常に気づけること。
- 送信ログ(いつ/誰が/どの宛先へ/どのテンプレートで)を保持する
- 受信側は認証評価結果(SPF/DKIM/DMARC)と隔離/ブロック理由を記録する3
- ログの保管期間、参照権限、改ざん耐性(監査で否認されない形)を定義する
- 異常検知(大量送信、バウンス急増、DMARC 失敗急増)をアラート化する4
H) 可用性と悪用対策
狙い:止まらない、悪用されない。
- 送信失敗時のリトライ方針、重複送信防止、キュー上限を定義する
- バウンス/苦情(complaint)処理を設計する(送信停止リスト等)
- ブラックリスト入りを防ぐ運用(送信品質)を定義する4
- BCP 観点で、送信サービス障害時の代替手段の要否を定義する
要件定義で使える最小チェックリスト
最低限これを埋めると、大事故が減ります。
- 送信か受信か、両方か(Step 0)
- 扱う情報の機密度(本文/添付)
- 送信ドメイン対策:SPF、DKIM 署名、DMARC(
p=とレポート運用)123 - 受信側の評価:SPF/DKIM/DMARC の扱い(拒否/隔離/警告)3
- 添付/URL 対策(スキャン、隔離)
- 誤送信対策(警告、承認、暗号化/リンク化)
- 認証情報管理と送信権限(キー分離、レート制限)
- ログと保管(監査、アラート、保管期間)
- 受入条件(どうテストするか)
要件の書き方のまとめ
- 「SPF/DKIM/DMARC を導入する」ではなく、合格条件/失敗時の扱い/誰がレポートを見て改善するかまで書く34
- 設定要件と運用要件を分けて書く(例:DMARC は設定だけでは価値が出にくい)3
- 責任分界(DNS、メール基盤、アプリ)を明確にする(事故時に揉めない)