ドメインネームシステムセキュリティ拡張(DNSSEC)は、各ドメインレベルに保存されているドメインネームシステム(DNS)レコード間の信頼チェーンを保護するためのプロトコルです。DNSSECでは、子レベルと親レベル間の信頼関係をルートゾーンまで遡って検証します。この多層的なプロセスにより、ドメインに関連付けられたDNSレコードの整合性を検証し、クライアントに対して、要求されたウェブサイトまたはサービスと実際に提供されるウェブサイトまたはサービスが同一であることを保証します。
この記事では、DNSSEC の仕組みと、企業が DNSSEC の実装を検討する必要がある理由について簡単に説明します。
DNSSEC はどのように機能しますか?
説明のために、Web サイトが test.themacjesus.com としてホストされているとします。
このプロセスの最初のステップでは、「.com」ネームサーバーが「themacjesus」(親子関係)のレコードを検証する必要があります。次に、「themacjesus」が「test」(これも親子関係)のレコードを検証します。最後に、ルートDNSサーバーが.comレコードを検証します。最後に、ルートによって公開されたレコードの整合性が、ゾーン署名鍵(ZSK)と呼ばれる秘密鍵と公開鍵のペアを使用して検証されます。さらに、鍵署名鍵(KSK)と呼ばれるセカンダリ鍵ペアがZSKの検証に使用されます。
DNSと同様に、DNSSECはユーザーからは見えません。しかし、バックグラウンドではセキュリティ拡張機能がドメインのルートゾーンに効果的に署名することで機能し、要求されたサイトが検証されるまで、後続の各レコードは親ドメインによる検証を必要とします。
参照: ネットワーク セキュリティ ポリシー (Tech Pro Research)
DNSSEC は何から保護しますか?
セキュリティ拡張機能対応DNSサービスの目的は、検証済みのウェブサイトやサービスへのアクセスです。その目的は、それらのサイトやサービスをホストしているサーバーに到達することです。保護機能としては、アカウント名やパスワードを収集するためにサイトやサービスを偽装する悪意のあるURLからの攻撃を防ぎます。これは、中間者攻撃中に悪意を持って挿入されたレコードの形で、あるいはDNSキャッシュポイズニングやスプーフィング攻撃といった既知の脆弱性の一部として発生する可能性があります。いずれの場合も、DNSレコードが検証できないためにドメインが解決されない場合、DNSSECは404エラー(ウェブサイトが見つかりません)を返します。
DNSSEC の制限は何ですか?
DNSSECで保護するドメインごとに追加レコードを作成・管理する管理オーバーヘッドは、ドメイン数によっては時間とコストの両面で大きな負担となる可能性があります。メールサーバーのMXレコードなど、追加サービスも対象とする必要がある場合、その範囲は飛躍的に拡大する可能性があります。MXレコードについて言えば、DNSSECで保護されたMXレコードの参照中にエラーが発生する既知の問題があり、Microsoft Exchange 2013以前のバージョンではエラーが発生する可能性があります。
DNSSEC 対応サイトの設定は、エラーのない状態でなければなりません。設定プロセス中にスペルミスなどのエラーが発生すると、保護対象のドメインと一致しないレコードが生成される可能性があります。このような場合、ドメイン検証に失敗し、ウェブサイトまたはサービスはリクエスト時に解決されません。
DNSSECはCIAセキュリティトライアドの一部として整合性を提供しますが、データの機密性や可用性は提供しません。また、DNSSECは分散型サービス拒否(DDoS)攻撃に対する保護も提供しません。これらはDNSSECスイートの制限事項ではありませんが、DNSSECがこれらの保護を提供すると誤って想定されることがあるため、知っておくことは重要です。
なぜ企業は DNSSEC を実装する必要があるのでしょうか?
DNSSECは、組織とそのユーザーに、日々の業務で利用するウェブサイトやサービスが正当なものであり、悪意のある攻撃者が偽装して認証情報やデータを入手しようとしているものではないという安心感をもたらします。マルチレベルドメインからルートDNSサーバーまで遡るチェックシステムとして機能することで、各リンク間の信頼チェーンを検証し、オンラインのウェブサイトやサービスと組織の間で確立される通信が徹底的に審査され、エンドツーエンドで整合性が検証されていることを保証します。
参照:内部セキュリティ脅威を軽減する27の方法(無料PDF)(TechRepublic)
DNSSEC を有効にするにはどうすればいいですか?
組織の DNS サーバーで DNSSEC を有効にすることは、通常、複数のステップから成るプロセスであり、複雑ではありませんが、ドメインのレジストラ、サイトのトップレベル ドメイン (TLD) 拡張子、ネームサーバーの構成 (社内で管理されているかサードパーティによって管理されているか) によって異なります。
CloudFlareのような一部のマネージドソリューションでは、フルマネージドDNSサービスを利用するユーザーであれば、マウスを数回クリックするだけでDNSSECを有効化できます。一方、セルフマネージドネームサーバーの場合、DNSSECを正しく実装するには、より詳細な設定が必要となるため、具体的な情報が必要となる場合があります。DNSSECの設定方法については、以下で一般的な手順を説明していますが、DNSSECを有効化するために必要なプロセスを正確に理解するためには、ITサポートチームや、ドメインサービスの管理を委託しているサードパーティサービスに問い合わせる必要があります。
DNSSECの設定
- TLD が DNS セキュリティ拡張機能をサポートしていることを確認します。
- DNSSEC 固有の要件を取得するには、IT 部門およびサードパーティのドメイン サービス プロバイダーにお問い合わせください。
- ドメインの DNS ゾーンのゾーン署名キー (ZSK) とキー署名キー (KSK) を生成します。
- DNS ゾーンに署名して、ドメインの署名済みゾーン レコードを生成します。
- DNS ゾーンの署名に使用される暗号化キーのハッシュ値を含む署名宣言 (DS) レコードを生成します。
- ドメインの DS レコードをセルフホスト型または完全管理型のネームサーバーにインポートし、必要に応じて手順 2 で取得した情報が利用できることを確認します。
- (オプション) Verisign Lab の DNSSEC デバッガー ツールを使用して、信頼チェーン内の各リンクをチェックし、ドメインでの DNSSEC の実装に影響する問題を診断します。
以下も参照:
- 米国連邦政府ウェブサイトの36%が重要なセキュリティテストに不合格(TechRepublic)
- macOSの新しいマルウェア「MaMi」がDNS設定を乗っ取る(TechRepublic)
- IBMのQuad9サービスが悪質なウェブサイトへのアクセスからユーザーを保護する仕組み(TechRepublic)
- Google Domains に証明機関認証レコードを追加する方法 (TechRepublic)
- DNS のセキュリティを確保できないのは「残忍な無知」だ:ジェフ・ヒューストン(ZDNet)
- 新しいウェブブラウジングセキュリティツールが登場: DNS over TLS (ZDNet)
- APNICが後援する提案により、DNSのDDoS耐性が大幅に向上する可能性がある(ZDNet)
貴社ではDNSSECを導入済みですか?導入前、導入中、導入後に、どのようなメリットやデメリットを感じましたか?ぜひ下のコメント欄からご意見をお聞かせください。
