構築事例:DNSキャッシュサーバの水責め攻撃対策
近年、日本国内のISPでDNSキャッシュサーバの障害が報告されています。DNS水責め攻撃とよばれる攻撃が行われたためです。そのため、各ISPでは対策に追われています。本事例は、デージーネットがDNSキャッシュサーバにDNSサーバへの水責め攻撃の対策を行ったものです。
- お客様が悩まれていた課題
- DNSキャッシュサーバに障害が発生する
- DNSキャッシュサーバに障害が繰り返し発生する
- DNSキャッシュサーバに発生する障害の原因を特定できない
- +導入企業プロフィール
- ★
導入企業業種
情報・通信(愛知県)
ユーザー規模
10万人
利用OS
CentOS7
導入月
2017年10月
デージーネットが提案した「DNSキャッシュサーバの水責め攻撃対策」
DNSのログから水責め攻撃を検出
お客様から、既存のDNSサーバに障害が発生しているということで相談がありました。障害は、何度も発生し、障害原因を突き止めて対策を行う必要がありました。そこで、デージーネットで原因を調べ、対策を立案しました。
DNSログを解析し、攻撃の発生を検知
このお客様は、DNSキャッシュサーバとしてBINDを利用していました。そのため、BINDでDNSログを保管して、解析することが検討されました。しかし、DNSログを保管する負荷が高く、DNSキャッシュサーバとしての性能が大きく低下するため、導入することができませんでした。
そのため、デージーネットでは、まずDNSキャッシュサーバをUnboundに変更することをお勧めしました。また、Unboundでdnstapという仕組みを使うことで、DNSの名前解決リクエストのDNSログを高速に保管することにしました。
ビッグデータ解析の技術を応用
DNSログは、ビッグデータの全文検索エンジンであるElasticsearchに保管することにしました。そして、Kibanaというソフトウェアを使って、DNSログの解析を行い可視化ができるように準備しました。
水責め攻撃と判明
UnboundのDNSログを解析したところ、特定のドメインに対して、存在しないアドレスやサブドメインを付けた問い合わせが多数行われていることが分かりました。存在しないアドレスやサブドメインのため、DNSキャッシュサーバは外部の権威DNSサーバにリクエストを送信します。この名前解決に時間が掛かるため、DNSキャッシュサーバの処理が滞留し、本来行うべき処理が行えなくなっていました。問い合わせ元は、ISPの顧客ネットワークでした。そのため、デージーネットでは、水責め攻撃であると考えて対策を行うことにしました。
水責め攻撃では、加入者宅のルータやホームサーバなどの脆弱性を利用します。それらの機器に、不正なDNSの問い合わせを行わせることで、該当ドメインのサービスを妨害しようとします。その時に、該当機器がISPのDNSキャッシュサーバに問い合わせを行うため、障害が発生していたのです。
Unboundの最新機能で水責め攻撃への対策を検討
DNSの問い合わせ元が、顧客の機器であるため、不正な問い合わせとして、単純に遮断することはできません。そのため、Unboundのratelimitと呼ばれる機能を利用して対策を行うことにしました。しかし、当時のCentOS7のUnboundパッケージでは、ratelimitを利用することができませんでした。そのため、当時の最新のUnboundをコンパイルし、インストールしました。
Unboundのratelimit機能は、水責め攻撃の対象になっているDNSゾーンに、自動的に流量制限を行なうことができます。この機能を有効にすることで、問題の発生を抑えることができると考えたのです。
流量制限の懸念点を払拭
ただ、多くのユーザが利用するドメインが水責め攻撃の対象の場合には、Unboundの流量制限により問題が生じるのではないかという懸念がありました。しかし、Unboundのratelimitの機能では、既にキャッシュされている情報は制限対象にならないことが分かりました。そのため、多くのユーザが利用しているドメインの名前解決は、制限対象になりにくく、ほとんどの場合には、攻撃者のみが制限対象になることが分かりました。また、あくまでも流量制限機能であるため、もし制限対象となった場合にも名前解決は継続して行われます。一度、名前解決が行われれば結果がキャッシュされるため、問題にはならないことがわかりました。
水責め攻撃への対策の効果
不正アクセスに流量制限が掛かったことで、DNSキャッシュサーバの負荷を低下することができました。この対策で、サービスを一般利用している善良なユーザへの影響を最小限に抑えながら、水責め攻撃への対策を行うことができたのです。
導入後の結果
DNSサーバへの水責め攻撃の対策が自動的に行えるようになり、DNSキャッシュサーバが障害で停止することもなくなりました。そのため、運用がとても楽になり、安心できるようになったと評価を頂いています。また、DNSログを解析することで、問題の発生元となった古いルータやホームサーバを見つけ、利用者に連絡をしていくことで、徐々に問題の発生源が減りました。結果的に、DNSサーバへの水責め攻撃そのものも減らすことができました。
【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー
日程: | 11月22日(金)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSを導入したいけど、どこから手をつければいいかわからない方必見! |
ご興味のあるかたはぜひご参加ください。 |
DNSキャッシュサーバの水責め攻撃対策の関連ページ
- Unbound水責め攻撃対策調査報告書
- DNS水責め攻撃対策調査報告書
- DNDNSへの水責め攻撃防止システム構築サービス
- BIND〜DNSサーバの特徴と弱点〜
- DNSサーバのおすすめOSS比較9選!選定ポイントも解説
- Elasticsearchとは