DNS に対する脅威

DNS水責め攻撃の状況と隠れオープンリゾルバを中心に最近の話題

中京大学工学部 / E-ONTAP.COM 鈴木常彦 (a.k.a 浸透いうな)
Mar 16, 2024 ISACA名古屋 3月度月例会
http://www.e-ontap.com/misc/isaca/

報道 (共同通信)

共同通信より

報道 (東海TV)

東海TVより

DNS ハニーポット による観察

2018 年 9 月から Unbound に以下の制限を施してハニーポットとしてのオープンリゾルバを運用


DNSSEC の無効化 (EDNS0 DO bit off) は Unbound ソースの util/net_help.h への以下のパッチによる

< #define EDNS_DO 0x8000 /* Dnssec Ok */
---
> #define EDNS_DO 0x0000 /* Dnssec NG */

(Unbound 1.19 以降は disable-edns-do: yes で DO bit off 可)

クエリ数推移

2018年からの推移

今月の状況 (流量)

クエリ数

トラフィック (outbound udp 53)

今月の状況 (応答内訳)

RCODE

水責め (ランダムサブドメイン攻撃) と判断する理由

応答障害の検出

Unbound のログから "all servers for this domain failed, at zone ..." をゾーン毎にカウント

Mar 13 14:34:35 unbound[57705:0] query: 138.197.78.98 ncv-es-sms-nccp.kdca.go.kr. A IN
Mar 13 14:34:35 unbound[57705:0] error: SERVFAIL <ncv-es-sms-nccp.kdca.go.kr. A IN>: all servers for this domain failed, at zone kdca.go.kr. no server to query nameserver addresses not usable
Mar 13 14:34:35 unbound[57705:0] reply: 138.197.78.98 ncv-es-sms-nccp.kdca.go.kr. A IN SERVFAIL 0.000000 0 44
Mar 13 14:34:35 unbound[57705:0] notice: ip_ratelimit exceeded 138.197.78.98 1 wwwrelaypocztachs.kdca.go.kr. IN A

Web への掲示

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

(2023 3/15 - 5/31)
  1. com 45123
  2. arpa 14848
  3. fr 6204
  4. net 5957
  5. de 5730
  6. org 4979
  7. uk 2202
  8. se 2112
  9. br 2043
  10. info 1993
  11. it 1590
  12. ca 1428
  13. ch 1393
  14. eu 1389
  15. xin 1381
  16. ru 1371
  17. cn 1371
  18. es 1351
  19. us 1274
  20. biz 1274
  21. tr 1215
  22. lv 1163
  23. nl 1102
  24. dk 1063
  25. be 958
  26. pl 957
  27. au 948
  28. lt 939
  29. ro 916
  30. in 821
  31. gov 777
  32. za 738
  33. at 667
  34. tech 663
  35. mx 623
  36. co 623
  37. xyz 605
  38. jp 585
  39. sk 580

JPドメイン (ゾーン単位) での応答障害カウント Top 30

(2023 3/15 - 5/31)
  1. at.nttdocomo.co.jp. 23845
  2. pref.aichi.jp. 13758
  3. pref.okinawa.jp. 9883
  4. jil.go.jp. 9845
  5. pref.nara.jp. 9639
  6. pref.osaka.jp. 8882
  7. takashimaya.co.jp. 8704
  8. pmda.go.jp. 7528
  9. nies.go.jp. 6837
  10. enekoshop.jp. 6710
  11. hane-line.co.jp. 6656
  12. saisoncard.co.jp. 6642
  13. pref.toyama.jp. 6146
  14. android.jp. 4694
  15. v4.cyber.ipa.go.jp. 4513
  16. pref.kagoshima.jp. 3451
  17. boj.or.jp. 3408
  18. animate-onlineshop.jp. 3294
  19. yamaha.co.jp. 3222
  20. nta.co.jp. 2132
  21. csl.sony.co.jp. 1878
  22. post.japanpost.jp. 1645
  23. gaga.ne.jp. 1048
  24. umin.ac.jp. 904
  25. gov-online.go.jp. 761
  26. idc.nttdocomo.co.jp. 723
  27. city.osaka.lg.jp. 655
  28. ntt-east.co.jp. 630
  29. prtls.jp. 505
  30. montegrappa.jp. 453

攻撃元の分析 (1)

2023年3月のIPアドレス分布

TCP接続元の死活監視グラフ

4/13 に調査したTCP接続元を ping で継続的に死活監視

攻撃元の分析 (2)

最小: 1,241
平均: 2,000
最大: 3,017
標準偏差: 484

総IPアドレス数 (2023年3月15日-5月31日) 60,335

TCP 3,862 / IPアドレス総数 26,514 = 15% (5月分)

588 のTCP接続元のサンプリング分析 (4月5日) では 78% が米国の某大手データセンタ

攻撃例

2023/3/22 mofa.go.jp (外務省) 攻撃の推移

3月22日 07:45 - 09:28 クエリ総数 1,632 (ratelimited)

2023/6/5 pref.osaka.jp (大阪府) 攻撃の推移

6月5日 17:34 - 6月6日 01:44 クエリ総数 7,367 (ratelimited)

攻撃元はいずれも 1 IP アドレスのみで、1/4 qps (リミット前でも推定 数qps) の緩慢な攻撃であり膨大な数 (少なくとも数千) の踏み台の使用が推察される。

水責めのまとめ

本日の状況

        DDoS Victims Top 50 of Today  -- Sat Mar 16 09:01:06 JST 2024

   count zone                                          time (first seen - last seen)
----------------------------------------------------------------------------------------
   12573 bokjiro.go.kr.                                Mar 16 00:00:14 - Mar 16 09:01:04
   12497 mois.go.kr.                                   Mar 16 00:00:22 - Mar 16 09:01:04
   11934 mcst.go.kr.                                   Mar 16 00:00:23 - Mar 16 09:01:05
   11382 moel.go.kr.                                   Mar 16 00:00:03 - Mar 16 09:01:02
   11379 pipc.go.kr.                                   Mar 16 00:00:16 - Mar 16 09:01:03
   11205 zatca.gov.sa.                                 Mar 16 00:00:07 - Mar 16 09:01:04
   10769 me.go.kr.                                     Mar 16 00:00:08 - Mar 16 09:01:05
   10132 primera.app.                                  Mar 16 00:00:05 - Mar 16 09:00:06
    7715 cbiko.gov.tr.                                 Mar 16 03:20:24 - Mar 16 09:01:04
    6086 conicet.gov.ar.                               Mar 16 00:06:18 - Mar 16 08:59:40
    2877 telefonica.es.                                Mar 16 03:07:06 - Mar 16 05:05:35
    2679 inscname.net.                                 Mar 16 00:01:23 - Mar 16 08:40:01
    1951 votorantimcimentos.com.tr.                    Mar 16 03:15:50 - Mar 16 04:50:38
    1886 daegu.go.kr.                                  Mar 16 04:02:13 - Mar 16 09:00:58
    1752 cloud.redislabs.com.                          Mar 16 00:00:01 - Mar 16 03:54:53
    1360 risqwise.com.                                 Mar 16 00:00:06 - Mar 16 01:54:51
    1343 dns-leak.cyberghost.app.                      Mar 16 00:02:50 - Mar 16 09:01:02
    1301 ams1907.com.  	 

http://www.e-ontap.com/dns/openresolver/data/todaydown.txt

参考リンク・文献

皆さんオープンリゾルバ対策はしてますよね?

でも頭隠して尻隠さず



隠れオープンリゾルバになっているかもしれません、、、

隠れオープンリゾルバとは

穴の開き方のパターン

日本の隠れオープンリゾルバ対策の追跡調査


(隠れオープンリゾルバを放置している日本のドメインより)

あなたのネットワークありませんか?

検査してみましょう

隠れオープンリゾルバ検査サイトの仕組み

謎の装置 (推測図)

このようなセキュリティアプライアンスをご存知でしたら教えてください。
(nict.go.jp, tuat.ac.jp, mofa.go.jp, emc.com など)

隠れオープンリゾルバ対策

(例は FreeBSD の ipfw)

なぜ対応が進まないのか?

  1. JPCERT/CC、文科省からの連絡が届いていない?
    • C は Cordination の C (直接個別連絡しているわけでもない)
    • 学会やイベントでの発表も効果は極めて小さいと感じる
  2. 問題を理解できない?
    • DNS とネットワークの両方を理解・担当している人がいない?
  3. 問題を誤解している?
    • DNS の問題だと思ってしまっている? (ネーミングについては申し訳ない)
    • 学外の利用者への影響を心配してしまう? (いまどき三角ルーティングは成り立たないでしょ)
  4. 問題をなめている?
    • 踏み台にされていることにも気づかない?
      (最近の水責めはリゾルバへの負荷小)
  5. 対策方法がわからない? (BCP38の逆をやるだけ)
  6. 予算? (config 数行ですが?
  7. 電気通信事業法に抵触? (BCP38 や bogon も? / 正当業務行為でしょ)
  8. 他は?

参考リンク・文献

「DNSに対する最悪の攻撃」?
(KeyTrap について少しコメント)

KeyTrap という DNSSEC の署名検証に大きな負荷をかける DoS 手法が2月13日に発表され少し騒ぎになりました。

私からのアドバイス

DNSSEC は止めれば良いだけです。


主な理由


詳しくはこちら (DNSSEC はなぜダメなのか) をどうぞ

DNSSEC の止め方

Unbound についてはこれまで私はソースにパッチしていましたが、現在のバージョン (1.19 以降) では以下の設定で簡単に止められるようになっています。

module-config: "iterator" #validatorを消す
disable-edns-do: yes

また BIND では dnssec-enable no; だけでは DO bit が落ちないので次のようにするとよさそうです。

dnssec-enable no;
dnssec-validation no;
server 0.0.0.0/0 { edns no; };
server ::/0 { edns no; };

(BIND には詳しくないので無保証)

本日のネタは以上です

質問、意見、議論を頂きたいと思います


... 私の DNS 関連資料はこちらをどうぞ。インターネット崩壊論もよろしく。