Python転職初心者向けエンジニアリングブログ

Pythonに魅了されたあなたへ。エンジニアリングの扉を開く転職初心者向けのブログへようこそ。このブログでは、Pythonの奥深さに迫りながら、エンジニアリングへの転職に役立つ情報を提供しています。未経験者から始めるPythonエンジニアリングの世界への一歩を踏み出すためのガイダンス、ベストプラクティス、そして成功事例など、初心者の方でもわかりやすいコンテンツをお届けします。

情報処理安全確保支援士試験 令和元年秋午後1問1の問題解説

全体像(舞台設定)

  • N社(従業員500名)のメール基盤が題材。DMZに「外部DNSサーバ」「外部メールサーバ」、社内に「内部DNS」「内部メールサーバ」がある一般的構成です。社外とのメールは外部メールサーバが受け持ち、公開DNSは n-sha.co.jp のMXとそのAレコード(mail.n-sha.co.jp → x1.y1.z1.1)を正しく引かせるよう設定済みです。ここまでが“現状のメール到達の仕組み”を描いています。

送信者アドレスの2種類(用語の整理)

  • メールの“送信者アドレス”には2系統あります。

    • Envelope-FROM:SMTPのMAIL FROMで宣言され、バウンス(不達通知)の宛先になる。

    • Header-FROM:メールヘッダ(From:)に載る見た目の差出人。

  • N社のPCから送る通常メールでは両方とも“自分の社内メールアドレス”が入る前提です。ここを分けておくと、後段のSPF/DMARCの話が理解しやすくなります。

なぜ今これをやるのか(背景)

  • 同業界で“なりすましメール”被害が出たため、業界団体から送信ドメイン認証(SPFDKIM・DMARC)導入の働きかけ。N社でも情報システム部が導入を検討する、という流れです。

2つの攻撃シナリオ(図3)

  • 攻撃1:取引先ドメインのアドレスを詐称し、攻撃者サーバからN社へ送る。

  • 攻撃2:N社ドメインのアドレスを詐称し、攻撃者サーバから“取引先”へ送る。
    → どちらも“送信者表示の詐称”が本質で、これに各技術(SPF/DKIM/DMARC)がどこまで効くかを整理させる狙いです。

SPF(Sender Policy Framework)の要点

  • 何をする技術?
    送信側ドメインDNSに「このドメイン名を名乗ってSMTP接続してよい送信元IP」をTXTレコードで宣言。受信側はSMTP接続元IPと照合して“詐称か否か”を判断します(図4の v=spf1 … -all)。

  • 表1の読み方(効果判定)
    「送信側(外部DNS)がSPFを公開しているか」「受信側メールサーバがSPF検証するか」「(攻撃2では)取引先側の設定・検証はどうか」を組み合わせ、“○/×”で詐称を見抜けるかを比べます。SPFは“Envelope-FROMのドメインと接続元IPの対応”を見る技術なので、DNS公開と受信側検証の双方が要ります。

  • 注意点(転送問題)
    途中の転送サーバがEnvelope-FROMを変えずにリレーすると、最終受信側から見た「接続元IP」が“元の送信側で宣言したIP”と一致しなくなり、SPFが失敗し得ます(本文の下線①の趣旨)。

DKIMDomainKeys Identified Mail)の要点

  • 何をする技術?
    送信サーバが“本文+ヘッダ”に対するディジタル署名を付与(DKIM-Signatureヘッダ)。受信側は d= で示されたドメインDNSから公開鍵を取得し、署名を検証します(図5・図6のシーケンス)。

  • どこが強い?
    途中で転送されても、署名と署名対象データが改変されなければ検証OK。SPFの“転送で壊れやすい”弱点を補完できます。さらに“正当性”だけでなく「本文・ヘッダの改ざん有無」も確認できる点がポイント(設問でも問われる観点)。

DMARC(Domain-based Message Authentication, Reporting, and Conformance)の要点

  • 何をする技術?
    受信側に対し、“送信側が望む取扱いポリシー”と“判定の整合条件(アライメント)”をDNSのTXTで表明します。主なタグ:

    • p(必須):none / quarantine / reject(失敗時に何をするか)

    • aspf / adkim:SPFDKIMの“アライメント”基準(r=組織ドメイン一致、s=完全一致)

    • rua:集計レポート宛先
      ここを理解すると、「SPFDKIMの単独結果」ではなく「DMARCの最終判定(+整合条件)」が配信可否に効く仕組みが見えます。

ニュースレター配信の新シナリオ(外部サービス利用)

  • 営業部がX社のクラウド配信を利用。

    • 配信自体は X社のサーバ(mail.x-sha.co.jp/x2.y2.z2.1)から行う。

    • Header-FROM は N社のドメイン(例:letter@n-sha.co.jp)。

    • Envelope-FROM は N社サブドメイン a-sub.n-sha.co.jp に設定(例:letter@a-sub.n-sha.co.jp)。

    • N社の公開DNS側で a-sub にMXやSPF、(省略記載だが)DKIM/DMARCも“適切に”追加する、という具体的運用が登場します(図7、表3)。
      → 外部配信サービスを安全に“正規のN社メール”として扱わせるための、DNS側の下準備(SPFDKIM鍵公開・DMARC方針)が学習ポイントです。

設問が何を測るか(道筋のガイド)

  • 設問1:SMTPの基本用語(a:MAIL FROMに対応する語)で、Envelope-FROMの正体を言えるか。

  • 設問2:
    (1) 表1の“○/×”を論理的に埋め、SPFの到達性・検証可否を判断できるか。
    (2) SPFTXTの具体記述(ip4:で許可すべき送信元)を読み解けるか。
    (3) 転送でSPFが失敗する理由を、仕組みに即して簡潔に説明できるか。
    (4) DKIM検証で“正当性以外に確認できること”(改ざん検出)を言語化できるか。

  • 設問3:外部配信(X社)を踏まえたDNSレコードの具体値(MX先/SPF許可IP)と、DMARCのポリシー・アライメント設定を正しく選べるか。

  • 設問4:SPF/DKIM/DMARCの“守備範囲外”を突くなりすまし手口(見かけが似た別ドメイン等)を、50字以内で具体に表現できるか。

この問題の“狙い”(公式の出題趣旨の要約)

  • 送信ドメイン認証(SPFDKIM・DMARC)の基礎と、与えられた環境にそれらを“適切に適用”する力を問う問題です。DNSSMTPの基本、3技術の相互補完、外部配信サービス利用時の正しいDNS公開(サブドメイン活用)とDMARC方針設定――これらをケースに当てはめて判断できるかが鍵になります。