2023年春に起きたDNS水責め絨毯爆撃の観察記録
中京大学工学部 鈴木常彦
Jul 7, 2023 IOT62
http://www.e-ontap.com/misc/iot62slide/
本発表について
留意事項
- 2023/3/14 - 現在までの DNS 水責め攻撃のデータのうち、主として 3/15 - 5/31 を分析
- ハニーポット(オープンリゾルバ) 1 台のみでの一面的な観測
- 攻撃は継続中であり分析は不十分で未了
- 対策を目指した研究ではない
- オープンリゾルバの倫理の議論は歓迎だが質疑時間、、、
- 某当局が捜査中
DNS ハニーポット
2018 年 9 月から Unbound に以下の制限を施してハニーポットとしてのオープンリゾルバを運用
- FreeBSD の dummynet で UDP 外向き帯域を 5Mbps に制限
- クエリ元 IP アドレス毎でのレートを 1qps に制限
- ドメイン (ゾーン) 毎のクエリのレートを 2qps に制限
- パッチで DNSSEC (DNSSEC Do bit) を無効化
- DNSSEC 署名検証機能 (validator) をオフ (DO bit off で必然)
- バッファサイズ (TCP fallback ライン) を 512byte に制限
- クエリが多くなる qname-minimisation をオフ
- タイプ any のクエリを拒否
- 反復問い合わせのリトライを3回に制限
DNSSEC の無効化 (EDNS0 DO bit off) は Unbound ソースの util/net_help.h への以下のパッチによる
< #define EDNS_DO 0x8000 /* Dnssec Ok */
---
> #define EDNS_DO 0x0000 /* Dnssec NG */
パケットカウント
ipfw を用いて以下をカウントしている
- allow udp from any to me 53 : クエリのパケット数とデータ量
- allow udp from me 53 to any : 応答のパケット数とデータ量
- allow udp from any 53 to me 1024-65535 : 自身の反復クエリの応答パケット数とデータ量
- allow icmp from me to any icmptypes 3 : SADDNS 検知用
- allow log tcp from any to me 53 established : TCP クエリの記録
クエリ数推移
2018年からの推移
クエリ数推移
3月からの推移
トラフィック (outbound udp 53)
水責めと判断する理由
- 毎回異なる qname のクエリであり約 8 割がNXDOMAIN
(残りはワイルドカードによって NOERROR になったものが大半)
- クエリに続く多数の偽応答がみられない
(誕生日パラドックス攻撃が紛れている可能性がなくはないがキャッシュポイズニングの可能性は非常に低い)
- ICMP type 3 (port unreachable) の顕著な増加がみられない (SADDNS ではない)
- DNS アンプ攻撃はみられなかった (詐称の場合に反射はあるが否定応答は小さい)
- 単純な単語の探索はわずかでサブドメインテイクオーバー目的の探索の可能性は低い
- 実際に多くの権威サーバの応答障害を誘発
応答障害の検出
Unbound のログから "all servers for this domain failed, at zone ..." をゾーン毎にカウント
Jun 05 17:51:47 query: *.*.194.141 seibp.pref.*****.jp. A IN
Jun 05 17:52:20 error: SERVFAIL : all servers for this domain failed, at zone pref.*****.jp.
upstream server timeout
Jun 05 17:52:20 reply: *.*.194.141 seibp.pref.*****.jp. A IN SERVFAIL
Web への掲示
DDoS Victims Top 50 of Today -- Sat Jul 1 19:01:07 JST 2023
count zone time (first seen - last seen)
------------------------------------------------------------------------------
20641 hereyourhotlady.com. Jul 01 00:00:03 - Jul 01 17:06:19
17166 homesconnect.com. Jul 01 00:06:01 - Jul 01 17:06:15
8329 ajila.com. Jul 01 04:03:17 - Jul 01 16:24:10
4922 AF.MIL. Jul 01 00:06:15 - Jul 01 17:06:17
4134 sendcloud.es. Jul 01 00:06:05 - Jul 01 04:28:58
3738 blue.ch. Jul 01 06:28:18 - Jul 01 11:17:16
3494 OSD.MIL. Jul 01 02:33:54 - Jul 01 17:06:20
qnameの特徴
辞書を使用してランダムに生成された文字列と考えられる。辞書の使用はランダムドメイン名判定を回避するためか?
iba0afr.e-nyusatsu.pref.*****.jp.
oicirt01-gmail.mc.pref.*****.jp.
idp.iba0a.e-nyusatsu.pref.*****.jp.
log-app03.datapf.pref.*****.jp.
iba0aidp.e-nyusatsu.pref.*****.jp.
app04lyncdiscover.datapf.pref.*****.jp.
ns3-imap1d.mfis.pref.*****.jp.
contacts-app05.datapf.pref.*****.jp.
www-imap5d.asmile.pref.*****.jp.
応答障害 (3月15日 - 5月31日)
応答障害エラー/日
最小: 102,306
最大: 566,757
平均: 254,540
標準偏差: 110,039
応答障害ゾーン/日
最小: 707
平均: 1,982
最大: 10,116
標準偏差: 1,656
障害ゾーン総数 142,739 (うち jp は 585)
平均 250,721回/日 のレートリミットがかかった上での数字である。
ファイアウォールでカウントしたポート 53 への UDP パケット数は約 1万 / 5分 = 280万/日 (約 30 qps) であった。リミットされたクエリの約10倍が到来している。
クエリ数の推移
クエリ数
応答障害数の推移
障害の時間帯 (JP)
影響のある時間帯を考慮しているようには見えない
TLD別の応答障害ゾーン数 Top 40
(3/15 - 5/31)
- com 45123
- arpa 14848
- fr 6204
- net 5957
- de 5730
- org 4979
- uk 2202
- se 2112
- br 2043
- info 1993
- it 1590
- ca 1428
- ch 1393
- eu 1389
- xin 1381
- ru 1371
- cn 1371
- es 1351
- us 1274
- biz 1274
- tr 1215
- lv 1163
- nl 1102
- dk 1063
- be 958
- pl 957
- au 948
- lt 939
- ro 916
- in 821
- gov 777
- za 738
- at 667
- tech 663
- mx 623
- co 623
- xyz 605
- jp 585
- sk 580
JPドメイン (ゾーン単位) での応答障害カウント Top 30
(3/15 - 5/31)
- at.nttdocomo.co.jp. 23845
- pref.aichi.jp. 13758
- pref.okinawa.jp. 9883
- jil.go.jp. 9845
- pref.nara.jp. 9639
- pref.osaka.jp. 8882
- takashimaya.co.jp. 8704
- pmda.go.jp. 7528
- nies.go.jp. 6837
- enekoshop.jp. 6710
- hane-line.co.jp. 6656
- saisoncard.co.jp. 6642
- pref.toyama.jp. 6146
- android.jp. 4694
- v4.cyber.ipa.go.jp. 4513
- pref.kagoshima.jp. 3451
- boj.or.jp. 3408
- animate-onlineshop.jp. 3294
- yamaha.co.jp. 3222
- nta.co.jp. 2132
- csl.sony.co.jp. 1878
- post.japanpost.jp. 1645
- gaga.ne.jp. 1048
- umin.ac.jp. 904
- gov-online.go.jp. 761
- idc.nttdocomo.co.jp. 723
- city.osaka.lg.jp. 655
- ntt-east.co.jp. 630
- prtls.jp. 505
- montegrappa.jp. 453
攻撃元の分析 (1)
3月のIPアドレス分布
TCP接続元の死活監視グラフ
4/13 に調査したTCP接続元を ping で継続的に死活監視
攻撃元の分析 (2)
初日のIPアドレス数の推移
2 Mar-14 08:00-08:59
34 Mar-14 09:00-09:59
227 Mar-14 10:00-10:59
326 Mar-14 11:00-11:59
3月13日 89 -> 3月14日 1,541 -> 15日 2,756
その後のIPアドレス数/日
最小: 1,241
平均: 2,000
最大: 3,017
標準偏差: 484
総IPアドレス数 (3月15日-5月31日) 60,335
TCP 3,862 / IPアドレス総数 26,514 = 15% (5月分)
588 のTCP接続元のサンプリング分析 (4月5日) では 78% が米国の某大手データセンタ
攻撃例
3/22 mofa.go.jp (外務省) 攻撃の推移
3月22日 07:45 - 09:28 クエリ総数 1,632 (ratelimited)
6/5 pref.osaka.jp (大阪府) 攻撃の推移
6月5日 17:34 - 6月6日 01:44 クエリ総数 7,367 (ratelimited)
攻撃元はいずれも 1 IP アドレスのみで、1/4 qps (リミット前でも推定 数qps) の緩慢な攻撃であり膨大な数 (少なくとも数千) の踏み台の使用が推察される。
まとめ
- 飛来する平均クエリ頻度: 30qps
- 応答障害となったクエリ数/日: 254,540
- 応答障害が発生したゾーン数/日: 1,982
- 応答障害が発生したゾーン総数: 142,739
- 応答障害が発生したゾーン数(jp): 585
- 総IPアドレス数: 60,335
- IPアドレス数/日: 2,000
- TCP接続IPアドレス数 (5月分): 3862 (15%)
- 攻撃継続時間: (jp のみ分析)
- 1時間未満 77% (うち半数はクエリ1発のみ)
- 4時間未満 94%
- 最長 約26時間、次点 16時間 (jp の場合)
- 対策: レートリミット, 監視, オープンリゾルバ対策, リソース増, L7 F/W にてホワイトリスト, 我慢
参考リンク・文献
- 本論文
- 鈴木常彦: My Open Resolver Status, http://www.e-ontap.com/dns/openresolver/
- 鈴木常彦: Summary of Water Torture Attacks in 2023, http://www.e-ontap.com/dns/openresolver/downsitesummary2023.html
- 牧田大佑,吉岡克成, 松本勉,島村隼,井上大介,中尾康二: DNSハニーポットによるDNS Water Tortureの観測,コンピュータセキュリティシンポジウム2014論文集,330-337,2014
- Luo Xi and Wang Liming and Xu Zhen and Chen Kai and Yang Jing and Tian Tian: A Large Scale Analysis of DNS Water Torture Attack, Proceedings of the 2018 2nd International Conference on Computer Science and Artificial Intelligence, 168-173,2018
- 長谷川圭太,近藤大嗣,戸出英樹: ステルス性の高いDNS水責め攻撃に対する検知・防御手法の提案, 信学技報, vol. 120, no. 327, NS2020-116, pp. 31-36, 2021
- 長谷川圭太,近藤大嗣,戸出英樹:DNS水責め攻撃に対抗するDNSキャッシュサーバ上でのFQDNベースホワイトリストフィルタの提案及び考察, 信学技報, vol. 120, no. 4, NS2020-2, pp. 7-12, 2020
- 長野雅広: DNS権威サーバのクラウドサービス向けに行われた攻撃および対策, https://www.janog.gr.jp/meeting/janog51/wp-content/uploads/2022/12/janog51-dns-nagano.pdf
- JPRS: ランダムサブドメイン攻撃(DNS水責め攻撃), https://jprs.jp/glossary/index.php?ID=0137
- JPRS: サブドメインテイクオーバー, https://jprs.jp/glossary/index.php?ID=0267
- JPRS: DNSリフレクター攻撃(DNSアンプ攻撃), https://jprs.jp/glossary/index.php?ID=0156
- 森下泰宏: DNS水責め(Water Torture)攻撃について, https://2014.seccon.jp/dns/dns_water_torture.pdf
- 鈴木常彦: オープンリゾルバの状況,情報処理学会研究報告(IPSJ SIG technical reports) 2008 (37), 89-91, 2008-05.
- 鈴木常彦: 減らない脆弱性 - 隠れオープンリゾルバ -,経営情報学会 全国研究発表大会要旨集 2023年 202211 巻 3D-6,2022
- 鈴木常彦: 隠れオープンリゾルバのスキャナー開発と調査 ~ 進まない脆弱性対策 ~,信学技報, vol. 122, no. 406, NS2022-229, pp. 357-361, 2023
- 鈴木常彦: 隠れオープンリゾルバを放置している日本のドメイン, https://snoopy.e-ontap.com/vulnerables.html
- 鈴木常彦: 隠れオープンリゾルバ, http://www.e-ontap.com/dns/hidden-openresolver/
- 鈴木常彦: Port Randomize Tester, http://www.e-ontap.com/blog/20111114.html
- 鈴木常彦: 隠れオープンリゾルバを放置しているAC.JP, http://www.e-ontap.com/dns/hidden-openresolver/
- 鈴木常彦: Hidden Open Resolver Tester, https://snoopy.e-ontap.com/
- SADDNS, https://www.saddns.net/
- Yuuki Takano and Ruo Ando and Satoshi Uda andc Takeshi Takahashi and Tomoya Inoue: The Ecology of DNS Open Resolvers,ICECE Transaction B, Vol. J97-B, 873-889, 2014.
- JPCERT/CC: DNSの再帰的な問い合わせを使ったDDoS攻撃に関する注意喚起,https://www.jpcert.or.jp/at/2013/at130022.html
- P. Ferguson,D. Senie: RFC2827(BCP38) Ingress Filtering,IETF, https://www.rfc-editor.org/rfc/rfc2827.html
- The Closed Resolver Project, https://closedresolver.korlabs.io/
- CAIDA. 2020. The Spoofer Project, https://www.caida.org/projects/
- dns_servfail_attack_mitigator,https://github.com/cejennings/dns_servfail_attack_mitigator
- unbound-reqmon https://github.com/tarko/unbound-reqmon
- dnsbff https://github.com/willt/dnsbff