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ười đưa thư chỉ vào trang danh bạ thiếu con dấu và lắc đầu, sinh viên cầm laptop trắng trơn đứng chờ

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

Sợi dây phơi chín trang giấy, nửa trái các trang thiếu dấu dưới đám mây xám, nửa phải các trang có dấu dưới mặt trời, người đưa thư đi dọc bên dưới

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.

Hoạt ảnh dòng thời gian ngày 22/10. Lúc đầu 15 zone đều xanh. Từ 9 giờ 46, chín zone chuyển đỏ vì mất NSEC3. Chiều, bốn resolver công cộng trả lỗi. Gần 15 giờ, DS của edu.vn bị gỡ trên các máy e, g, h, máy a vẫn giữ, bốn máy im lặng. 15 giờ 40 mọi zone xanh trở lại, hai phút sau bốn resolver trả IP

VNNIC quản lý zone .vn

Bưu cục ở giữa, nhân viên đang đóng dấu vào cuốn danh bạ, quanh bưu cục là tám hòm thư tám màu mỗi hòm thò ra một cuốn, người đưa thư nhận sổ ở quầy

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].

Trang giới thiệu trên vnnic.vn, khoanh đỏ đoạn Sứ mệnh ghi năm thành lập, cơ quan chủ quản và các việc VNNIC làm

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.

Slide VNNIC năm 2017 trang 15 trong trình xem PDF, khoanh đỏ lễ ký khoá cho zone .vn ngày 20/12/2016 và dòng DS của .vn có hiệu lực ở root từ 31/12/2016

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

Người đưa thư đi qua bốn quầy, ba quầy đầu đóng dấu vào tờ giấy rồi đưa cho anh, quầy cuối đưa tờ giấy không có dấu

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].

Chuỗi chữ ký khi phân giải learn.evobright.edu.vn Hai bước đầu giống nhau, khác nhau ở tờ chứng nhận cuối cùng Ngày thường Sáng 22/10 Root DNS DS của .vn, root ký .vn DS của edu.vn, .vn ký edu.vn ✓ 2 bản ghi NSEC3, edu.vn ký chứng nhận evobright.edu.vn không có DS evobright.edu.vn, không ký ✓ Resolver chấp nhận trả IP, sinh viên vào học Root DNS DS của .vn, root ký .vn DS của edu.vn, .vn ký edu.vn ✗ 0 bản ghi NSEC3 chỉ có referral sang Cloudflare evobright.edu.vn, không ký ✗ Resolver từ chối, SERVFAIL không phân biệt được domain không ký với domain bị xé mất chữ ký
Root và .vn vẫn ký đúng cả ngày 22/10. Chỗ gãy nằm ở bước cuối, nơi một domain không ký cần được chứng nhận là không ký.
Trang RFC 4035, khoanh đỏ quy định referral xuống zone con phải kèm DS hoặc bằng chứng không có DS

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ý

Kẻ đội mũ trùm nấp sau gốc cây chìa cho người đưa thư tấm thiệp địa chỉ không có dấu, người đưa thư chỉ vào ô dấu trống và lắc đầu, phía sau là căn nhà bị lưỡi câu móc

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.

Trang ghi chú lỗ hổng VU#800113 của CERT, khoanh đỏ ngày công bố 8/7/2008 và câu mô tả kẻ gian bơm thông tin DNS giả vào cache
Câu trả lời DNS giả, khi không ký và khi có ký Kẻ gian chen vào giữa resolver và name server thật của một trang ví tiền Domain không ký Máy người dùng Resolver Kẻ gian: IP giả ✗ Tin câu trả lời giả, lưu vào cache người dùng bị dắt tới server của kẻ gian Domain có ký, resolver kiểm chữ ký Máy người dùng Resolver kiểm chữ ký Kẻ gian: IP giả ✓ Loại câu trả lời giả không có chữ ký khớp với DS ở tầng trên
Chữ ký cho resolver cách nhận ra câu trả lời giả.

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].

Bài phân tích của Cloudflare về vụ MyEtherWallet, khoanh đỏ đoạn trang giả dùng chứng chỉ tự ký và câu kẻ gian dùng thông tin đăng nhập để rút Ethereum

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].

Cùng bài của Cloudflare, khoanh đỏ đoạn DNSSEC khiến IP giả không có chữ ký và đoạn CA chỉ bị lừa khi resolver của CA không kiểm DNSSEC

Đổ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.

Bài của Slack Engineering về sự cố khi bật DNSSEC, khoanh đỏ câu sự cố ngày 30/9/2021 làm dưới 1% người dùng mất Slack suốt 24 tiếng

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

Cậu sinh viên gãi đầu trước laptop, sau lưng là phòng server vẫn sáng đèn, quạt vẫn quay

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.

Domain trỏ không tới, nhưng server vẫn trả lời Ba phép thử với learn.evobright.edu.vn, chiều 22/10 Query domain learn.evobright.edu.vn Resolver Cloudflare có kiểm chữ ký ✗ SERVFAIL mã lỗi 12, thiếu NSEC Query, bật cờ cd bảo resolver đừng kiểm chữ ký Resolver Cloudflare bỏ qua bước kiểm ✓ 203.0.113.47 domain vẫn trỏ về IP cũ Truy cập bằng IP 203.0.113.47, bỏ qua DNS Server EvoBright qua Cloudflare ✓ Trả trang, mã 200 server vẫn chạy
Hai query đầu tới cùng resolver Cloudflare, chỉ khác ở bước kiểm chữ ký, nên lỗi khoanh được vào đúng bước đó.

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.

Cửa sổ Terminal chiều 22/10 in câu trả lời của Cloudflare, khoanh đỏ mã lỗi 12 của evobright.edu.vn và dòng tuoitre.vn vẫn ra IP
Trang RFC 8914, khoanh đỏ mục 4.13 định nghĩa mã lỗi 12, NSEC Missing

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

Người đưa thư cau mày lật cuốn sổ mới ra từ máy đóng dấu, các ô đóng dấu đều trống, trên giá là sổ cũ đủ dấu

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.

Trang DNSViz phân tích edu.vn ngày 22/9, khoanh đỏ nút NSEC3PARAM còn nằm trong chuỗi chữ ký

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.

Cửa sổ Terminal in kết quả query zone .vn và 14 zone cấp hai chiều 22/10, khoanh đỏ dòng edu.vn có NSEC3PARAM rỗng và dòng com.vn cò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.

Trang DNSViz phân tích edu.vn lúc 10 giờ 45 sáng 22/10, khoanh đỏ SOA và NS của edu.vn khung đỏ, không còn nút NSEC3PARAM

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 =))

Người vận hành gạt chồng sổ mới sang một bên, lôi tập sổ cũ đủ dấu ra khỏi tủ hồ sơ, ngoài cửa người đưa thư xếp hàng chờ

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ỡ.

Cửa sổ Terminal lúc 14 giờ 57 in bảng DS trên năm name server .vn, khoanh đỏ dòng edu.vn và năm dòng cùng một serial

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].

Trang kết quả Zonemaster cho edu.vn, khoanh đỏ lỗi các server trả lời không nhất quán và giờ chạy test
Trang kết quả Zonemaster cho gov.vn, khoanh đỏ lỗi máy có DS máy không và dòng chỉ ra máy a

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.

Cửa sổ Terminal lúc 15 giờ 43, khoanh đỏ cột chữ ký ngày 7/10 và cột NSEC3PARAM đã có lại ở mọi zone

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

Người đưa thư cầm kính lúp soi lần lượt bản đồ đường, hàng cột điện, chùm chìa khoá và người gác cửa đang ngủ gật

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.

Biểu đồ số query được trả lời trên 10 query gửi tới tám name server .vn, ba máy anycast a, g, h trả lời đủ, máy c, d, f không trả lời câu nào

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].

Trang RIPEstat của dải 203.119.72.0/22, khoanh đỏ mạng công bố là AS23902 của VNNIC
Trang IODA cho Việt Nam ngày 22/10, khoanh đỏ hai đường BGP và Active Probing đi ngang quanh 100%

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

Một người thợ khoá cổng con đường vòng, người đưa thư đi qua trạm kiểm dấu để tới nhà cậu sinh viên

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.

Biểu đồ tỷ lệ người dùng sau resolver có kiểm DNSSEC theo nhà mạng từ 1/9 tới 20/10, đường Viettel kiểm đầy đủ nhảy vọt ngày 10/10 còn đường kiểm một phần tụt xuống
Trang APNIC cho Việt Nam, khoanh đỏ dòng Viettel và dòng FPT trong bảng theo nhà mạng

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.

Resolver dự phòng quyết định ai vào được Cùng query learn.evobright.edu.vn ngày 22/10, ba kiểu máy người dùng Không kiểm Máy người dùng Resolver không kiểm ✓ Vào được nhưng bị giả mạo cũng không biết Kiểm một phần Máy người dùng Resolver có kiểm ✗ SERVFAIL query lại Resolver dự phòng, không kiểm ✓ Vào được kẻ giả mạo cũng đi được đúng đường vòng này Kiểm đầy đủ 8.8.8.8, 1.1.1.1, phần lớn khách Viettel từ 10/10 Máy người dùng Resolver có kiểm ✗ SERVFAIL, dừng ở đây không còn đường vòng nào
Đường vòng qua resolver dự phòng cứu người dùng hôm 22/10, nhưng cũng là đường kẻ giả mạo đi được.

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

Cậu sinh viên tươi cười bước qua cửa dự phòng với laptop đã hiện bài học, cửa chính bị dán băng chéo và đặt cọc giao thông

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].

Trang RFC 6781, khoanh đỏ đoạn gỡ DS ở zone cha trước, đợi hết hạn, rồi mới bỏ khoá và chữ ký ở zone con

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.

Slide VNNIC năm 2017 mở trong trình xem PDF, trang 8, khoanh đỏ đoạn hai trung tâm active-standby, mỗi nơi hai máy ký độc lập
Slide VNNIC trang 9 phóng to, khoanh đỏ đường dẫn data named của máy ký và máy master dự phòng nối nét đứt tới các name server .vn

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.

Slide VNNIC năm 2017 trang 11 trong trình xem PDF, khoanh đỏ NSEC3, khoá 1024 bit và chữ ký hiệu lực 30 ngày

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)
  1. 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.
  2. VNNIC. DNSSEC Deployment for .VN. APRICOT 2017. 2017-02. Bài trình bày của VNNIC về việc triển khai DNSSEC cho .vn, trang 8, 9, 11 và 15.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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ả.
  11. Amazon Web Services. Announcing Amazon Route 53 support for DNSSEC. 2020-12-17.
  12. 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ỉ.
  13. 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.
  14. 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.
  15. AFNIC và The Swedish Internet Foundation. Zonemaster, kiểm edu.vn và gov.vn ngày 22/10/2026. 2026-10-22.
  16. RIPE NCC. RIPEstat, định tuyến của các dải IP chứa name server .vn. 2026-10-22.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. O. Kolkman, W. Mekking, R. Gieben. RFC 6781: DNSSEC Operational Practices, Version 2. IETF. 2012-12. Mục 4.2.1.2.
  22. 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ý.