ランダムドメインとファントムドメイン
攻撃の本質は、キャッシングDNSサーバーが第3および/または第4レベルのドメインに対する多数のリクエストを受信する一方で、第2レベルゾーンにサービスを提供するDNSサーバーが応答しないか、長い遅延で応答することです。 特別に準備されたDNSゾーン/サーバーとNXDOMAINによる攻撃を受けているDNSサーバーの両方を使用できます。この場合、キャッシングDNSも攻撃に関与します。 デフォルトでは、バインドは発信再帰クエリの最大数に対して構成されます:1000(recursive-clientsパラメーター)および10秒の待機時間(resolver-query-timeoutパラメーター)。 したがって、このようなドメインへの1秒あたり100リクエストという一定の負荷のみが、発信DNSサーバー接続を完全にブロックし、キャッシュの陳腐化とサービス拒否の一部につながります。 クエリの数を増やすと、DNSキャッシュの操作が完全にブロックされる可能性があります。
プロバイダーのネットワークでは、この攻撃は次の第2レベルドメインを使用して実行されました。
- ludashi123.com、ludashi12345.com、ludashi258.com、ludashi360.com、ludashi456.com、ludashi789.com;
- 8333hh.com、8777hh.com、9111hh.com、9222hh.com、9333hh.com、9555hh.com、9666hh.com、9777hh.com、9888hh.com;
- 115seo.com。
これらのドメインのクエリの例を次に示します。
- cvrwuco.www.9555hh.com;
- fqtwikq.www.9666hh.com;
- epwvczehmdmxepwx.www.9777hh.com;
- yrad.list.115seo.co;
- xnhrw.www.ludashi789.com;
- g.www.ludashi456.com。
診断方法
DNSサーバーが攻撃されたことを分析および判断するには、直接および間接のいくつかの可能性があります。
- 最も単純で最も間違っているのは、ユーザーに依存し、ユーザーが問題を特定するまで待つことです(ただし、一部のユーザーは切断される場合があります。
- DNSパフォーマンスの低下の間接的な兆候は、ユーザートラフィックの減少です。
- 監視システムは、最小のTTLで最も一般的なDNS名の翻訳の正確さを追跡できます。 たとえば、Aレコードwww.facebook.comのTTLはわずか60秒です。
- ログファイルとDNS統計を分析します。
- DNSサーバーとの間で定期的にトラフィックを記録し、要求/応答を分析します(自動モード)。
- 自動DNSサーバーセキュリティシステムを使用します。
最も正確でシンプルなのは(DNS保護システムがない場合)、ログファイルの分析です。 例としてバインドを使用して、分析に役立つ可能性のあるメッセージを検討します。
クライアント192.168.XY.137#57717(lie.zz85.com):クエリ:lie.zz85.com IN A +(192.168.XY.139)
クライアント192.168.XY.137#57717(lie.zz85.com):query.cでlie.zz85.com/IN/Aのクエリに失敗しました(SERVFAIL):7553
クライアント192.168.XY.11#1567:再帰的なクライアントはもうありません:クォータに達しました
上記のリストは、3種類の有用なイベントを示しています。
- エントリ「client 192.168.XY.137#57717(lie.zz85.com):query:lie.zz85.com IN A +(192.168.XY.139)」は、どのユーザー(192.168.XY.137)およびlie.zz85.comドメインが要求したポート(57717)。
- レコード "client 192.168.XY.137#57717(lie.zz85.com):query.cでのlie.zz85.com/IN/Aのクエリ失敗(SERVFAIL):7553"は、DNSサーバーがDNSを解決できなかったことを報告します。 -NameおよびクライアントSERVFAILに渡されます。
- エントリ「クライアント192.168.XY.11#1567:これ以上再帰的なクライアントはありません:クォータに達しました」は、サーバーが再帰セッションの可能な最大数に達したため、ユーザー192.168.XY.11がアクセスを拒否されたことを報告します。 つまり、攻撃は結果を達成し、DNSは正当なクライアントにサービスを提供しなくなりました。
記録されたトラフィックがある場合、Wiresharkの統計/ DNSツールを使用して攻撃に関する追加情報を取得できます(rcode /サーバー障害、クエリタイプ/パケットタイプ不明、クラス/不明パラメーター)。
Infoblox Advanced DNS Protectionデバイス(攻撃に対するDNS保護が実装されています)およびDNS Firewall(悪意のあるサイトとIPアドレスのリストに対するDNSクエリのチェック)で記録されたトラフィックの分析を行いました。 トラフィックのチェックは、tcprewriteとtcpreplayを使用して非常に簡単に実行され、パケットはInfobloxデバイスに送信されました。 このようなチェックの場合、13秒で十分でした(1秒あたり約3万件のDNSクエリの負荷)。 ランダムおよびファントムドメインに基づく攻撃に加えて、増幅、プロトコル異常(上記のWiresharkを参照)、TCP / UDPフラッド、キャッシュポイズニングの試行(トラフィックが完全にクリーンアップされていない可能性があります)、およびDNSトンネルが記録されました。
さらに、次のことが発見されました。
- DNSを攻撃したクライアントは、DNSファイアウォールに記録された悪意のあるドメイン/ IPにもアクセスしました。
- 攻撃要求は少数のポートから来ました。 私のオープンな再帰サーバーと同じです(以前の記事では、発信ポートの分析はありません)。
攻撃対策
ランダム/ファントムドメインでの攻撃に対処するには、次の方法を提案できます。
- 再帰セッションの最大数を増やすには、非常に低い値を設定し、サーバーに十分なメモリがある場合にのみ役立ちます(バインドは各再帰セッションで約20KBのメモリを使用します)。
- DNSレベルで応答しないドメインを監視およびブロックするためのパラメーターを設定します(バインドの場合:クエリごとのクライアント、クエリごとの最大クライアント数)-ドメイン/要求の一部が繰り返される場合にのみ役立ちます。
- 応答速度の制限を構成する-複数のアドレスからの多数の要求を支援します。
- ドメイン名(iptablesがこれを行うことができます)またはIPアドレス/ポートのペアのいずれかにより、ファイアウォールへの攻撃要求を遮断します。
- 第2レベルドメインを入力するRPZまたはダイレクトゾーンを作成します。
- 特殊なAOまたはソフトウェアを使用して、攻撃を自動的に撃退します。
PSこれまでのところ、私はテスト機器Infoblox ADPにアクセスできます。 記録してトラフィックを提供してくれれば、攻撃のために追い払うことができます。 デバイスをスパンポートに接続するか、記録されたトラフィックを実行することにより、悪意のあるサイト(DNSファイアウォール)へのアクセスのトラフィックを自分でテストできます。 DNS Firewallパッケージはここからダウンロードできます(登録が必要です。VmWareESXiにインストールし、vCenterが必要です)。