DNSのセキュリティ

更新日2008-12-04 (木) 17:00:29

DNS 実装にキャッシュポイズニング攻撃

キャッシュサーバとしているとき、DNSが情報を得るため目的サーバに問い合わせそのレスが戻る前に悪意のある情報を送り込む。
このときサーバは自分ものとわかるようにIDをつける(UDP通信なため)がこれが16bitしかないので、悪意のあるサイトからランダムに送りつけられると偶然一致し、間違ったデータをキャッシュされのっとられる。

しかしながら、あくまで確率を下げることしかできない。DNSの宿命?

対策

キャッシュサーバは外部から利用させない

acl "localnet" {
        192.168.0.0/16;
        127.0.0.1;
};


(略)
 

view "local" {
        match-clients { "localnet"; };
        recursion yes;  <=再起的な問い合わせを許可
 

(略)

view "world" {
        match-clients { any; };
        recursion no;   <=再起的な問い合わせを禁止

問い合わせ元ポートをランダムにする

bindをバージョンアップ

検査

ポートがランダムか?

キャッシュサーバのチェックツール:自分が使用できるキャッシュサーバのポートがランダムかどうかは、porttest.dns-oarc.net の TXT レコードを検索すると結果をテキストで返してくれるようです。 26回中1回のときは同じポートでだめPOORを返し、26回中26ポートはランダムでGREATを返す 当然GREATがパッチ後

パッチ前

$ dig +short porttest.dns-oarc.net TXT @xxx.xxx.xxx.xxx
porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"xxx.xxx is GREAT: 26 queries in 6.5 seconds from 26 ports with std dev 15453"
            ^^^^^

パッチ後

$ dig +short porttest.dns-oarc.net TXT @yyy.yyy.yyy.yyy
porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"yyy.yyy.yyy.yyy is POOR: 26 queries in 6.5 seconds from 1 ports with std dev 0"
                    ^^^^

テストサイト(ランダムポート否かチェック)

https://www.dns-oarc.net/oarc/services/dnsentropy

参考サイト

http://www.janog.gr.jp/meeting/janog19/files/DNS_Minda.pdf

https://www.tokai-ic.or.jp/kaminsky.html

DNS の再帰的な問合せを使った DDoS 攻撃について

DDosをDNSを利用しておおなう。はじめに準備段階で任意の文字が利用できるTXTフィールドを持つ悪意DNSサーバサイトを用意し、踏み台となるDNSサーバからこの悪意DNSサーバにアクセスさせる。これはキャッシュサーバは外部から利用すればよい。その後悪意のあるデータがキャッシュされる。

次に、攻撃対象サーバのIPを偽装し、複数用意した踏み台サーバに悪意DNSサーバに再帰的な問合せをおこなわせると踏み台サーバから大量のパケットが流れ込む。

対策はDNS の再帰的な問合せを外部からさせない。

参考

http://www.cyberpolice.go.jp/server/rd_env/pdf/20060711_DNS-DDoS.pdf


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS