某ベンダーのDNSブロッキング防止策
Categories:
最近、DNSパブリックサービスでIP異常アクセスが発生していることに気づきました。1秒間に数十回も同じドメイン名を繰り返しリクエストしており、DNSプロトコルを全く遵守していませんし、グローバルTTL(Time To Live)値も無視しています。

当初はこのIPが攻撃者かと思いましたが、トラフィックを観察した結果、主にとあるベンダーのアプリがDNSに対して猛烈にリクエストしていることがわかりました。バックエンドで設定されたTTL=10は、DNSクエリの応答値の有効期間が10秒間であることを意味し、この10秒間はクライアントが同じ応答値を使い続けるべきで、再度DNSサーバーに問い合わせるべきではありません。しかし、このアプリは1秒間に数十回も同じリクエストを送っており、DNSプロトコルに基づくTTL値の扱いを正しく行っていないことがわかります。バックエンドのリクエスト統計では、90%以上のリクエストがこのドメインに対するものでした。
おそらくこのベンダーはDNSブロッキングの手段を把握しており、こちらがアクセスを許可しなければ、ユーザーアプリ側からDNSサーバーに対してDoS攻撃を行うという方法を取っているのかもしれません。バックエンド側では同時に1秒間に20回のバーストリクエストしか許可しないように設定されていたため、この無謀な行動はユーザーの他の正常なDNSクエリにも影響を与え、他のアプリの正常な使用にも支障をきたしてしまいます。
このような単一IPが同一ドメインに対して猛烈にリクエストする行為を見れば、管理者側もブロックしたくても許可せざるを得ない状況になるでしょう。