IPスプーフィングと送信ドメイン偽装について

Lemさん  
(No.1)
H26 秋 午後Ⅰ 問3でこんな発言がありました(K部長というお偉いさんのお言葉)
「送信者メールアドレスのドメインが当社のものに偽装されていた場合は、受信者は開いてしまう可能性が高い」

1.ここでいう、送信者メールアドレスのドメインというのは、Header Fromに表示されるドメインのことであっておりますでしょうか?

2.そもそもドメインの偽装というのは可能なのですか?たとえば、sc-siken.comというドメインが既に存在しているのに、第三者が自分のドメインはsc-siken.comであると詐称することは可能なのですか?

3.※設問1の(2)によると、「送信元が当社のドメインであれば拒否し、メールサーバZのIPアドレスであれば許可するようにしよう」という対処が正解のようですが、攻撃者がメールサーバZのIPアドレスに偽装してメールを送信してきたら…?それってあまり効果がないんじゃない?と思いました。
IPスプーフィングを連想したのですが、IPスプーフィングは『実際にそのIPになる』のではなく、あくまで自分はXXです!(だから応答パケットはXXに送ってね、等と他の攻撃に発展させる)と詐称することなのでしょうか?
2022.03.21 00:13
pixさん 
SC ダイヤモンドマイスター
(No.2)
>1.ここでいう、送信者メールアドレスのドメインというのは、Header Fromに
>表示されるドメインのことであっておりますでしょうか?

SPF,DKIMといった技術はRFCに世界共通仕様として定義されているので、厳密に
動作がきまっています。
一方、この外部メールサーバは商用の製品を利用していると思われます。
フィルタ機能についても何を参照するかは製品の作りによって変わります。
望む機能や文脈から推測するにフィルタリング機能で検査するのは
・ヘッダFROM:必須
・エンベロープFROM:多分するだろう
位のイメージになると思われます。

>2.そもそもドメインの偽装というのは可能なのですか?たとえば、
>sc-siken.comというドメインが既に存在しているのに、第三者が自分のドメインは
>sc-siken.comであると詐称することは可能なのですか?

ドメインを詐称という大げさなものではなく、メールアドレスの'@'の後ろの
ドメイン部分に嘘を設定するという意味です。
SPF,DKIMで送信ドメイン認証されなければばれないです。

>IPスプーフィングを連想したのですが、IPスプーフィングは
>『実際にそのIPになる』のではなく、あくまで自分はXXです!
>(だから応答パケットはXXに送ってね、等と他の攻撃に発展させる)と
>詐称することなのでしょうか?

IPスプーフィングはUDPのように接続時にハンドシェイクなしで
直接送信するプロトコルなら有効です。
TCPは接続時に3ウェイハンドシェイクを行うので、IPを偽装していると
3ウェイハンドシェイクの段階で失敗します。
SMTPはTCP上で動作しますのでIPアドレスの偽装はほぼ不可能です。
2022.03.21 00:56
Lemさん  
(No.3)
この投稿は投稿者により削除されました。(2022.03.21 01:17)
2022.03.21 01:17
Lemさん  
(No.4)
pixさん
3点ともお答えいただき、ありがとうございます。

>ドメインを詐称という大げさなものではなく、メールアドレスの'@'の後ろの
>ドメイン部分に嘘を設定するという意味です。
ドメインという単語を見て、"URLに含まれる方のドメイン"をイメージしていたのですが、
そっちではなく、"メールアドレスのドメイン"のことだったんですね。
Q1.両者は別物として、わけて考えるべきですか?

>TCPは接続時に3ウェイハンドシェイクを行うので、IPを偽装していると
>3ウェイハンドシェイクの段階で失敗します。
攻撃者は「SYN+ACK」を受け取れない(=応答確認番号がわからない)から、
ACK(シーケンス番号を設定するために応答確認番号が必要!)で接続を確立できないということですね。

追加で質問させていただきたいのですが、E社には
DMZに外部メールサーバ、外部DNSサーバ、プロキシサーバがあるとします。
そして、A-LANにはPC1とPC2とPC3があるとします。
Q2.この場合、外部メールサーバと外部DNSサーバは同じドメインになるのでしょうか?
(Q2がYesなら)Q3.外部メールサーバとPC1は同じドメインになるのでしょうか?
(Q2がYesなら)Q4.外部メールサーバと外部DNSサーバのIPアドレスは異なりますか?

ドメインについての知識を補強したいので、質問攻めになってしまい恐縮ですが
何卒分かる範囲でお答えいただけますと幸いです。
2022.03.21 01:17
pixさん 
SC ダイヤモンドマイスター
(No.5)
>ドメインという単語を見て、"URLに含まれる方のドメイン"をイメージしていたのですが、
>そっちではなく、"メールアドレスのドメイン"のことだったんですね。
>両者は別物として、わけて考えるべきですか?

ドメインはざっくりいうと、「所属」程度の意味です。
基本的にどちらも一緒です。

・メールアドレスでは"@"の右側
・URLは構成要素が複雑で
URL:https://www.abc.com:443/index.html
    オリジン:https://www.abc.com
        スキーム:https://
        FQDN:www.abc.com
            ホスト名:www
            ドメイン:abc.com
        ポート:443
    パス:/index.html
となり、FQDNのホスト名を抜いた部分になります。
2022.03.21 01:29
Lemさん  
(No.6)
pixさん、ありがとうございます。
URLの各部位について理解することができました。
たとえば、FQDNがwww.info.abc.comで、ホスト名がwww、ドメインがabc.comなら
ドメインの"前にある"infoがサブドメインとなることかと思います。
こうして記述してみて、自分がドメインとサブドメインをわけて考えていることに気づきました。
しかし正しくは、サブドメインもドメインの中の一部(内包関係にある)でしょうか?

とても疑問に思っていることがあるのですが、エンベロープFROMに記載されているのは
FQDNの場合もあるし、ホスト名を除いた、つまりドメインだけの場合もありますよね?
例えば、『A社がB社ドメインからのメールを受信した場合』、
送信ドメイン認証のためには、B社の(DMZに設置されている)外部DNSサーバ(B-DNS)に
問い合わせをする必要がありますよね。
私の認識では以下の通りです。
(間違えていたり、言っていることがおかしいと感じれば私が誤った理解をしている可能性があるので、ご指摘をお願いいたします)
1.B-DNSにTXTレコードを要求するにあたって、B-DNSのIPアドレスを知っている必要はない。
2.B-DNSのIPアドレスを知りたければ、B-DNSに問い合わせることで知ることができる。
3.B社ドメインがわかっていれば、B社DMZにある外部メールサーバのIPアドレスもB-DNSに問い合わせて知ることができる。
4.B社外部メールサーバとB-DNSに割り当てられているIPアドレスは別である。

以上、何卒よろしくお願いいたします。
2022.03.21 10:56
pixさん 
SC ダイヤモンドマイスター
(No.7)
度々の長文失礼いたします。

>しかし正しくは、サブドメインもドメインの中の一部(内包関係にある)
>でしょうか?

このあたりは定義というか文脈によって変わると思います。
そういった意味ではドメインの分け方の考え方はURLとDNSで
若干ニュアンスが違う場合があります。
サブドメインもドメインに含むという認識良いと思います。

サブドメインとドメインの違いですが、
私の認識だと「jp」ドメインを例に挙げると、
ドメイン:JPRS(レジストラ)で管理されているもの
サブドメイン:自身で管理しているもの
と無意識に使い分けていると思います。

>とても疑問に思っていることがあるのですが、エンベロープFROMに
>記載されているのはFQDNの場合もあるし、ホスト名を除いた、
>つまりドメインだけの場合もありますよね?

メールアドレスに使用するのは原則、ドメインです。
FQDN(メールサーバ)を使用するのはいろいろと不都合があります。


>1.B-DNSにTXTレコードを要求するにあたって、B-DNSのIPアドレスを
  知っている必要はない。

はい。

>2.B-DNSのIPアドレスを知りたければ、B-DNSに問い合わせることで
  知ることができる。

ここが違います。
IPアドレスが解らないのにB-DNSへ問い合わせることはできません。
ドメインがB.comの場合、B社のB-DNSサーバのアドレスは.comを管理する
DNSサーバに記述されています。
.comのDNSサーバのアドレスは"."を管理するルートDNSサーバに登録
されています。
ルートDNSサーバは世界に13台あり、ルートDNSサーバのIPアドレスは
DNSサーバ内に保持されているルートヒントファイル内に記述されています。

>3.B社ドメインがわかっていれば、B社DMZにある外部メールサーバの
  IPアドレスもB-DNSに問い合わせて知ることができる。

MXレコードの認識が曖昧のようです。
通常メールアドレスの'@'の右側はドメインを記述します。
ドメインとメールサーバが以下の場合、
ドメイン:B.com
メールサーバ:mail.B.com

メールを送るときは、
i. メールのドメインが'B.com'なのでB-DNSサーバへ
  MXレコードの問い合わせを行う。
  MXレコードの問い合わせとは'B.com'ドメインで利用する
  メールサーバのFQDNは何かを聞きに行く問い合わせです。
  この結果、メールサーバのFQDNが'mail.B.com'と返ってくる。
ii.'mail.B.com'が解ったがIPアドレスが不明なので
  再度B-DNSサーバへ'mail.B.com'のIPアドレスを知るために
  Aレコードの問い合わせを行う。
iii.最終的に'mail.B.com'のIPアドレスが判明する。

もしメールアドレスの'@'の右側にメールサーバのFQDNを記述していると
フローがかわります。
i.'mail.B.com'をドメインとみなし、MXレコードを問い合わせにいくが、
  'mail.B.com'はドメインではないので、存在しないため失敗する。
ii.MXレコードの問い合わせが失敗した場合、'mail.B.com'はホスト名で
  あるとみなし、'B.com'のB-DNSサーバへ'mail.B.com'のIPアドレスを
  問い合わせに行き、IPアドレスが判明する。

このようにMXレコードの問い合わせが失敗したときにドメインをFQDNと
みなす動作が発生するのですが、送信元メールサーバの仕様によっては
MXレコードの問い合わせが失敗した場合、配信不能とみなし配信を
やめるケースもあるようです。
これを踏まえると
・メールアドレスの'@'の右側にはメールサーバのFQDNを指定しない
・DNSサーバには確実にMXレコードを記述する
そうしないと、原因不明の配送不能が発生することになります。

4.B社外部メールサーバとB-DNSに割り当てられているIPアドレスは別である。

はい。例を挙げると
ドメイン:B.com
DNSサーバ:dns.B.com (IPアドレス:x1.y1.z1.1)
メールサーバ:mail.B.com (IPアドレス:x1.y1.z1.2)
のようになるかと思われます。

DNS技術の知識はネットワーク・セキュリティに必須知識となりますので
厄介ですが、習得する必要があります。
2022.03.21 18:08
Lemさん  
(No.8)
この投稿は投稿者により削除されました。(2022.03.21 20:20)
2022.03.21 20:20
Lemさん  
(No.9)
pixさん、テキストよりもわかりやすい教示、感謝いたします。
教えて頂いた内容に対して、いくつか疑問点を質問させてください。

>1.B-DNSにTXTレコードを要求するにあたって、B-DNSのIPアドレスを知っている必要はない。
>>はい。
2.への回答で、『B-DNSのIPアドレスがわからなければB-DNSに問い合わせることはできない』旨、教えて頂きました。
それを踏まえると、B-DNSにTXTレコードを要求する際には、
上位権威DNSサーバからB-DNSのIPアドレスを教えてもらっておく必要が
あるのではないかと疑問に思ったのですが、どうなのでしょうか?

>.comのDNSサーバのアドレスは"."を管理するルートDNSサーバに登録
"."を管理するルートDNSサーバ というのは comの前にある.ではなく、
comの後ろにある(省略されている).という認識であっておりますでしょうか?
イメージとしては、B.com(.) といった感じで…。

>MXレコードの認識が曖昧のようです。
ご推察の通り、すっかりMXレコード(メールサーバに関するレコード)の存在を
忘れておりました。
B.com IN MX 10 mail.B.com
とB-DNSに設定しておけば、
~@B.comを宛先とするメールはmail.B.com(B社外部メールサーバ)に届くようになる
ということですね。

>ii.MXレコードの問い合わせが失敗した場合、'mail.B.com'はホスト名で
>  あるとみなし、'B.com'のB-DNSサーバへ'mail.B.com'のIPアドレスを
>  問い合わせに行き、IPアドレスが判明する。
なんだか不思議な感じがしますね。'mail.B.com'をホスト名とみなすと、
'B.com'のB-DNSサーバへ問い合わせが行われるのですか。
'mail'がホスト名だとみなされて'B.com'のB-DNSサーバへ問い合わせが
行われるのであれば、ピンと来るのですが…。

>ドメイン:B.com
>DNSサーバ:dns.B.com (IPアドレス:x1.y1.z1.1)
>メールサーバ:mail.B.com (IPアドレス:x1.y1.z1.2)
ふと思ったのですが、dns.B.comのIPアドレスはどのように名前解決されるのでしょうか?
「B.comのDNSサーバ」が名前解決をしてくれる認識ですが、
しかし、それは自分自身(dns.B.com)なので、どうなるのかなと。

>DNS技術の知識はネットワーク・セキュリティに必須知識となりますので
>厄介ですが、習得する必要があります。
レベル4の試験に挑戦するのは初めてで、今まではDNSサーバのことを
漠然と「IPとドメイン名を紐付けているサーバ」「FQDNをIPアドレスに変換できる」
と認識していただけだったので、今、佳境に立っていると考えております。
複雑ではありますが、線と線が繋がっていくような感じがしております。(お陰様で)
2022.03.21 20:20
pixさん 
SC ダイヤモンドマイスター
(No.10)
>それを踏まえると、B-DNSにTXTレコードを要求する際には、
>上位権威DNSサーバからB-DNSのIPアドレスを教えてもらっておく必要が
>あるのではないかと疑問に思ったのですが、どうなのでしょうか?

B-DNSへのアクセスとTXTレコードの問い合わせは同時に行われます
1.スタブリゾルバからフルリゾルバ(キャッシュDNSサーバ)へ
  B-DNSのTXTレコードへの問い合わせが発生します。
  ※この問い合わせを「再帰的クエリ」といいます。
2.フルリゾルバはルートDNSサーバから順に
  「B-DNSのTXTレコードへの問い合わせ」を行っていきます、
  ルートDNSサーバは".com"DNSサーバへ問い合わせるように返し、
  ".com"DNSサーバは"B.com"DNSサーバへ問い合わせるように返します。
  この時に下位のDNSサーバのIPアドレスを教えてくれます。
  最終的に"B.com"DNSサーバへたどりつき、TXTレコードの内容を応答します。
  ※この問い合わせを「非再帰的クエリ」といいます。


>"."を管理するルートDNSサーバ というのは comの前にある.ではなく、
>comの後ろにある(省略されている).という認識であっておりますでしょうか
>イメージとしては、B.com(.) といった感じで…。

はい DNSでは"B.com."が正式な名前になります。通常時は最後の"."を省略
しています。
過去問で、SPFのTXTレコードにFQDNを記述する時に最後に"."をつけるか
どうかという問題がありました。


>なんだか不思議な感じがしますね。'mail.B.com'をホスト名とみなすと、
>'B.com'のB-DNSサーバへ問い合わせが行われるのですか。
>'mail'がホスト名だとみなされて'B.com'のB-DNSサーバへ問い合わせが
>行われるのであれば、ピンと来るのですが…。

'B.com'ドメインのMXレコードの問い合わせが失敗した段階で、
'mail.B.com'のAレコード(IPアドレス)を問い合わせに行きます。
この時、'B.com'へ直接問い合わせにいくわけではないです。
ルートDNSサーバ -> ".com"DNSサーバ -> "B.com"DNSサーバと問い合わせを
繰り返していった結果、"B.com"DNSサーバが"mail.B.com"のAレコードを
もっているため、IPアドレスを返したという流れです。
2022.03.21 20:40
Lemさん  
(No.11)
>過去問で、SPFのTXTレコードにFQDNを記述する時に最後に"."をつけるか
>どうかという問題がありました。
いやはや、それは気をつけなければいけませんね。
それでは、先程私が書いた
B.com IN MX 10 mail.B.com
も、正しくは
B.com. IN MX 10 mail.B.com.
ということですね。
貴重な情報をありがとうございます。

再帰問い合わせ、非再帰問い合わせ(反復問い合わせ)については、
先程復習したばかりで、タイムリーでした。
2022.03.21 21:14

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop