押し寄せるDNSへの攻撃
前回の勉強内容
DNSは、ドメイン名やホスト名などとIPアドレスとを対応付けます。
DNSは、「ドメイン名」を受け取ってから「IPアドレス」を返したり、「IPアドレス」を受け取って「ホスト名」を返したりと「ドメイン名やホスト名」と「IPアドレス」の紐付けをしてくれます。
正式名称は、Domain(領域) Name(名前) Systemです。
こんな便利なDNSは、いろんな種類の攻撃を受けます。
「令和3年度 春期 情報処理安全確保支援士試験 午後Ⅰ 問2」を参考にDNSへの攻撃をお勉強します。
DNSに反射させるDNSリフレクション攻撃
DNSリフレクション攻撃は、送信元のIPアドレスを偽装してDNSへ大量の問い合わせを行います。
IPアドレスは、攻撃対象のIPアドレスに偽装します。
そうするとDNSは、攻撃対象のIPアドレスに大量の応答を返すので攻撃対象が過負荷に陥ってしまいます。
攻撃者は、②送信元のIPアドレスを偽装した名前解決要求を外部DNSサーバに送ることによって、外部DNSサーバを踏み台とし、攻撃対象となる第三者のサーバに対し大量のDNSパケットを送りつけるというDos攻撃を行える。
(省略)
設問1(2)本文中の下線②の攻撃名称を20字以内で答えよ。>> 答え)DNSリフレクション攻撃出典:令和3年度 春期 情報処理安全確保支援士試験 午後Ⅰ 問2
オープンリゾルバは、知らない人からの問い合わせでも対応してしまいます。
オープンリゾルバは、アクセス制限をしておらず、不特定の相手の問い合わせにも対応してしまうDNSサーバです。
悪い人から踏み台として利用されてしまいます。
オープンリゾルバの中には、 デフォルト設定のままであるなどの理由で、 本来はDNSサーバを意図したものではないにも関わらず、 管理者や利用者が気づかないうちにDNSの応答機能が有効になっているものがあります*4。
オープンリゾルバとなっているサーバやネットワーク機器は、 DDoS攻撃の踏み台になってしまう恐れがあるため、 対策をとることが必要です。
(ご注意)オープンリゾルバの中にはDDoS攻撃の踏み台などに悪用されないように、 対策が取られているものがあります。
オープンリゾルバ(Open Resolver)に対する注意喚起 - JPNIC
IPアドレスの偽装を簡単にできるUDPを使って攻撃します。
UDP(User Datagram Protocol)は、最小限の仕組みでデータを送受信できるようにしているので「リアルタイム性に優れた」反面「IPアドレスの偽装が容易にできる」のです。
DNSリフレクション攻撃では、悪い人が自分のIPアドレスを偽装するのにUDPを使うのです。
- (答え)DNSリフレクタ攻撃
- SQLインジェクション攻撃
- ディレクトリトラバーサル攻撃
- パスワードリスト攻撃
出典:平成30年 秋期 情報処理安全確保支援士 午前Ⅱ 問7
DNSリフレクション攻撃の踏み台にならないための対策
「令和3年度 春期 情報処理安全確保支援士試験 午後Ⅰ 問2」から踏み台にならないための対策を見ていきます。
まずは、「DNSサーバを分離する」です。
「外部DNSサーバ」として名前解決を一挙に請け負っていたサーバを「権威DNSサーバ」「フルサービスリゾルバ」に分けて役割を分担させます。
外部DNSサーバを廃止した上で、DNS-KとDNS-FというDNSサーバをDMZ上に新設し、権威DNSサーバの機能をDNS-Kに、フルサービスリゾルバの機能をDNS-Fに移行することを考えた。
出典:令和3年度 春期 情報処理安全確保支援士試験 午後Ⅰ 問2
機能 | 説明 | 参考サイト |
---|---|---|
権威DNSサーバ(コンテンツサーバ) | 特定のゾーン情報を持っていて、他のサーバーに問い合わないで名前解決できる | インターネット用語1分解説~権威DNSサーバ(authoritative name server)とは~ - JPNIC |
フルサービスリゾルバ(キャッシュサーバー) | 自分で持っているキャッシュ情報か権威DNSサーバへの合わせで名前解決する | JPRS用語辞典|フルサービスリゾルバー(キャッシュDNSサーバー) |
DNSサーバを分離した上で、ファイアーウォールのフィルタリングルールを変更して接続を制限します。
(変更前)
項番 | 送信元 | 宛先 | サービス | 動作 |
---|---|---|---|---|
5 | 外部DNSサーバ | インターネット | DNS | 許可 |
6 | インターネット | 外部DNSサーバ | DNS | 許可 |
... | ... | ... | ... | ... |
14 | 全て | 全て | 全て | 拒否 |
インターネットからフルサービスリゾルバへの問い合わせを受け付けないようにして、何でもかんでも名前解決を受け付けないように制限します。
(変更後)
項番 | 送信元 | 宛先 | サービス | 動作 |
---|---|---|---|---|
5 | DNS-F(フルサービスリゾルバ) | インターネット | DNS | 許可 |
6 | インターネット | DNS-K(権威DNSサーバ) | DNS | 許可 |
... | ... | ... | ... | ... |
14 | 全て | 全て | 全て | 拒否 |
DNSの再帰的な問合せを使ったサービス不能攻撃(DNS amp)の踏み台にされることを防止する対策はどれか。
- (答え)キャッシュサーバとコンテンツサーバに分離し,インターネット側からキャッシュサーバに問合せできないようにする。
- 問合せされたドメインに関する情報をWhoisデータベースで確認する。
- 一つのDNSレコードに複数のサーバのIPアドレスを割り当て,サーバへのアクセスを振り分けて分散させるように設定する。
- 他のDNSサーバから送られてくるIPアドレスとホスト名の対応情報の信頼性をディジタル署名で確認するように設定する。
出典:平成24年 春期 情報セキュリティスペシャリスト試験 午前Ⅱ 問14
キャッシュポイズニング攻撃
フルサービスリゾルバ(キャッシュサーバー)では、問い合わせ内容を覚えておきます(キャッシュ)。
こうすることで、内容と同じ問い合わせがまた来た時にキャッシュの情報を送信元へ返して、何度も権威DNSサーバに問い合わせなくて済むようにしています。
このキャッシュを蓄積する機能を利用して、悪い人が嘘の情報をキャッシュとして蓄積されるようにするのがキャッシュポイズニング攻撃です。
DNSキャッシュポイズニングに分類される攻撃内容はどれか。
- DNSサーバのソフトウェアのバージョン情報を入手して,DNSサーバのセキュリティホールを特定する。
- (答え)PCが参照するDNSサーバに誤ったドメイン情報を注入して,偽装されたWebサーバにPCの利用者を誘導する。
- 攻撃対象のサービスを妨害するために,攻撃者がDNSサーバを踏み台に利用して再帰的な問合せを大量に行う。
- 内部情報を入手するために,DNSサーバが保存するゾーン情報をまとめて転送させる。
出典:平成29年 秋期 基本情報技術者試験 午前 問37
なぜ、「嘘の情報」をキャッシュとして蓄積されるようにするかというと
「嘘の情報」として偽サイトや偽サーバに誘導して情報を盗もうとするからです。
M社のショッピングサイトにアクセスしていた福岡営業所の社員Aさんから、①「ホームページのリンクをクリックしてショッピングサイトにアクセスしようとしたところ、いつも表示されるショッピングサイトとは違うサイトが表示された。」という報告が東京本社に入った。
平成22年度春期 応用情報技術者試験 午後 問9
DNSキャッシュポイズニング攻撃が成功すると、攻撃対象のフルサービスリゾルバが管理するリソースレコードのうち、メールサーバのAレコードのIPアドレスが、例えば攻撃者のメールサーバのものに書き換えられてしまい、電子メールが攻撃者のサーバに送信されてしまう。
出典:令和3年度 春期 情報処理安全確保支援士試験 午後Ⅰ 問2
再帰的な問合せに対しては、内部ネットワークからのものだけに応答するように設定します。
DNSキャッシュサーバに対して外部から行われるキャッシュポイズニング攻撃への対策のうち,適切なものはどれか。
- 外部ネットワークからの再帰的な問合せにも応答できるように,コンテンツサーバにキャッシュサーバを兼ねさせる。
- (答え)再帰的な問合せに対しては,内部ネットワークからのものだけに応答するように設定する。
- 再帰的な問合せを行う際の送信元のポート番号を固定する。
- 再帰的な問合せを行う際のトランザクションIDを固定する。
出典:平成29年 春期 応用情報技術者試験 午前 問41
DNSヘッダ内のIDはランダムに変更します。
DNSの問い合わせの仕組みとして、キャッシュサーバは、権威サーバに問い合わせを送る時にIDを合わせて送ります。
権威サーバから応答が返ってきた時に自分が送ったIDと同じIDがメッセージに指定されていれば、正しい応答だと信じます。
自分が送ったIDと違うIDがメッセージに指定されていれば、不正な応答だと思って捨ててしまいます。
なので問い合わせする時に指定するIDはランダムにしておかないと悪い人に悪用されてしまいます。
DNSキャッシュポイズニング攻撃に対して有効な対策はどれか。
- DNSサーバで,マルウェアの侵入をリアルタイムに検知する。
- (答え)DNS問合せに使用するDNSヘッダ内のIDを固定せずにランダムに変更する。
- DNS問合せに使用する送信元ポート番号を53番に固定する。
- 外部からのDNS問合せに対しては,宛先ポート番号53のものだけに応答する。
出典:平成28年 春期 情報セキュリティスペシャリスト 午前Ⅱ 問12
カミンスキー攻撃は、進化したキャッシュポイズニング攻撃です。
カミンスキーさんが発見したカミンスキー攻撃は、「ランダム文字列」と「乗っ取り対象のドメイン名」を合わせることで、わざとキャッシュにない情報でフルサービスリゾルバが権威DNSサーバに問い合わせを行うようにします。
そして、すかさず偽情報をフルサービスリゾルバに送りつけることで効率的に偽情報をキャッシュさせます。
再帰的な問合せを行う際の送信元のポート番号をランダム化します。
UDPは、「情報の偽装が容易にできる」できてしまうので、権威サーバのふりをして問い合わせで使用するIDも偽装してくることがあります。
キャッシュサーバから権威サーバへ問い合わせるときに使用するUDPポート番号を、固定あるいは狭い範囲で使用するのではなく、広範囲な番号からランダムに選択して通信に使用することによって、応答パケットの偽装を難しくさせる方法です。偽装の難易度は、ポート番号の利用範囲に比例して難しくなります(図7)。
問い合わせで使用するポート番号をランダム化して「ID + ポート番号」の組み合わせの可能性を広げることで不正な応答を見分けやすくします。
二つ目の対策は、送信元ポート番号をランダム化する対策である。
出典:令和3年度 春期 情報処理安全確保支援士試験 午後Ⅰ 問2
DNSには、ソースポートランダマイゼーションというポートをランダム化する機能がくっついているので有効にしておく必要があります。
■(緊急)キャッシュポイズニング攻撃の危険性増加に伴う
DNSサーバーの設定再確認について(2014年4月15日公開)
~問い合わせUDPポートのランダム化の速やかな確認・対応を強く推奨~
DNSSECを使って、ディジタル署名によってDNS応答の正当性を確認できます。
DNSSECに関する記述として,適切なものはどれか。
- DNSサーバへのDoS攻撃を防止できる。
- IPsecによる暗号化通信が前提となっている。
- 代表的なDNSサーバの実装であるBINDの代替として使用する。
- (答え)ディジタル署名によってDNS応答の正当性を確認できる。
出典:平成24年 秋期 情報セキュリティスペシャリスト試験午前Ⅱ 問18
DNSSECは、正式名称DNS Security(安全) Extensions(拡張機能)で、権威サーバからのDNS応答に電子署名を追加します。
DNSSECについての記述のうち,適切なものはどれか。
電子署名を問い合わせ側で検証して、正しい権威サーバからの応答であるかを判断します。
DNSSECで実現できることはどれか。
- (答え)DNSキャッシュサーバからの応答中のリソースレコードが,権威DNSサーバで管理されているものであり,改ざんされていないことの検証
- 権威DNSサーバとDNSキャッシュサーバとの通信を暗号化することによる,ゾーン情報の漏えいの防止
- 長音"ー"と漢数字"一"などの似た文字をドメイン名に用いて,正規サイトのように見せかける攻撃の防止
- 利用者のURLの打ち間違いを悪用して,偽サイトに誘導する攻撃の検知
出典:情報セキュリティスペシャリスト試験 午前Ⅱ 問14