一般化するDNSブロッキング機能
2ヶ月前の記事ですが、ISC BINDにブロッキング機能が標準搭載されるという発表がありました。 BIND(Berkeley Internet Name Domain)は、オープンソースのフリーソフトで、世界で最も利用されているDNSサーバです。 このBINDにブロッキング機能が搭載される予定であると発表されることには、非常に大きな意味があります。 ある意味、DNSブロッキングがインターネットの標準機能へと近づいていることを示唆しているのかも知れません。
その発表はBIND作者であるPaul Vixie氏によって行われましたが、最初の一文が「新しいドメイン名の大半は悪意のあるものだ」というものでした。 犯罪目的で取得されたドメイン名があまりに多いことを嘆きつつ、ISC BINDにDNSブロッキング機能を実装したことを報告しています。
「Taking Back the DNS | Internet Systems Consortium」
この記事と全く同じものがCircleIDにも掲載されていますが、コメント欄が半分炎上気味です。
ブロッキングの仕組み
ISC BINDに実装されるのは、Response Policy Zones(DNS RPZ)という機能です。 ISC BINDのDNS RPZ機能に関する仕様書は「DNS Response Policy Zones (DNS RPZ) 2010年9月時点」として公開されています。
非常にざっくりと言ってしまうと、「設定されたFQDN(Fully Qualified Domain Name)の名前解決を行わない」というものです。 DNSキャッシュサーバでDNS RPZ機能を利用すると、ユーザは設定に関連する名前解決ができなくなります。
DNS RPZが設定されていない通常状態では、ユーザは次のようにDNSキャッシュサーバに問い合わせを行って、名前解決をします。
![](/blog/img/2010/0929-0.jpg)
DNSキャッシュサーバが以前に同じ問い合わせを受けていて、その結果のキャッシュを保持していれば、上記図のようにDNSキャッシュサーバとユーザだけの通信で完結しますが、キャッシュが無ければ次のように再帰検索が行われます。
![](/blog/img/2010/0929-1.jpg)
DNS RPZ機能が有効化されていて、ブロック対象のFQDNに対する名前解決が要求された場合、次のようにDNSキャッシュサーバが偽の結果かNXDOMAIN(該当無し)を返します。
![](/blog/img/2010/0929-2.jpg)
仕様書には、以下のようなサンプルが記述してあります。
CNAMEを使って偽の結果を返す場合
bad_domain CNAME walled-garden.isp.net.
*.bad_domain CNAME walled-garden.isp.net.
NXDOMAINにする場合
bad_domain CNAME .
*.bad_domain CNAME .
メールとその他を別々にリダイレクトしたい場合
bad_domain MX 0 wgmail.isp.net.
bad_domain A 192.168.6.66
*.bad_domain MX 0 wgmail.isp.net.
*.bad_domain A 192.168.6.66
近い将来、標準的なBINDを使って、このように「手軽に」ブロッキングできるようになる環境が世界中で整えられて行くものと思われます。
ISC BINDは仕組みだけを提供
ISC BINDは、DNSブロッキングの仕組みだけを提供し、「何をブロックすべきか」に関しての情報は範疇外としています。
ブロッキングの話題
最近、日本のインターネットインフラ界隈でブロッキングに関する話題が増えてきました。 インフラ屋さんはブロッキングなどやりたくない人が非常に多い印象がありますが、話題にせざるを得ない状況が発生しているようです。
DNSによるブロッキングには、必要以上にブロックを行ってしまう「オーバーブロッキング」の問題などがあります(参考)。
たとえば、「このドメイン名の下に児童ポルノコンテンツを発見したから、このドメイン名のホストは全部ブロックする」とやったとき、同じホスティング事業者を使っている全く関係がない通常コンテンツまでブロックされるという状況が発生します。 JANOG26での楠さん(@masanork)の発表資料を見ると、日本国内にある「xdvi日本語化・拡張パッチ」というページがフィンランドでブロックされているという事例が紹介されています。
こういった運用的な問題が発生しがちな技術であることがわかっているとはいえ、ブロッキングを求める人々と、それを実現する環境が整備されていってしまっているのが現在の状況なのかも知れません。
最後に
現時点では、DNS RPZ用のパッチだけが公開されており、BINDの標準機能ではありません。 しかし、BIND9 9.7.3からは、このブロッキング機能が標準搭載されるようです。 実装に至った目的はSPAMやフィッシング詐欺などになのでしょうが、その他の目的に利用されるには時間がかからないのだろうと推測しています。
今まで、そういったことを出来る製品は色々ありましたが、BINDにまでその機能が入ったというのは、割と大きな変化なのだろうと思います。 「自前で実装すればできる」というのと「オプションをONにすればできる」には、技術的にはさほど大きな違いはありませんが、運用的な側面や心理的な側面には大きな違いがありそうな気がします。
今後も、明示的にブロッキング機能を設定しなければブロッキングは行われませんが、そのような機能が世界で最も利用されているDNSサーバに実装されることになったことは、今後各方面に対して大きな影響を与えて行きそうだと思う今日この頃です。
DNSブロッキング関連記事
- 2011年04月21日 : 日本でブロッキングが開始
- 2010年12月13日 : 日本におけるブロッキング
最近のエントリ
- 「ピアリング戦記」の英訳版EPUBを無料配布します!
- IPv4アドレス移転の売買価格推移および移転組織ランキング100
- 例示用IPv6アドレス 3fff::/20 が新たに追加
- ShowNet 2024のL2L3
- ShowNet 2024 ローカル5G
- ShowNetのローカル5G企画(2022年、2023年)
過去記事