DNSの仕組みと脆弱性について

今回は、DNSの脆弱性についてとなりますが、
そもそもDNSの仕組みについてから説明していきます。

 

DNSの仕組み

DNSはドメイン名とIPアドレスを紐づけ、ドメイン名からIPアドレスを検索したり、その逆を行います。
それを名前解決と言います。

DNSは主に以下の機能によって仕組みを実現しています。

リゾルバ
・・・名前解決を行う仕組みで、以下の二種類があります。

 スタブリゾルバ
 ・・・PCのOSに搭載されている
 フルサービスリゾルバ
 ・・・以下のキャッシュサーバのこと

コンテンツサーバ(ゾーンサーバ)
・・・ドメイン、IPアドレスの情報(ゾーン情報)を登録し、リゾルバからの名前解決要求に応える。

キャッシュサーバ(フルサービスリゾルバ)
・・・名前解決した情報を一時的に保存するサーバ。スタブリゾルバからの問い合わせに対して、名前解決の情報がなければ、コンテンツサーバに問い合わせを行います。

 

DNSの仕組みについて、詳細は下記記事を御覧ください。
→ DNSとはなにか。~名前解決のプロトコル~

 

DNSの脆弱性

「登録情報の不正利用」
ゾーン転送要求は、DNSサーバの登録内容を定期的に同期するために、セカンダリDNSサーバからプライマリDNSサーバへ同期が実行されます。
何も対策を行っていないと、悪意のある第三者がゾーン転送要求に応答し、ゾーン情報が筒抜けとなります。

「不正な情報をキャッシュサーバに登録」
DNSキャッシュポイズニングと呼ばれる攻撃で、
DNSサーバの名前解決情報を書き換え、偽の悪意のあるWebサイトへ誘導させる可能性があります。

「サーバダウンの可能性」
DNSサーバだけに限りませんが、
BOF攻撃やDoS攻撃により、サービス不能な状態になる可能性があります。

 

DNSの脆弱性への対策

「DNSサーバの定期的なバージョンアップ」
DNSサーバだけに限らないが、バージョンは常に最新または推奨バージョンにしておくことが重要です。

「DNSSEC(DNS Security Extensions)」
DNSSECは公開鍵暗号方式とデジタル署名の仕組みを使用し、DNSのセキュリティを高めます。
DNSサーバは自身の秘密鍵を使って、名前解決への応答レコードにデジタル署名を付与して送信します。応答を受け取る側は、応答を返したDNSサーバの公開鍵を使ってデジタル署名を確認することで、応答レコードの完全性を検証することができます。
DNSキャッシュポイズニング攻撃に対して有効な対策です。

「外部向けゾーン情報と内部向けゾーン情報の分離」
「コンテンツサーバとキャッシュサーバの分離」
それぞれの機能ごとに別々のサーバを作って、必要な情報以外は外部へ出さないようにします。

「ゾーン転送の制限」
インターネットからのゾーン転送を受け付けないようファイアウォールで制限をかけたり、
ゾーン転送は、セカンダリDNSサーバのみしか行わないよう設定します。

「キャッシュサーバの制限」
アクセスリストをかけて利用可能なクライアントのネットワークアドレスを指定します。
また、問い合わせ数を制限し、DoS攻撃に備えます。

 



コメントを残す