攻撃の成功率を計算式で表した場合、図3のようになります。
P(t):攻撃成功確率
P(s):1回のクエリで攻撃が成功する確率
t:攻撃持続時間
Rr:(1クエリ当たりの)応答攻撃レート
Rq:クエリ攻撃レート
W:正規応答が返ってくるまでのRTT
N:攻撃対象のレコードを保持するネームサーバ(Authoritative DNSサーバ)数
Port:Query portの数(固定ポートの場合1)
ID:DNSのID(16bit = 65536)
図3 攻撃成功確率
NTT情報流通プラットフォーム研究所 豊野剛氏
“DNS Cache Poisoningの概要と対処”より引用
図4は攻撃レートを250、1000、2000、4000ppsとしたときのDNSポイズニング成功率をグラフ化したものです。脆弱なDNSサーバを条件にした場合、このように攻撃の成功確率は20分で50%を超え、5.5時間で100%に達します。
筆者の検証環境で何度か確認したところ、およそ30分もあれば、確実にキャッシュ汚染を行うことが可能でした。また、早い場合は10分もあれば攻撃は成功してしまいます。そして、実際に攻撃者が攻撃を行う場合、クエリ攻撃レートを1重で行うことはまずないだろうと想定しています。少なくとも10多重、多ければ100多重以上、個人で利用できるコンピュータの性能が向上し、そして価格も低下していることを考えれば、攻撃の成功確率が飛躍的に高まることは想像に難くありません。
Copyright © ITmedia, Inc. All Rights Reserved.