LoginSignup
3
2

[セキュリティ]DNSに対する攻撃方法と対策まとめ

Last updated at Posted at 2021-04-02

社内で毎週エンジニアの勉強会を行っており、次回は自分の担当なので発表用の資料をこちらにまとめていこうと思います。

教材

教材はIPAが出している安全なウェブサイトの作り方を使っています。
https://www.ipa.go.jp/security/vuln/websecurity.html

2.2~2.4の章が自分の担当なのでこちらの記事では 2.2 DNSに関する対策についてまとめていきます。

DNSにおける問合せの流れ

DNSにおける問合せの流れについてはJPRSのサイトの図がわかりやすかったので引用します。
image.png

引用: https://jprs.jp/glossary/index.php?ID=0145

example.jpというドメインの名前解決をしたい場合、下記の流れでIPアドレスを取得します。

  • クライアントはキャッシュDNSサーバーに問合せ
  • キャッシュDNSサーバーはルートサーバーに問合せ
  • ルートサーバーはjpのDNSサーバーのIPアドレスを応答
  • キャッシュDNSサーバーはjpのDNSサーバーに問合せ
  • jpのDNSサーバーはexample.jpのIPアドレスを応答

参考:
権威DNSサーバーってどこにあるの?
http://dnsops.jp/event/20150724/LT-simamura-1.pdf

一般家庭にあるネットにつなげるために設置されたルータの中にあるDNSのプログラムはスタブリゾルバでしょうか。(ter)
https://teratail.com/questions/99195

DNSの脆弱性の影響

安全なウェブサイトの作り方の資料から引用

DNS により、ドメイン名を 指定するだけで、該当するウェブサイトへのアクセスやメールの送受信が可能になります。そのため、 DNS に問題が発生すると、ウェブサイトや電子メール等のインターネットを利用するサービス全てに影響 が及びます

DNSを狙った攻撃

キャッシュポイズニング攻撃

攻撃方法

スクリーンショット 2021-04-07 17.43.46.png
引用:
https://www.ipa.go.jp/security/vuln/documents/2008/200812_DNS.html

  • DNSキャッシュサーバーのキャッシュが切れた時に発生
  • 権威DNSサーバーに問い合わせた際に悪意あるユーザーから偽の応答が注入され、偽のIPアドレスがキャッシュされる
  • 例えば、example.jpのIPアドレスは192.168.1.23が正解なのに、172.16.3.2とキャッシュされる
  • ユーザーがexample.jpをのIPアドレスを取得しようとした時に偽のウェブサイトのIPアドレスの172.16.3.2が応答されてしまう

キャッシュポイズニング攻撃の対策

ソースポートランダマイゼーション

キャッシュDNSサーバーが権威DNSサーバーに問合せを行う際に発信元のポート番号をランダムに変化させる手法。
攻撃者はポートを特定しないと応答を注入できないので攻撃しにくくなる。

オープンリゾルバー対策

オープンリゾルバーとは?
https://wa3.i-3-i.info/word12274.html

アクセス元を制限しておらずどこからでもアクセスできるDNSキャッシュサーバーのこと。

DNSキャッシュサーバーへのアクセスを制限することでキャッシュポイズニング攻撃を受ける機会を減らす。

リフレクター攻撃

攻撃方法

JPRSの図を引用します。
image.png
引用:
https://jprs.jp/glossary/index.php?ID=0156

  • DNSキャッシュサーバーに送信元を偽った問合せを送る
  • DNSサーバーは偽りの送信基に応答を返す
  • 上記を問合せを大量に行うことで偽りの送信元(攻撃対象)に大量に応答が返され、サービス不能状態にさせられる

リフレクター攻撃の対策

オープンリゾルバー対策

キャッシュポイズニング攻撃と同様でDNSキャッシュサーバーに問合せできなければ成立しないのでDNSサーバーへのアクセスを制限する

送信元の検証

送信元のアドレスが正しいか事前に検証することで不正な問合せをブロックする
https://www.iij.ad.jp/dev/tech/activities/sav/

水責め攻撃

攻撃方法

参考: https://jprs.jp/related-info/guide/021.pdf

  • abcdefg.example.jpみたいに、example.jpのランダムなサブドメインに対して問合せを送信
  • DNSキャッシュサーバーは指定された文字列のサブドメインに対する応答のキャッシュを持っていないため権威DNSサーバーに問合せ
  • ランダムなサブドメインに対する問合せが大量に送られることで問合せを受けるDNSサーバーに大量に問合せが送られサービス不能になる

水責め攻撃の対策

DNSログの解析

参考:
https://cybersecurity-jp.com/column/34745

こちらの記事ではDNSログを解析して異常な数の不審な問合せをブロックする方法があるとのこと

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2