edu.vn, gov.vn không vào được... có lẽ ai đo ở VNNIC phải OT rồi
rồiSáng 22/10 VNNIC ký lại 9 zone của .vn và làm mất chuỗi bản ghi NSEC3, nên resolver có kiểm chữ ký từ chối hết. Không có dấu hiệu tấn công.
Ngày 22/10, sinh viên và giảng viên báo không vào được EvoBright, nền tảng học mình đang vận hành ở learn.evobright.edu.vn. Không riêng gì EvoBright: hust.edu.vn, moet.gov.vn, redcross.org.vn cũng trả lỗi y hệt. Nhiều người hỏi nhà mạng Việt Nam có đang bị tấn công không.
Không có dấu hiệu nào như vậy. Lỗi nằm ở khâu ký zone của VNNIC, và chỉ ai dùng DNS resolver có kiểm chữ ký mới dính.
Diễn biến ngày 22/10

Khoảng 9:46 sáng, VNNIC ký lại 9 zone cấp hai của .vn: net.vn, org.vn, edu.vn, gov.vn, ac.vn, biz.vn, info.vn, name.vn và health.vn. Nhiều trường học, cơ quan nhà nước, viện nghiên cứu, bệnh viện, hội đoàn nằm dưới mấy đuôi này. Bản ký mới thiếu cả chuỗi bản ghi NSEC3. Từ đó, resolver nào có kiểm chữ ký cũng trả lỗi cho gần như mọi domain dưới 9 đuôi này, kể cả 1.1.1.1 của Cloudflare, 8.8.8.8 của Google và resolver mà phần lớn khách Viettel đang dùng.
Chiều cùng ngày, VNNIC thử tắt DNSSEC cho 10 zone bằng cách gỡ bản ghi DS của chúng khỏi zone .vn. Khoảng 15:40, VNNIC đưa các zone về bản ký cũ, các resolver lớn phân giải lại được. Ai dùng resolver có kiểm thì mất truy cập tới gần sáu tiếng.

VNNIC quản lý zone .vn

VNNIC là Trung tâm Internet Việt Nam, thành lập ngày 28/4/2000, hiện trực thuộc Bộ Khoa học và Công nghệ. VNNIC quản lý tên miền .vn, cấp địa chỉ IP và số hiệu mạng (ASN), vận hành hệ thống DNS quốc gia và trạm trung chuyển Internet VNIX [1].

Mua domain evobright.edu.vn xong, mình chỉ chỉnh được name server với mấy bản ghi DNS của nó. Còn zone .vn và các zone cấp hai như edu.vn, gov.vn thì VNNIC quản lý và ký, rồi phát ra qua tám name server tên từ a tới h. VNNIC ký zone .vn bằng DNSSEC từ cuối năm 2016 [2]. Mọi lần phân giải một domain dưới .vn đều đi qua zone của VNNIC, nên VNNIC ký hỏng thì chủ domain cũng bó tay.

DNSSEC, chữ ký trên từng tầng DNS

DNSSEC, viết tắt của DNS Security Extensions, là phần mở rộng thêm chữ ký số cho DNS, bản chuẩn hiện hành có từ năm 2005 [3]. Nó cho resolver kiểm hai điều: câu trả lời đúng là do chủ zone phát ra, và không bị ai sửa dọc đường. DNSSEC không mã hoá gì, ai nghe lén đường truyền vẫn thấy máy đang query domain nào. Root của DNS ký bằng khoá thật từ ngày 15/7/2010 [4].
DNS giống một cuốn danh bạ chia tầng. Muốn phân giải learn.evobright.edu.vn, resolver query root, root trỏ sang .vn, .vn trỏ sang edu.vn, edu.vn trỏ sang name server của evobright. DNSSEC đóng thêm con dấu vào mỗi lần trỏ. Mỗi tầng ký các bản ghi của mình bằng khoá riêng, và tầng trên công bố dấu vân tay khoá của tầng dưới trong một bản ghi tên là DS. Nhờ vậy resolver đi từ root xuống mà kiểm được từng bước.
Phần lớn domain dưới edu.vn không tự ký, evobright.edu.vn cũng vậy. Lúc đó edu.vn phải đưa kèm một tờ chứng nhận có dấu, nói rằng domain này không có DS, tức là không ký là bình thường. Tờ đó là bản ghi NSEC3 [5]. Chuẩn DNSSEC bắt mọi câu trả lời trỏ xuống zone con, dân DNS gọi là referral, phải kèm DS hoặc bằng chứng không có DS [6].

Thiếu NSEC3 thì resolver không phân biệt được hai trường hợp. Một là evobright.edu.vn thật sự không ký. Hai là có kẻ đứng giữa đường xé bỏ chữ ký của một domain có ký để giả làm domain không ký. Thiếu bằng chứng thì câu trả lời bị coi là hỏng (bogus) và bị từ chối, dù nguyên nhân là tấn công hay lỗi cấu hình.
Vậy thì DNSSEC để làm gì ?
Rất ngắn gọn: Hacker giả DNS response khi không có chữ ký

DNS ra đời không có chữ ký (yah, Internet hồi người ta tin nhau mà sống). Resolver gửi query đi, câu trả lời nào về trước mà khớp thì nó tin, lưu vào cache rồi trả cho mọi máy phía sau. Tháng 7/2008, Dan Kaminsky chỉ ra cách bơm câu trả lời giả vào cache của resolver đủ nhanh để thành tấn công thật [7]. Ai dùng resolver đó sẽ bị dắt tới server của hacker, thanh địa chỉ vẫn hiện đúng domain. Các phần mềm DNS vá bằng cách random source port cho câu trả lời giả khó đoán trúng hơn. Năm 2020, nhóm nghiên cứu SAD DNS tìm ra đường vòng qua bản vá đó [8]. Ngay trong ghi chú của CERT về lỗi Kaminsky, ISC, nơi làm ra BIND, viết rằng cách duy nhất chặn hẳn kiểu tấn công này là ký zone bằng DNSSEC và bật kiểm chữ ký ở resolver.

Ngày 24/4/2018, DNS giả nhắm vào MyEtherWallet, một trang ví Ethereum. Hacker hijack BGP các dải IP chứa name server Route 53 của Amazon, nơi đặt DNS của myetherwallet.com, trong gần hai tiếng. Chúng dựng DNS server giả, trả domain này về IP của một nhà cung cấp ở Nga [9]. Resolver của Google [10], và cả 1.1.1.1 của Cloudflare ở vài nơi [9], đã tin câu trả lời đó. Trang giả dùng chứng chỉ tự ký nên trình duyệt có hiện cảnh báo, nhưng ai bấm bỏ qua là lộ thông tin đăng nhập và mất Ethereum. Hồi đó Route 53 chưa hỗ trợ ký DNSSEC, tới tháng 12/2020 mới có [11].

Cũng trong bài đó, Cloudflare viết rằng nếu domain có ký thì IP giả kia không thể có chữ ký đúng, vì hacker không có khoá. Bài còn chỉ ra đường duy nhất để có chứng chỉ thật cho trang giả là đầu độc resolver của CA, loại resolver không kiểm DNSSEC, vì CA xác minh domain bằng DNS. Từ 15/3/2026, CA/Browser Forum bắt mọi CA kiểm DNSSEC khi tra DNS để cấp chứng chỉ, nhưng chỉ với domain có ký [12].

Đổi lại, ký là thêm một chỗ có thể hỏng. RFC 4033 ghi rằng bật kiểm chữ ký có thể làm cả một zone hợp lệ thành không truy cập được vì lỗi cấu hình hay bug [3]. Slack thử bật DNSSEC lần thứ ba vào ngày 30/9/2021 thì dưới 1% người dùng đang online mất Slack suốt 24 tiếng [13]. Nhiều domain lớn chưa ký: hôm 22/10, google.com, facebook.com, youtube.com, tiktok.com, shopee.vn và vnexpress.net đều không có DS.

Server vẫn chạy, chỉ là domain trỏ không tới

Gõ một địa chỉ web thì trình duyệt phải làm hai việc. Việc đầu là query một DNS resolver xem domain learn.evobright.edu.vn trỏ tới IP nào. Việc sau mới là kết nối tới IP đó để lấy trang. "Web sập" có thể hỏng ở việc nào cũng được.
Query domain thì lỗi, trình duyệt báo không phân giải được. Query lại resolver của Cloudflare nhưng bật cờ cd, tức là bảo nó đừng kiểm chữ ký, thì ra ngay IP 203.0.113.47. Truy cập bằng IP đó thì server trả trang bình thường.
Cloudflare còn nói rõ vì sao nó từ chối. Từ năm 2020 resolver được phép gửi kèm một mã lỗi mở rộng [14], và mã 12 đi kèm câu "NSEC Missing failed to verify an insecure referral proof for evobright.edu.vn". Dịch ra là: zone edu.vn trỏ sang evobright.edu.vn, nhưng không đưa kèm bằng chứng evobright.edu.vn là domain không ký. Cùng lúc đó, tuoitre.vn, vietcombank.com.vn và chinhphu.vn vẫn phân giải bình thường.


Đợt ký lại sáng 22/10

Lúc bình thường, referral từ edu.vn sang evobright.edu.vn kèm 2 bản ghi NSEC3. Chuỗi chữ ký của edu.vn hôm 22/9 vẫn đầy đủ, có cả bản ghi NSEC3PARAM báo zone này dùng NSEC3.

Dùng dig query trực tiếp các name server .vn của VNNIC cho zone .vn và 14 zone cấp hai phổ biến (com.vn, net.vn, org.vn, edu.vn, gov.vn, ac.vn, health.vn...) chiều 22/10 thì 9 zone có chữ ký mới tinh của ngày hôm đó, và cả 9 mất NSEC3PARAM. Query một domain không tồn tại trong các zone này thì câu trả lời không kèm bản ghi NSEC3 nào. Zone .vn, com.vn và 4 zone còn lại vẫn mang chữ ký cũ và vẫn đủ NSEC3.

Tám zone được ký lại trong vòng một phút từ 9:46, org.vn theo sau lúc 10:08. Referral và khoá vẫn đủ, chỉ chuỗi NSEC3 mà máy ký phải sinh ra là mất.

VNNIC sửa bằng cách quay về bản cũ
Không phải cách tốt nhất, chắc có chút hoảng loạn =))

Khoảng 13:00 đã có name server phát zone edu.vn không kèm chữ ký nào, trong khi DS của nó vẫn nằm ở zone .vn. Zone không ký mà tầng trên vẫn có DS thì càng chắc chắn bị từ chối. Từ trước 14:46 tới khoảng 14:56, VNNIC gỡ dần DS của 10 zone khỏi zone .vn. Gỡ DS là tuyên bố "các zone này không ký nữa", resolver sẽ thôi đòi NSEC3. Danh sách gỡ có cả io.vn, zone không hề hỏng.
Lúc 14:57, năm name server của .vn cùng phát một bản zone .vn, nhưng máy a vẫn trả DS của edu.vn và gov.vn, còn các máy trả lời được khác đã gỡ.

Zonemaster, công cụ kiểm tra tên miền của Pháp và Thuỵ Điển, chạy lúc 14:46 cũng thấy vậy: với edu.vn máy có chữ ký máy không, với gov.vn máy có DS máy không [15].


Khoảng 15:40 thì hết. VNNIC đưa các zone về bản đã ký từ trước, chữ ký đề ngày 7/10, đủ NSEC3. Bản cũ ký đúng, nên DS còn hay mất đều không sao. Lúc 15:42, Cloudflare, Google, AdGuard và OpenDNS đều đã phân giải lại được. Quad9 còn lỗi lác đác với vài domain, kể cả evobright.edu.vn, tới khoảng 16:40.

Kiểm giả thuyết tấn công

Chiều hôm đó có một hiện tượng trông rất giống DDoS. Khoảng 14:40, ba trong tám name server .vn gần như không trả lời. Query chậm, mỗi 2 giây một lần, vẫn rớt như thường.

Từ 7:00 tới 12:55 ngày 22/10, mọi thông báo định tuyến cho sáu dải IP chứa sáu trong tám name server .vn đều chỉ về mạng của VNNIC, không dải nào biến mất, theo dữ liệu của RIPE, tổ chức quản lý địa chỉ IP ở châu Âu [16]. Nếu có ai hijack BGP thì sẽ có mạng lạ đứng ra nhận các dải này.
IODA của Georgia Tech, hệ thống chuyên báo sự cố Internet theo quốc gia, không có cảnh báo nào cho Việt Nam, Viettel, VNPT, FPT hay MobiFone từ 20 tới 22/10 [17].


edu.vn vẫn ký bằng hai khoá có số hiệu 49554 và 752 như hồi tháng 9, và DS của nó ở zone .vn vẫn trỏ đúng khoá 752. Muốn giả mạo câu trả lời thì phải có khoá, mà kẻ có khoá thì ký giả được luôn, chẳng cần xoá NSEC3.
Máy c và f thì chập chờn từ trước: DNSViz, trang vẽ chuỗi chữ ký của một tên miền, hôm 22/9 đã ghi c, f, b rớt nhiều query [18]. Chiều 22/10, ba máy a, g, h trả lời đủ, nên resolver vẫn luôn có server để query. Và DDoS làm server chậm hay chết, chứ không xoá được bản ghi khỏi zone.
Viettel chuyển sang kiểm đầy đủ từ 10/10

Vậy vì sao lần này nhiều người kêu thế? APNIC, tổ chức cấp địa chỉ IP cho khu vực châu Á Thái Bình Dương, đo xem bao nhiêu người dùng đứng sau resolver có kiểm DNSSEC, chia theo từng nhà mạng [19]. Họ tách hai nhóm: kiểm đầy đủ, và kiểm một phần, tức máy có lấy khoá về kiểm nhưng vẫn mở được trang có chữ ký hỏng, thường vì máy còn một resolver không kiểm để query lại [20].
Ngày 9/10, ở Viettel chỉ 31,2% người dùng kiểm đầy đủ, còn 59,0% kiểm một phần. Ngày 10/10, tỷ lệ kiểm đầy đủ lên 72,2%, kiểm một phần tụt còn 18,5%. VNPT thì đứng yên quanh 64% từ lâu, MobiFone quanh 56%, FPT chỉ khoảng 17%. Tính cả nước, từ khoảng 40% ngày 9/10 lên 57% ngày 10/10.


Vậy cùng một sinh viên dùng mạng Viettel, nếu lỗi này xảy ra hồi tháng 9 thì nhiều khả năng máy em ấy chuyển sang resolver dự phòng và vẫn vào học được. Từ 10/10 thì khả năng đó chỉ còn khoảng một phần năm. Sinh viên dùng FPT thì đa phần vẫn vào được, vì theo APNIC phần lớn khách FPT đứng sau resolver không kiểm.
Lúc còn kiểm một phần, kẻ giả mạo chỉ cần làm resolver kiểm trả lỗi là máy người dùng tự quay sang resolver không kiểm. Không có nguồn nào nói vì sao Viettel đổi đúng hôm 9 sang 10/10.
Việc của từng bên

Người dùng không cần đổi DNS hay cài gì. Đổi sang 8.8.8.8 hay 1.1.1.1 cũng không giúp. Lỗi nằm ở tầng trên, VNNIC sửa xong là tự hết.
Đơn vị có tên miền dưới các đuôi bị ảnh hưởng thì nên có sẵn một tên miền dự phòng ở chỗ khác. EvoBright đã chuyển người dùng sang evobright.vn trong lúc chờ. Ứng dụng nào hardcode một tên miền thì không đổi đường kiểu này được.
Bên ký zone thì nên kiểm zone sau khi ký, trước khi phát ra: có NSEC3PARAM không, query một domain không tồn tại có nhận được NSEC3 không. Giữ sẵn bản ký tốt gần nhất, vì chính VNNIC vừa cho thấy quay về bản cũ là cách nhanh nhất. Và muốn rút một zone khỏi DNSSEC thì gỡ DS ở tầng trên trước, đợi cache hết hạn, rồi mới thôi ký zone con [21].

Tính tới chiều 22/10, trang của VNNIC chưa có thông báo nào về sự cố. Lúc 15:43, máy a vẫn giữ DS của edu.vn, máy h thì không. Query máy a hay máy h thì edu.vn cũng phân giải được, chỉ là mỗi máy nói một kiểu về chuyện edu.vn có ký hay không.
Địa chỉ IP của server EvoBright trong bài đã được thay bằng một địa chỉ khác.
Đào sâu: dấu vết cho người vận hành DNS
Giờ trong chữ ký sớm hơn giờ ký một tiếng. Các mốc 9:46 tới 10:08, 14:56 và 15:40 lấy từ trường inception của chữ ký RRSIG, cộng thêm một tiếng. Phần mềm ký như BIND đặt inception lùi một tiếng so với lúc ký để chịu được đồng hồ lệch [22], và phép đo trên zone .vn cho thấy máy ký của VNNIC cũng làm vậy. Slide năm 2017 của VNNIC ghi máy ký lưu zone trong thư mục của named, tiến trình DNS server của BIND. Lúc 15:43:54, SOA của bản 2031366739 có inception 14:42:34 giờ Việt Nam, trong khi serial của .vn đổi vài lần mỗi phút. Không có chuyện SOA nằm yên 61 phút, nên chữ ký đó vừa ra lò 80 giây trước. Ai đọc thẳng inception sẽ kết luận sự cố bắt đầu lúc 8:46, sớm một tiếng.
Cùng serial, khác nội dung. Máy phụ chỉ tải lại zone khi serial tăng. Lúc 14:57 máy a và các máy khác cùng serial 2031366442 mà khác DS, nghĩa là có hai phiên bản zone cùng mang một serial. Slide VNNIC trình bày năm 2017 cho biết họ có hai trung tâm ký ở Hà Nội và TP.HCM chạy active-standby, mỗi nơi hai máy ký độc lập [2]. Trang kế tiếp vẽ cả máy master dự phòng nối tới các name server .vn. Nếu lúc sửa có hai máy ký cùng phát zone thì sẽ ra đúng cảnh này. Đó là một giả thuyết, từ bên ngoài không kiểm được.


Tham số VNNIC tự công bố. Cùng bộ slide ghi VNNIC dùng NSEC3, khoá ký zone 1024 bit và chữ ký hiệu lực 30 ngày. Chữ ký quan sát được hôm 22/10 đúng là hiệu lực 30 ngày. Zonemaster cảnh báo khoá 1024 bit nhỏ hơn mức khuyến nghị 2048.

DS có TTL 12 tiếng. Bản ghi DS của các zone cấp hai trong zone .vn có TTL 43200 giây. Gỡ DS quanh 14:46 tới 14:56 thì resolver nào vừa lấy DS ngay trước đó vẫn tin nó tới gần 3 giờ sáng hôm sau. Phát zone không ký trong khoảng đó thì sự cố kéo dài thêm. Quay về bản ký đúng thì phần lớn resolver hết lỗi trong vài phút, không phải đợi DS hết hạn.
Bình
Phụ lục: Citations (22)
- VNNIC. Giới thiệu Trung tâm Internet Việt Nam. 2026-10-22. Năm thành lập, cơ quan chủ quản và chức năng của VNNIC.
- R. Arends, R. Austein, M. Larson, D. Massey, S. Rose. RFC 4033: DNS Security Introduction and Requirements. IETF. 2005-03. Mục 1, 4 và 12: DNSSEC xác thực nguồn gốc và toàn vẹn dữ liệu, không giữ bí mật, và bật kiểm chữ ký có thể làm cả zone hợp lệ không truy cập được vì lỗi cấu hình.
- IANA. DNSSEC Project Archive: Launch Status Updates. 2010-07-15. Ngày 15/7/2010 root bắt đầu phát bản ký bằng khoá thật.
- B. Laurie, G. Sisson, R. Arends, D. Blacka. RFC 5155: DNS Security (DNSSEC) Hashed Authenticated Denial of Existence. IETF. 2008-03. Định nghĩa NSEC3 và NSEC3PARAM, cách một zone chứng minh một tên không tồn tại hay không có DS.
- R. Arends, R. Austein, M. Larson, D. Massey, S. Rose. RFC 4035: Protocol Modifications for the DNS Security Extensions. IETF. 2005-03. Mục 3.1.4.
- CERT/CC. VU#800113: Multiple DNS implementations vulnerable to cache poisoning. 2008-07-08. Lỗ hổng đầu độc cache mà Dan Kaminsky cho thấy làm được thật, kèm tuyên bố của ISC rằng chỉ ký zone và bật kiểm DNSSEC ở resolver mới chặn hẳn.
- Keyu Man, Zhiyun Qian, Zhongjie Wang, Xiaofeng Zheng, Youjun Huang, Haixin Duan. DNS Cache Poisoning Attack Reloaded: Revolutions with Side Channels. ACM CCS 2020. 2020-11. Đầu độc cache DNS làm lại được bằng kênh kề, vượt qua bản vá random source port của năm 2008.
- Louis Poinsignon. BGP leaks and cryptocurrencies. Cloudflare. 2018-04-24. Phân tích vụ hijack BGP dải IP của Route 53 để giả DNS của myetherwallet.com, và vì sao DNSSEC chặn được.
- Doug Madory. BGP Hijack of Amazon DNS to Steal Crypto Currency. Oracle Dyn. 2018-04-25. Resolver DNS của Google nằm trong số resolver gửi query tới DNS giả.
- Amazon Web Services. Announcing Amazon Route 53 support for DNSSEC. 2020-12-17.
- CA/Browser Forum. Ballot SC-085v2: Require Validation of DNSSEC (when present) for CAA and DCV Lookups. 2025-06-18. Từ 15/3/2026 CA phải kiểm DNSSEC, nếu domain có ký, khi tra DNS để cấp chứng chỉ.
- Rafael Elvira, Laura Nolan. The Case of the Recursive Resolvers: What Happened During Slack's DNSSEC Rollout. Slack Engineering. 2021-11-29. Sự cố 24 tiếng ngày 30/9/2021 trong lần thứ ba Slack bật DNSSEC.
- W. Kumari, E. Hunt, R. Arends, W. Hardaker, D. Lawrence. RFC 8914: Extended DNS Errors. IETF. 2020-10. Mục 4.13 định nghĩa mã lỗi 12, NSEC Missing.
- AFNIC và The Swedish Internet Foundation. Zonemaster, kiểm edu.vn và gov.vn ngày 22/10/2026. 2026-10-22.
- RIPE NCC. RIPEstat, định tuyến của các dải IP chứa name server .vn. 2026-10-22.
- Georgia Tech Internet Intelligence Lab. IODA, cảnh báo mất kết nối cho Việt Nam và các nhà mạng lớn. 2026-10-22.
- DNSViz. DNSViz, edu.vn, phân tích ngày 22/9/2026. 2026-09-22. Chuỗi chữ ký của edu.vn lúc bình thường.
- APNIC Labs. Use of DNSSEC Validation for Vietnam (VN). 2026-10-22. Tỷ lệ người dùng đứng sau resolver có kiểm DNSSEC, theo ngày và theo nhà mạng, đo bằng quảng cáo mẫu.
- APNIC Labs. How we measure: DNSSEC validation. APNIC Blog. 2023-10-31. Cách APNIC xếp một máy vào nhóm kiểm đầy đủ, kiểm một phần hay không kiểm, dựa trên việc nó có tải được trang có chữ ký hỏng không.
- O. Kolkman, W. Mekking, R. Gieben. RFC 6781: DNSSEC Operational Practices, Version 2. IETF. 2012-12. Mục 4.2.1.2.
- dns-operations. Allowance for inaccurate clocks. DNS-OARC. 2011-03. Trích tài liệu của BIND về việc đặt giờ bắt đầu của chữ ký lùi một tiếng so với lúc ký.