DNSの脆弱性と対策 [情報セキュリティ]
DNSの主な機能
【リゾルバ(resolver)】
ドメイン名からIPアドレスを検索したり、その逆にIPアドレスからドメイン名を検索するというように、名前解決を行う仕組みであり、その実態はプログラムだったり関数などだったりします。
リゾルバにはスタブリゾルバ(Stub Resolver)とフルサービスリゾルバ(Full-Service Resolver)があります。スタブリゾルバは、一般的なOSなどに搭載されている機能で、フルサービスリゾルバに対して要求を出し、その結果を受け取ることで名前解決します。
【コンテンツサーバ(ゾーンサーバ)】
DNSサーバには、大きく分けてコンテンツ機能とキャッシュ機能という二つの機能があります。一台のDNSサーバでこれらの機能を提供することも可能ですが、機能毎にサーバを分ける場合もあります。
コンテンツ機能を提供するDNSサーバはコンテンツサーバ(ゾーンサーバ)と呼ばれ、当該サーバが管理するドメイン(ゾーン)の情報を登録し、リゾルバからの非再帰的な名前解決要求に対し、自身が管理するドメイン内の名前解決にだけ応じます。
【キャッシュサーバ(フルサービスリゾルバ)】
キャッシュサーバは、リゾルバからの再帰的な問合せに対し、必要に応じて他のDNSサーバに問合せを行い、その結果を問合せ元のリゾルバに返します。そして、名前解決した内容は一定時間キャッシュに保存して再利用します。
なお、問合せ元のアドレスや問合せ対象ドメインの制限なく、名前解決要求に応じるDNSサーバはオープンリゾルバと呼ばれます。オープンリゾルバはDNSキャッシュポイズニング攻撃に対して脆弱です。
DNSの脆弱性
【ゾーン転送機能による不正利用】
ゾーン転送要求は、セカンダリDNSサーバとプライマリDNSサーバの登録内容を同期させるために、前者から後者に対して定期的に実行されています。一般的なDNSサーバプログラムの初期設定では、ゾーン転送要求について特に制限がないため、そのままの設定で運用すると、悪意のある第三者が情報収集のために実行することが可能です。
【不正情報のキャッシュ登録】
名前解決要求への応答時に、悪意のあるサイトに誘導するための不正な名前解決情報を付加して返すことで、DNSのキャッシュに登録させられる可能性があります。このような攻撃の手法はDNSキャッシュポイズニング攻撃と呼ばれています。
DNSキャッシュポイズニング攻撃を成功させるためにはポート番号、トランザクションIDを本来の応答レコードと合致させる必要があります。ですが、送信元ポート番号とあて先ポート番号ともに53番に固定するDNSサーバは数多く存在し、DNSキャッシュポイズニング攻撃を成功させ易くさせています。
【不正リクエストによるサービス不能状態】
BOF(バッファオーバフロー)攻撃やDoS攻撃を受けて、正常なサービスが提供できなくなる可能性があります。
DNSの脆弱性への対策
【DNSサーバプログラムのバージョンアップ】
DNSサーバプログラムのバージョンを最新化し、パッチを適用します。DNSの送信元ポートをランダムにするためのパッチが提供されていて、適用することによりDNSキャッシュポイズニング攻撃への対策となります。
【DNSSEC(DNS Security Extensions)】
DNSSECはDNSのセキュリティ拡張方式で、DNSキャッシュポイズニング攻撃への有効な対策となります。DNSSECは、名前解決要求に対して応答を返すDNSサーバが、自身の秘密鍵を用いて応答レコードにディジタル署名を付加して送信します。受け取った側は相手の公開鍵を用いて署名を検証することで、応答レコードの正当性、完全性を確認します。
【ゾーン情報の分離】
【コンテンツサーバとキャッシュサーバの分離】
それぞれの機能毎に別個のサーバを設営します。(公開用・内部用で最低4台のDNSサーバを設営)
【ゾーン転送の制限】
【ホストの範囲の制限】
キャッシュサーバを利用可能なホストのIPアドレス(ネットワークアドレス、もしくはホスト毎の個別のアドレス)を同サーバの設定ファイルに登録します。
【問合せ数を制限】
キャッシュサーバに対するクライアントからの問合せ(再帰的な問合せ)数を適切な値に設定することで、DoS攻撃に備えることができます。
【バージョン情報の隠蔽】
DNSサーバプログラムの設定によって、バージョン情報を任意の文字に置き換えて、実際のバージョン情報を隠蔽します。
【リゾルバ(resolver)】
ドメイン名からIPアドレスを検索したり、その逆にIPアドレスからドメイン名を検索するというように、名前解決を行う仕組みであり、その実態はプログラムだったり関数などだったりします。
リゾルバにはスタブリゾルバ(Stub Resolver)とフルサービスリゾルバ(Full-Service Resolver)があります。スタブリゾルバは、一般的なOSなどに搭載されている機能で、フルサービスリゾルバに対して要求を出し、その結果を受け取ることで名前解決します。
【コンテンツサーバ(ゾーンサーバ)】
DNSサーバには、大きく分けてコンテンツ機能とキャッシュ機能という二つの機能があります。一台のDNSサーバでこれらの機能を提供することも可能ですが、機能毎にサーバを分ける場合もあります。
コンテンツ機能を提供するDNSサーバはコンテンツサーバ(ゾーンサーバ)と呼ばれ、当該サーバが管理するドメイン(ゾーン)の情報を登録し、リゾルバからの非再帰的な名前解決要求に対し、自身が管理するドメイン内の名前解決にだけ応じます。
【キャッシュサーバ(フルサービスリゾルバ)】
キャッシュサーバは、リゾルバからの再帰的な問合せに対し、必要に応じて他のDNSサーバに問合せを行い、その結果を問合せ元のリゾルバに返します。そして、名前解決した内容は一定時間キャッシュに保存して再利用します。
なお、問合せ元のアドレスや問合せ対象ドメインの制限なく、名前解決要求に応じるDNSサーバはオープンリゾルバと呼ばれます。オープンリゾルバはDNSキャッシュポイズニング攻撃に対して脆弱です。
DNSの脆弱性
【ゾーン転送機能による不正利用】
ゾーン転送要求は、セカンダリDNSサーバとプライマリDNSサーバの登録内容を同期させるために、前者から後者に対して定期的に実行されています。一般的なDNSサーバプログラムの初期設定では、ゾーン転送要求について特に制限がないため、そのままの設定で運用すると、悪意のある第三者が情報収集のために実行することが可能です。
【不正情報のキャッシュ登録】
名前解決要求への応答時に、悪意のあるサイトに誘導するための不正な名前解決情報を付加して返すことで、DNSのキャッシュに登録させられる可能性があります。このような攻撃の手法はDNSキャッシュポイズニング攻撃と呼ばれています。
DNSキャッシュポイズニング攻撃を成功させるためにはポート番号、トランザクションIDを本来の応答レコードと合致させる必要があります。ですが、送信元ポート番号とあて先ポート番号ともに53番に固定するDNSサーバは数多く存在し、DNSキャッシュポイズニング攻撃を成功させ易くさせています。
【不正リクエストによるサービス不能状態】
BOF(バッファオーバフロー)攻撃やDoS攻撃を受けて、正常なサービスが提供できなくなる可能性があります。
DNSの脆弱性への対策
【DNSサーバプログラムのバージョンアップ】
DNSサーバプログラムのバージョンを最新化し、パッチを適用します。DNSの送信元ポートをランダムにするためのパッチが提供されていて、適用することによりDNSキャッシュポイズニング攻撃への対策となります。
【DNSSEC(DNS Security Extensions)】
DNSSECはDNSのセキュリティ拡張方式で、DNSキャッシュポイズニング攻撃への有効な対策となります。DNSSECは、名前解決要求に対して応答を返すDNSサーバが、自身の秘密鍵を用いて応答レコードにディジタル署名を付加して送信します。受け取った側は相手の公開鍵を用いて署名を検証することで、応答レコードの正当性、完全性を確認します。
【ゾーン情報の分離】
- 外部向けゾーン情報を登録する公開DNSサーバと、内部向けゾーン情報を登録する内部DNSサーバとに分離する
- 公開DNSサーバには内部のゾーン情報は一切登録しない
- 内部DNSサーバには必要に応じて公開DNSサーバに登録されているゾーン情報も登録する
【コンテンツサーバとキャッシュサーバの分離】
それぞれの機能毎に別個のサーバを設営します。(公開用・内部用で最低4台のDNSサーバを設営)
【ゾーン転送の制限】
- インターネットからのゾーン転送要求を受け付ける必要がない場合に、公開DNSサーバに対する53/TCPのアクセスをファイアウォールでフィルタリングする
- ゾーン転送はセカンダリDNSサーバにのみ許可する設定をし、ゾーン転送するデータの範囲を最小限に設定する
【ホストの範囲の制限】
キャッシュサーバを利用可能なホストのIPアドレス(ネットワークアドレス、もしくはホスト毎の個別のアドレス)を同サーバの設定ファイルに登録します。
【問合せ数を制限】
キャッシュサーバに対するクライアントからの問合せ(再帰的な問合せ)数を適切な値に設定することで、DoS攻撃に備えることができます。
【バージョン情報の隠蔽】
DNSサーバプログラムの設定によって、バージョン情報を任意の文字に置き換えて、実際のバージョン情報を隠蔽します。
情報処理教科書 情報セキュリティスペシャリスト 2014年版 (EXAMPRESS)
- 作者: 上原 孝之
- 出版社/メーカー: 翔泳社
- 発売日: 2013/09/13
- メディア: 単行本(ソフトカバー)