【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷


第5回 DNS、管理者として見るか? 攻撃者として見るか?


辻 伸弘
NTTデータ・セキュリティ株式会社
2007/11/30


 今回は、前回取り上げたSendmailに代表されるMTA(メール配送エージェント、メールサーバ)とサーバ内に同居させることの多い、DNSのセキュリティ設定について紹介させていただく。紹介するDNSは最もシェアが高いと思われるBIND(Berkeley Internet Name Domain)である。

 DNSのバナー情報はいつ表示されるのか

 まずは、本連載ではお決まりの(?)バナー情報から紹介しよう。

 BINDの場合では、接続が確立したときやコマンドを実行したときにバナーが表示されるのではなく、発行したクエリーの応答の中にBINDのバージョンが表示される。以下は、「dig」コマンドを用いてバージョン取得を行った結果の例である。

【digの実行結果】

; <<>> DiG 9.2.4 <<>> @xxx.xxx.xxx.xxx version.bind chaos txt
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9660
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;;

QUESTION SECTION:
;version.bind.               CH         TXT
;;

ANSWER SECTION:
version.bind.       0       CH         TXT       "9.2.4"
;;

AUTHORITY SECTION:
version.bind.       0       CH          NS        version.bind.;;

Query time: 34 msec
;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx)
;; WHEN: Sun Nov 4 10:32:00 2007
;; MSG SIZE rcvd: 62

 ANSWER SECTIONの次の行に「"9.2.4"」とバージョンが表示されていることが分かる。digで問い合わせる方法は、以下の「xxx.xxx.xxx.xxx」の部分をBINDが稼働しているホストのアドレスに変更し、実行する。

dig @xxx.xxx.xxx.xxx version.bind chaos txt
(「version.bind」「chaos」「txt」の順番は上記通りでなくてもよい)

 Windowsにdigコマンドは付属していないが、以下のようにnslookupコマンドを実行することで同等の結果を取得することができる。

nslookup -type=txt -class=chaos version.bind xxx.xxx.xxx.xxx

 この実行結果は以下のようになる。

【nslookupの実行結果】

*** Can't find server name for address xxx.xxx.xxx.xxx: Non-existent domain
Server:   UnKnown
Address:  xxx.xxx.xxx.xxx

version.bind    text =           "9.2.4"
version.bind    nameserver = version.bind

 どうしてもWindows環境でdigを使いたい場合は、単体で配布しているサイトがあるので、そこからダウンロードすれば手っ取り早く利用することができるだろう。

 まずはDNSのバージョンを隠そう

 それでは、このバージョン情報の隠ぺい方法を紹介しよう。

 BINDの設定ファイル(/etc/named.confなど)内のoptions内に以下のように記述を追加する。

options {
            〜 略 〜
            version "tsuji";
                        〜 略 〜
} ;

 versionに続く「"」で囲まれた中に任意の文字(何も書かなくてもよい)を記述することで、digやnslookupでバージョン情報の取得を試みたときにバージョン情報ではなく記述した任意の文字列を表示させることが可能である。上記の設定を施したBINDに対してdigでバージョン情報を取得した場合は、以下のように表示される。

【digの実行結果】

; <<>> DiG 9.2.4 <<>> @xxx.xxx.xxx.xxx txt chaos version.bind
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13242
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;;

QUESTION SECTION:
;version.bind.               CH         TXT
;;

ANSWER SECTION:
version.bind.       0       CH         TXT      "tsuji"


AUTHORITY SECTION:
version.bind.       0       CH          NS        version.bind.;;

;; Query time: 38 msec
;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx)
;; WHEN: Tue Nov 6 15:56:02 2007
;; MSG SIZE rcvd: 62

 version.bindの行が「tsuji」と変化していることが分かる。空白や「unknown」などの任意の文字列を設定するとよいだろう。設定を行ったら、BINDの再起動を行うことで設定が反映される。

1/3

Index
DNS、管理者として見るか? 攻撃者として見るか?
Page1
DNSのバナー情報はいつ表示されるのか
まずはDNSのバージョンを隠そう
  Page2
ゾーン情報の転送とは
ゾーン転送の落とし穴
深読みでここまで分かるあなたのイントラネット
無差別コピーを防ぐための対策
  Page3
ペネトレテスターは見た! 実録・SSHパスワードが分かるまで
いつの世も事件の始まりは“ほんの小さな”きっかけから


セキュリティ対策の「ある視点」 連載インデックス

ホワイトペーパーTechTargetジャパン

Security&Trust フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています