オープンリゾルバの危険性|DNSサーバを公開することで発生するセキュリティリスクを理解する

目次
オープンリゾルバの危険性
DNSサーバを構築する際に注意しなければならない設定の一つがオープンリゾルバです。
BINDやUnboundなどのDNSサーバを初めて構築した際、自分では気付かないうちにオープンリゾルバになってしまうことがあります。
オープンリゾルバは第三者から自由に利用できるDNSサーバのことであり、セキュリティ上の大きな問題となります。
実際に過去にはオープンリゾルバが悪用され、大規模なDDoS攻撃の踏み台として利用された事例も数多く存在します。
本記事ではオープンリゾルバの仕組みや危険性、防止方法について解説します。
オープンリゾルバとは
オープンリゾルバとは、誰からのDNS問い合わせにも応答するキャッシュDNSサーバのことです。
本来キャッシュDNSは社内利用者や契約者向けに提供されるものです。
しかし設定ミスによってインターネット全体へ公開されることがあります。
インターネット
↓
誰でも利用可能
↓
キャッシュDNS
この状態がオープンリゾルバです。
リゾルバとは
リゾルバは名前解決を行うDNSサーバです。
www.example.com
↓
問い合わせ
↓
キャッシュDNS
↓
IPアドレス取得
利用者の代わりに名前解決を行います。
正常な構成
通常は内部利用者のみ許可します。
社内PC
↓
キャッシュDNS
↓
インターネット
外部からの利用は禁止します。
オープンリゾルバの状態
世界中の利用者
↓
キャッシュDNS
↓
名前解決
誰でも利用可能な状態です。
なぜ危険なのか
オープンリゾルバは攻撃者に悪用されます。
特にDNSアンプ攻撃の踏み台として利用されるケースが有名です。
DNSアンプ攻撃とは
攻撃者は送信元IPアドレスを偽装します。
攻撃者
↓
送信元偽装
↓
オープンリゾルバ
↓
大量応答
↓
被害者
被害者へ大量通信が発生します。
増幅攻撃が成立する理由
DNSは小さな問い合わせに対して大きな応答を返すことがあります。
問い合わせ
60byte
応答
4000byte
通信量が数十倍になることがあります。
DDoS攻撃への悪用
多数のオープンリゾルバが利用されると大規模DDoS攻撃になります。
攻撃者
↓
1000台のオープンリゾルバ
↓
被害者
大きな通信量が発生します。
実際の被害事例
過去には数百Gbps規模の攻撃にDNSアンプ攻撃が利用されました。
現在でもオープンリゾルバは攻撃対象として狙われています。
情報収集への悪用
攻撃者はDNSサーバの応答内容から情報収集を行うことがあります。
- 利用中ドメイン
- 内部構成
- DNSソフトウェア情報
攻撃準備に利用されることがあります。
自社が加害者になる危険
オープンリゾルバを放置すると、自社サーバが攻撃の踏み台になります。
その結果、通信事業者から連絡が来ることもあります。
BINDで確認する方法
外部ネットワークから問い合わせます。
$ dig @dns.example.com google.com応答が返る場合は確認が必要です。
named.confで確認する設定
recursion yes;再帰問い合わせを許可する設定です。
これだけでは危険です。
allow-recursionとは
利用者を制限する設定です。
allow-recursion {
192.168.0.0/16;
};内部ネットワークだけ許可します。
allow-queryとは
問い合わせ可能な範囲を制御します。
allow-query {
localhost;
192.168.0.0/16;
};不要なアクセスを制限できます。
再帰問い合わせ無効化
権威DNSサーバでは再帰機能を無効化することがあります。
recursion no;安全性向上につながります。
ファイアウォールによる制御
DNSポートへのアクセス制限も有効です。
UDP/53
TCP/53
必要な通信だけ許可します。
BINDの推奨設定例
options {
recursion yes;
allow-recursion {
localhost;
192.168.0.0/16;
};
};社内利用向けの一般的な設定です。
公開DNSとの違い
Google Public DNSなどは意図的に公開されています。
しかし十分な設備と防御策を備えています。
一般企業が同じ運用を行うべきではありません。
ログ確認方法
# journalctl -u named大量アクセスがないか確認します。
監視すべき項目
- DNS問い合わせ数
- 外部アクセス数
- CPU使用率
- 帯域使用量
異常増加を監視します。
企業で実施すべき対策
- allow-recursion設定
- allow-query設定
- ファイアウォール制御
- ログ監視
- 定期設定監査
複数の対策を組み合わせます。
実務で覚えておきたいポイント
- オープンリゾルバは誰でも利用可能なDNSサーバである
- DNSアンプ攻撃の踏み台になる
- 自社が加害者になる可能性がある
- allow-recursionで利用者を制限する
- 権威DNSでは再帰問い合わせを無効化する
- 定期的な監査が重要である
まとめ
オープンリゾルバはDNSサーバ運用における代表的なセキュリティ問題の一つです。
放置するとDNSアンプ攻撃の踏み台として悪用され、自社が加害者になる可能性があります。
BINDではallow-recursionやallow-queryを適切に設定し、必要な利用者だけに再帰問い合わせを許可することが重要です。
DNSサーバを公開する際は、オープンリゾルバになっていないか必ず確認するようにしましょう。





