現場で汗をかくエンジニアの皆さん、お疲れ様です。NOCの最前線で数々の「ネットワークの怪奇現象」を解決してきたシニアエンジニアです。
今日は、ネットワーク運用における「情報の運び屋」、DNSに関する少し危ないお話をしてみたいと思います。皆さんは dig コマンドを使ったことはありますか? きっとドメインのIPを調べる際に使っているはず。でも、このコマンドが持つ「ある能力」を知ってしまうと、夜も眠れなくなるかもしれません。
今回は、DNSの「ゾーン転送(AXFR/IXFR)」という機能を通じ、なぜそれがセキュリティリスクになるのか、現場の視点から紐解いていきましょう。
—
1. DNSの「ゾーン転送」って何?郵便局で例えてみよう
まず、DNSサーバを「郵便局」だと想像してください。「google.com の住所はどこ?」と聞かれたら、「それはあっちの局ですよ」と教えてくれる場所です。
通常、この郵便局は世界中にたくさんあります。メインの局(プライマリ)と、そのコピーを持つ支局(セカンダリ)が連携して働いています。この「メインの局が持つ最新の住所録を、支局へ丸ごとコピーして渡す作業」がゾーン転送です。
- AXFR (Asynchronous Full Transfer): 住所録を丸ごと全部コピーする。
- IXFR (Incremental Transfer): 更新があった差分だけをコピーする。
本来、これはDNSサーバ同士が連携するために必要な機能です。しかし、この門戸を誰にでも開いてしまうと……とんでもないことが起きます。
—
2. 禁断のコマンド dig axfr で実験してみる
「もし、悪意ある第三者が、あなたの郵便局に『住所録を全部見せて!』と言ったらどうなるか?」を確かめるのが、診断コマンド dig axfr です。
以下のコマンドを打つと、設定が甘いサーバからは、内部ネットワークの構成や隠れたサブドメインが丸裸になって返ってきます。
# 対象のネームサーバに対して、ドメインの情報を丸ごと要求するコマンド
# 書式: dig axfr @[ネームサーバのIPアドレス] [ドメイン名]
dig axfr @ns1.example.com example.com
もしこれが成功して、画面にずらりとレコードが表示されたら……残念ながら、あなたの「郵便局」は、通りすがりの泥棒に金庫の鍵を渡しているような状態です。
—
3. なぜこれが危険なのか?(情報漏洩の現実)
「単なるドメインリストじゃないか」と思うかもしれません。しかし、現場の視点で見ると、これは「内部ネットワークの地図」そのものです。
- 隠れたサブドメインの発見:
dev.example.comやvpn.example.comなど、外部に公開していないはずのサーバが見つかります。 - 脆弱性攻撃の足がかり: 攻撃者は「どのサーバがどのIPか」が分かれば、そこを狙い撃ちにできます。
地図を盗まれた泥棒は、一番警備が手薄な裏口から侵入してきます。これが、情報漏洩の第一歩です。
—
4. 対策:郵便局の窓口を厳しく管理する
では、どうすればいいのでしょうか? 答えはシンプル。「信頼できる特定の相手以外には、丸ごとコピーを渡さない」という設定を行うことです。
主要なDNSサーバソフト(BINDやUnboundなど)には、アクセス制御リスト(ACL)という機能があります。
BINDの例: ゾーン転送の制限設定
/etc/named.conf などの設定ファイルで、許可するIPアドレスを明示的に指定します。
zone "example.com" {
type master;
file "example.com.db";
// ゾーン転送を許可するIPを制限する(ここが重要!)
allow-transfer {
192.0.2.50; // セカンダリDNSサーバのIPのみ許可
192.0.2.51; // もう一台のセカンダリDNSサーバのみ許可
};
};
こうしておけば、知らない誰かが dig axfr を試みても、サーバは「お前は部外者だ!」と拒否(Connection refusedなど)してくれます。
—
現場からのアドバイス
ネットワークの運用監視において、「デフォルト設定を信じない」ことが一番の防御です。構築した直後のDNSサーバが、たまたまゾーン転送をフルオープンにしていることは珍しくありません。
皆さんが構築・運用に関わるサーバがあれば、ぜひ一度、自分のPCから dig axfr を試してみてください。エラーが返ってくれば「合格」、もしリストが表示されてしまったら……今すぐ設定ファイルを開いてください。
ネットワークは「穴」を見つける作業の連続です。でも、その穴を塞ぐたびに、皆さんの守備力は確実に上がっていきます。焦らず、一歩ずつ進んでいきましょう。
また次回、現場の泥臭い話でお会いしましょう!
コメント