今回は、DNSの脆弱性についてとなりますが、
そもそもDNSの仕組みについてから説明していきます。
Contents
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攻撃に備えます。
コメント