社内で毎週エンジニアの勉強会を行っており、次回は自分の担当なので発表用の資料をこちらにまとめていこうと思います。
教材
教材はIPAが出している安全なウェブサイトの作り方を使っています。
https://www.ipa.go.jp/security/vuln/websecurity.html
2.2~2.4の章が自分の担当なのでこちらの記事では 2.2 DNSに関する対策
についてまとめていきます。
DNSにおける問合せの流れ
DNSにおける問合せの流れについてはJPRSのサイトの図がわかりやすかったので引用します。
引用: 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を狙った攻撃
キャッシュポイズニング攻撃
攻撃方法
引用:
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の図を引用します。
引用:
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ログを解析して異常な数の不審な問合せをブロックする方法があるとのこと