スポンサーリンク

DNS Q&A

スポンサーリンク

リゾルバ

名前解決を要求するクライアントのこと.

特に,PC等のエンドポイントのことをスタブリゾルバと呼ぶ

フルサービスリゾルバ

再帰検索によって名前解決を実施してくれるDNSサーバのこと

コンテンツサーバ

オリジナルのDNSレコードが保存されているDNSサーバのこと

別名は権威サーバ

キャッシュサーバ

フルサービスリゾルバにおいて,一定期間の問い合わせ結果を保持(キャッシュ)し,有効期限内はキャッシュ内から結果を応答するDNSサーバ.

自ドメインからの要求に対してのみ,再帰解決を行う設定とすべき.外部ドメインからの要求に対して名前解決を実施できる場合,DSNリフレクションに利用される.

オープンリゾルバ

外部ドメインからの要求に対して,名前解決を実施するDNSサーバ.

DNSリフレクションに利用されるため,この設定は無効化されるべき.

プライマリサーバ,セカンダリサーバ

コンテンツサーバを冗長化する際に,オリジナルのレコードを保存しているコンテンツサーバをプライマリサーバと呼ぶ.プライマリサーバから同一情報をセカンダリサーバに転送し,冗長化されたシステムとする.

なお,DNSレコードの集合のことをゾーンと呼び,セカンダリサーバにこの情報を転送することをゾーン転送と呼ぶ

外部DNSサーバ

外部DNSサーバ=コンテンツサーバ

外部から自ドメインの問い合わせがあった場合に応答するサーバーのこと.例えば自ドメイン内にあるWebサーバ等の名前解決を実際に提供するサーバ.

内部DNSサーバ

内部DNSサーバ=内部で独自のドメインを構築している場合にはコンテンツサーバ,あるいは,自ドメインからの要求で外部の名前解決を実施するキャッシュサーバ,あるいはその両方

実際の構成

プライマリサーバ,セカンダリサーバをDMZに,内部DNSサーバ(キャッシュサーバ)を内部ネットワークに配置する.

小規模ネットワークでは,DMZに唯一のDNSサーバーを設置し,外部DNSサーバーと内部DNSサーバーの役割を兼ねることがある

DNSリフレクション

オープンリゾルバに対して,自身のIPを攻撃対象のIPに偽装して名前解決を要求することで,その応答を攻撃対象に送り付けることができる攻撃方法.

DNSは基本的にUDPを採用していることから,IP偽装が容易であることから非常によく利用される攻撃.また,攻撃者のリクエストに対して,DNSサーバからのレスポンスは非常に大きいため,攻撃者はDNSを仲介することで効率的に攻撃対象に負荷をかけることが可能.

対策は外部からの名前解決要求には応答しないように,全てのDNSサーバ(コンテンツサーバ・キャッシュサーバともに)に設定すること

増幅される理由は以下が非常に分かりやすかったです.Aレコード数を調整することでフォーマット上許可される最大バイト数まで増幅して攻撃します.

https://jprs.jp/tech/material/iw2013-lunch-L3-01.pdf

RFC1035

これがDNS関連の規格.パケットの規格も書かれています

https://jprs.jp/tech/material/rfc/RFC1035-ja.txt

DNSのUDP/TCPポート

53

DNS水責め攻撃

こちらもオープンリゾルバを利用した攻撃ですが,攻撃対象はDNSサーバです.DDos攻撃の一種です.

example.comのDNSサーバーに攻撃をするとします.この時,複数のオープンリゾルバに対して,dafafda.example.comのような架空アドレスの名前解決をリクエストします.その結果,大量のリクエストが対象のDNSサーバーに到達し,DNSサーバーが機能不全になります.

なお,架空アドレスはリクエストごとに変更します.これは同一アドレスを問い合わせた場合,オープンリゾルバがキャッシュした結果が応答されるため,攻撃対象にリクエストが届かないためです.

MXレコード

メールサーバーの位置を示す.

xxxxx@example.com

というメールを送信する場合には,example.comのdnsサーバに問い合わせが行われ,そのMXレコードからメールサーバを名前解決しそれを応答する.

//MXレコード例 10は優先度.複数ある場合に利用され,小さいほど優先度が高い.
IN MX 10 mailserver.example.com.

ちなみに一番最後にドットを付けるのは必須です.注意してください.ドットがついている場合FQDNとして認識され,ドットがない場合にはゾーンのドメインが自動的で付与されます.たとえば,間違ってmailserver.example.comとするとmailserver.example.com.example.comとして認識されます.DNSレコード全てに適用されます.

SPF(Sender Policy Framework)

IPアドレスを使用した送信ドメイン認証で,認証にDNSサーバーを使用します.

①送信側:DNSのSPFレコードに送信可能性のあるメールサーバのIPを指定する
②メールを送信
③受信側:MAIL FROMに指定されたドメインのDNSのSPFレコードを参照し,SMTP通信を行ったIP(メールを送信したメールサーバ)が登録されたIPかどうか検証する

というプロセスで認証が行われます.SMTPにおいては,From:ヘッダーを容易に変更することができるため,そのなりすましの検出を目的としています.

SPFレコードに対応していないDNSも存在しているため,SPFとTXTの両方のレコードを登録することが推奨されている

SPF(Sender Policy Framework) : 迷惑メール対策委員会
迷惑メール対策に関する情報を公開するためのサイト。財団法人インターネット協会により運営されています。

TXTレコード

 example.com. IN TXT "v=spf1 ip4:192.0.2.1 -all" 

SPFレコード

 example.com. IN SPF "v=spf1 ip4:192.0.2.1 -all" 

SMTPにおいてEnvelope-From (MAIL FROM)を偽装できるのはなぜ?

MAIL FROMの偽装を行えるのは効率を優先したプロトコルであるためです.郵便物もポストに投函するときに送信元住所のチェックがされないように,電子メールにおいてもMAIL FROMに記載されたドメインとIP接続しているメールサーバが同一かどうかは検証しません.これはメール転送時のオーバーヘッドを極力小さくするための仕様です.”Simple” Mail Transfer Protocolという名前からも想像できますね.

Envelope-Fromは宛先不在時にError通知メッセージの時に初めて利用されます.

SMTPにおいてHeader-Fromが偽装できるのはなぜ?

これは利便性が目的です.Envelope-FromとHeader-Fromを別に設定したい場合があります.例えば,外部のメールサーバを利用して送信したい場合等です.メールマガジンの配信を外部サービスを用いて行うことはよくあることですので,この場合,

Envelop-From : 外部のメールサーバ

Header-From:自分のメールサーバ

と設定したいことはよくあることです.したがって,Header-FromとEnvelope-Fromの齟齬は利便性から意図して組み込まれています.攻撃者にとってはとても都合がいいことになっているわけですが・・.

MTA (Mail Transfer Agent)

MUA(Mail User Agent)から送信されてきたメールをEnvelope情報に基づいてMTA(Mail Distributor Agent)に仕分けるSMTP内のプログラムのこと.

メールのHeader部を確認したい

Gmailの場合は以下から確認可能です.

Receivedフィールドを確認することでどのメールサーバを経由してきたか確認することが可能です.下にあるものほど古い情報になります(すなわち,下から上に伝播していっています)以下の形式で書かれているのでとても分かりやすいです.送信元MTAから送られたきたメールを送信先MTAで受信したというそのままの意味で理解できます.

Received: from 送信元MTA by 送信先MTA

Return-Path:送信元アドレス
Delivered-To:宛先アドレス(自分)

などがあります.Gmailの場合,SPF, DKIMは設定されていることがわかりますね.

DKIM(Domain Keys Identified Mail)

①送信側メールサーバがメールヘッダにデジタル署名を添付

②受信側メールサーバはDNSのTXTレコードから公開鍵を取得し,認証する

DKIM (Domainkeys Identified Mail) : 迷惑メール対策委員会
迷惑メール対策に関する情報を公開するためのサイト。財団法人インターネット協会により運営されています。

TXTレコード

 sls.dkim._domainkey.smtest.com.  300 IN TXT  "v=DKIM1; k=rsa; t=y; p={公開鍵}"  

nslookup

DNSの名前解決を実施するコマンド.DNSサーバーが実施するリクエスト・レスポンスを様々な条件・形式で実施できるため,トラブルシュートに役立つ.

以下はgoogle.comのアドレスを問い合わせた例.他にも様々な機能があるので,実際に利用する際に調べること

タイトルとURLをコピーしました