- 追加された行はこの色です。
- 削除された行はこの色です。
**DNSのセキュリティ [#c6ccd490]
*DNSのセキュリティ [#c6ccd490]
RIGHT:更新日&lastmod();
**DNS 実装にキャッシュポイズニング攻撃 [#g0f3592e]
キャッシュサーバとしているとき、DNSが情報を得るため目的サーバに問い合わせそのレスが戻る前に悪意のある情報を送り込む。~
このときサーバは自分ものとわかるようにIDをつける(UDP通信なため)がこれが16bitしかないので、悪意のあるサイトからランダムに送りつけられると偶然一致し、間違ったデータをキャッシュされのっとられる。
-対策はキャッシュサーバは外部から利用させないにする。
これにより大量のリクエストを外部から受けなくてすむ。すると問い合わせる情報量が減る
-問い合わせ元ポートをランダムにする。
問い合わせ元ポートが変わると悪意のあるサイトからの送りつけにポートまで一致させる必要があるので、確率が下がる
しかしながら、あくまで確率を下げることしかできない。DNSの宿命?
***対策 [#a0fdcd26]
''キャッシュサーバは外部から利用させない''
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をバージョンアップ
**検査 [#c8a2a6fc]
***ポートがランダムか? [#e52b0062]
キャッシュサーバのチェックツール:自分が使用できるキャッシュサーバのポートがランダムかどうかは、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"
^^^^
***テストサイト(ランダムポート否かチェック) [#m98baf5e]
https://www.dns-oarc.net/oarc/services/dnsentropy
**参考サイト [#q00ddbba]
http://www.janog.gr.jp/meeting/janog19/files/DNS_Minda.pdf
https://www.tokai-ic.or.jp/kaminsky.html
**DNS の再帰的な問合せを使った DDoS 攻撃について [#k9a5335f]
DDosをDNSを利用しておおなう。はじめに準備段階で任意の文字が利用できるTXTフィールドを持つ悪意DNSサーバサイトを用意し、踏み台となるDNSサーバからこの悪意DNSサーバにアクセスさせる。これはキャッシュサーバは外部から利用すればよい。その後悪意のあるデータがキャッシュされる。~
次に、攻撃対象サーバのIPを偽装し、複数用意した踏み台サーバに悪意DNSサーバに再帰的な問合せをおこなわせると踏み台サーバから大量のパケットが流れ込む。
対策はDNS の再帰的な問合せを外部からさせない。
***参考 [#w2e83ab5]
http://www.cyberpolice.go.jp/server/rd_env/pdf/20060711_DNS-DDoS.pdf