VOC.VN Logo

Subdomain Takeover: Hiểm họa từ bản ghi CNAME bị bỏ quên

Anh Thư
Tác giả Anh Thư
Đang phản biện bởi Nguyễn Toản
10 phút đọc 30
+1
Subdomain Takeover: Hiểm họa từ bản ghi CNAME bị bỏ quên

Subdomain Takeover: Hiểm họa từ bản ghi CNAME bị bỏ quên gây tổn hại cho thương hiệu và Website như thế nào?

Mục lục 20 mục

Chạm để tới nhanh các mục khác

Mở rộng

Một chiến dịch kết thúc. Landing page bị xóa, tài khoản dịch vụ được đóng, nhưng bản ghi DNS vẫn còn. Địa chỉ từng dùng để đón khách hàng có thể tiếp tục trỏ đến một tài nguyên mà doanh nghiệp đã ngừng kiểm soát.

Nếu nền tảng cho phép người khác nhận lại tài nguyên hoặc gắn tên miền đó vào dịch vụ của họ, chính subdomain của doanh nghiệp có thể trở thành nơi phát tán nội dung lừa đảo. Kẻ tấn công không cần mua một tên miền trông gần giống thương hiệu. Họ lợi dụng cấu hình còn sót lại để đưa nội dung lên địa chỉ thật.

1. Subdomain Takeover là gì?

Subdomain Takeover là việc bên không được ủy quyền giành quyền phục vụ nội dung hoặc dịch vụ trên một tên miền con của tổ chức. Trong kịch bản CNAME bị bỏ quên, DNS vẫn trỏ đến bên thứ ba, nhưng tài nguyên hoặc cấu hình gắn tên miền ở phía nhà cung cấp đã bị bỏ.

CNAME là bản ghi tạo bí danh DNS, không phải chuyển hướng HTTP 301 hay 302. Trình duyệt vẫn truy cập hostname ban đầu; dịch vụ phía sau phải nhận diện và phục vụ hostname đó. Vì vậy, cần kiểm tra cả DNS lẫn cấu hình tiếp nhận tên miền, thường gọi là custom domain binding.

DNS, TLS và HTTP làm ba việc khác nhau

LớpĐiều cần hiểu khi kiểm tra
DNSCNAME hướng quá trình phân giải sang một tên khác. Nó không tự đổi URL trên trình duyệt.
TLSKhi dùng HTTPS, SNI có thể cho máy chủ biết hostname khách đang kết nối để chọn cấu hình TLS phù hợp. Chứng chỉ còn phải hợp lệ cho hostname được truy cập.
HTTPHost hoặc :authority xác định hostname cần phục vụ. Nền tảng dùng thông tin này để đưa request tới ứng dụng tương ứng.

Điểm cần xác minh là nền tảng có nhận hostname của doanh nghiệp cho một tài nguyên ngoài quyền kiểm soát hay không. Một endpoint còn hoạt động chưa trả lời được câu hỏi đó.

Ví dụ minh họa, dùng các tên miền dành cho tài liệu:

promo.example.com.  300  IN  CNAME  campaign-archive.vendor.example.

Doanh nghiệp từng dùng promo.example.com cho một chương trình khuyến mại. Sau khi chương trình kết thúc, đội Marketing yêu cầu xóa landing page. Đội kỹ thuật xóa tài nguyên trên nền tảng nhưng chưa gỡ CNAME.

Bản ghi vẫn đúng cú pháp; mối liên hệ giữa tên miền và tài nguyên do doanh nghiệp sở hữu đã bị đứt.

Để biến cấu hình này thành khả năng chiếm đoạt thực tế, cần đồng thời có các điều kiện:

DNS vẫn dẫn hostname đến nền tảng liên quan.

Tài nguyên hoặc quyền gắn hostname không còn được doanh nghiệp giữ.

Bên khác có thể nhận lại tài nguyên hoặc quyền gắn hostname đó.

Nền tảng sẽ phục vụ yêu cầu gửi đến hostname của doanh nghiệp bằng tài nguyên của bên kia.

Thiếu điều kiện thứ ba hoặc thứ tư, một CNAME bị bỏ quên chưa đủ chứng minh có thể takeover. Nền tảng có thể giữ tên tài nguyên, yêu cầu xác minh quyền sở hữu hoặc ngăn tài khoản khác tái sử dụng hostname.

Phạm vi chiếm đoạt ban đầu là hostname và dịch vụ liên quan. Không thể từ đó suy ra kẻ tấn công đã có quyền sửa DNS zone, quản lý tên miền gốc hay truy cập máy chủ chính.

2. Subdomain giả mạo và subdomain chính chủ bị chiếm khác nhau thế nào?

Bài cách nhận diện tên miền giả mạo các tổ chức uy tín giúp người đọc kiểm tra tên miền thực sự đứng sau một địa chỉ. Với subdomain takeover, cần thêm một bước: xác định tên miền đúng chưa đủ để khẳng định nội dung vẫn do doanh nghiệp kiểm soát.

Giả sử tên miền chính thức là example.com:

Tiêu chíTên miền giả mạoSubdomain chính chủ bị chiếm
Địa chỉ minh họaexample.com.brand-support.example.netpromo.example.com
Tên miền đăng ký chi phối địa chỉexample.netexample.com
Vị trí tên thương hiệuBị đưa vào phần phía trước để gây nhầm lẫnNằm trong hệ thống tên miền thật
Điểm bị lợi dụngNgười dùng đọc sai cấu trúc hostnameDNS và dịch vụ bên thứ ba không còn được quản lý đồng bộ
Cách xử lý của doanh nghiệpBáo cáo giả mạo, cảnh báo người dùngKiểm soát lại hostname, sửa DNS và xử lý dịch vụ liên quan

Đây là lý do lời khuyên “chỉ bấm link có đúng domain” cần đi kèm kiểm tra ngữ cảnh. Một trang yêu cầu nhập lại mật khẩu hoặc cung cấp OTP vẫn đáng nghi, kể cả khi địa chỉ nằm dưới tên miền quen thuộc. HTTPS hợp lệ cũng chưa chứng minh nội dung đang do doanh nghiệp kiểm soát.

3. GitHub Pages, S3, Heroku và Azure: không thể áp dụng chung một kết luận

Danh sách “dịch vụ dễ takeover” chỉ có giá trị tham khảo. Khi audit, phải đối chiếu sản phẩm, loại hostname và cơ chế bảo vệ đang được dùng.

Nền tảngĐiểm cần kiểm tra
GitHub PagesCustom domain còn trỏ về Pages trong khi liên kết đã bị gỡ hoặc Pages bị tắt có thể phát sinh rủi ro nếu chưa xác minh domain. GitHub có xác minh ở cấp tài khoản/tổ chức, bảo vệ domain đã xác minh và các subdomain trực tiếp. Không nên diễn giải thành “đăng ký lại đúng username là chiếm được”.
Amazon S3Với cấu hình CNAME trực tiếp tương ứng, AWS yêu cầu bucket khớp hostname. Nếu thiếu bucket, tài khoản khác có thể tạo bucket phù hợp và phục vụ nội dung qua alias. Phải kiểm tra namespace, khả năng tái sử dụng tên và cấu hình định tuyến thực tế.
Azure App ServiceCần xét cơ chế giữ tên, TXT xác minh dạng asuid.<subdomain> và kiểu hostname. App Service có secure unique default hostname để ngăn bên ngoài tái tạo hostname được bảo vệ; không thể lấy ví dụ cấu hình cũ để kết luận mọi app hiện tại đều có thể bị chiếm.
HerokuApp mới từ ngày 14/6/2023 có thêm định danh ngẫu nhiên trong hostname mặc định để ngăn tái sử dụng. Tuy nhiên, việc quản lý custom domain vẫn phải đồng bộ với DNS; Heroku tiếp tục cảnh báo rủi ro khi xóa app mà giữ bản ghi tương ứng.

Có 3 chi tiết dễ bị bỏ qua khi audit:

Với GitHub Pages, cấu hình custom domain trong repository khác với xác minh domain ở cấp tài khoản/tổ chức. Cần giữ TXT theo hướng dẫn để duy trì trạng thái xác minh.

Với S3 shared global namespace, tên bucket sau khi xóa không được bảo đảm khả dụng ngay; có trường hợp không khả dụng trở lại. Tài liệu cũng có account regional namespace, nơi tài khoản khác không thể tạo lại tên bucket thuộc namespace của bạn. Bucket đã tạo không đổi được tên; cần đánh giá lại kiến trúc thay vì đổi tên rồi giữ nguyên CNAME.

Với Azure App Service, secure unique default hostname được thiết lập khi tạo tài nguyên và không áp dụng hồi tố. Portal tự dùng tính năng này cho tài nguyên mới được hỗ trợ; CLI/ARM/API cần bật tương ứng. Cơ chế giữ tên không phải lời bảo đảm giữ hostname vĩnh viễn.

Với Heroku, khi app bị xóa, các custom domain gắn với app được giải phóng. Vì thế, phải kiểm tra binding của custom domain, không chỉ nhìn định danh ngẫu nhiên trong hostname mặc định.

Cũng cần tách khả năng phục vụ HTTP khỏi HTTPS. S3 website endpoint không hỗ trợ HTTPS trực tiếp; nếu hệ thống có CDN hoặc lớp TLS phía trước, phải kiểm tra thêm lớp đó.

4. Subdomain Takeover gây hại SEO đến đâu?

Nội dung độc hại xuất hiện dưới địa chỉ chính chủ

Subdomain bị chiếm có thể được dùng cho trang phishing, nội dung spam hoặc chuyển hướng người dùng sang nơi khác. Nếu vẫn còn backlink, liên kết nội bộ, email cũ hay bookmark, những đường dẫn đó có thể tiếp tục đưa khách hàng đến nội dung của kẻ tấn công.

Với đội SEO, cần kiểm kê cả đường dẫn tạo ra lượt truy cập: menu, bài viết cũ, tài liệu PDF, trang đối tác và landing page đã kết thúc. Việc dọn DNS sẽ chưa giải quyết hết trải nghiệm người dùng nếu các điểm chạm này vẫn dẫn đến địa chỉ đã ngừng hoạt động.

Cảnh báo bảo mật và mất hiển thị là những hậu quả khác nhau

Google cho biết trang hoặc website có vấn đề bảo mật có thể xuất hiện cảnh báo trong kết quả tìm kiếm hoặc khi người dùng truy cập bằng trình duyệt. Nội dung bị hack cũng có thể bị loại khỏi kết quả tìm kiếm.

Google không công bố quy tắc “một subdomain bị chiếm thì toàn bộ tên miền gốc tự động bị Safe Browsing gắn cờ và de-index”. Điều này cũng không bảo đảm tên miền gốc được cách ly khỏi mọi ảnh hưởng. Muốn xác định phạm vi, phải kiểm tra hostname, URL, báo cáo bảo mật và trạng thái lập chỉ mục thực tế.

Cần phân biệt ba việc:

Security Issues: dấu hiệu bị hack, malware, phishing hoặc hành vi gây hại.

Manual Actions: tác vụ do người đánh giá của Google xác định vi phạm; báo cáo có thể nêu phạm vi một phần hoặc toàn website.

Biến động hiệu suất: giảm click, impression hoặc chuyển đổi cần điều tra nguyên nhân; riêng việc traffic giảm chưa chứng minh có hình phạt.

Nội dung được đưa lên trái phép do điểm yếu bảo mật phù hợp với định nghĩa hacked content của Google. Đây là đối chiếu định nghĩa, không phải dự đoán nhãn Google chắc chắn áp dụng cho mọi vụ takeover. Nếu có cảnh báo bảo mật hoặc tác vụ thủ công, đối chiếu nội dung và phạm vi trong báo cáo tương ứng của Search Console.

E-E-A-T không phải điểm số bị trừ theo sự cố

Một địa chỉ chính chủ dẫn đến form lừa đảo làm tổn hại niềm tin vào thương hiệu. Tuy nhiên, không nên viết rằng Google “trừ điểm E-E-A-T của toàn domain”. Google xác nhận E-E-A-T không phải một yếu tố xếp hạng cụ thể.

Công việc thực tế là bảo vệ người dùng, kiểm soát lại nội dung và cung cấp bằng chứng đã khắc phục. Bổ sung hồ sơ tác giả hay chỉnh schema không xử lý được một hostname đang phục vụ nội dung của người khác.

Đo thiệt hại SEO bằng dữ liệu nào?

Bảng dưới đây là cách phân tích đề xuất, không phải công thức xếp hạng của Google. Trước tiên, lưu các mốc: phát hiện sự cố, sửa DNS/binding, khôi phục nội dung và gửi yêu cầu xem xét. Ngày phát hiện chưa chắc là ngày bắt đầu bị chiếm.

Dữ liệu cần đối chiếuCách dùng và giới hạn
URL và lập chỉ mụcKiểm tra các URL đại diện trên host bị ảnh hưởng bằng URL Inspection; không suy ra toàn domain mất index từ vài URL.
Click, impression, CTR và vị tríTách host, trang và nhóm truy vấn liên quan; so sánh các kỳ có tính tương đồng thay vì chỉ nhìn tổng traffic.
Liên kết và nguồn truy cậpXác định đường dẫn nào vẫn đưa người dùng tới hostname, kể cả tài liệu hoặc chiến dịch cũ.
Chuyển đổiĐối chiếu dữ liệu của các trang liên quan khi hệ thống đo lường còn đáng tin cậy.
Thay đổi cùng thời điểmGhi nhận chỉnh sửa website, nhu cầu tìm kiếm, mùa vụ hoặc cập nhật Search trước khi quy nguyên nhân cho takeover.

Traffic giảm cùng thời điểm là một tín hiệu để điều tra. Chưa đủ dữ liệu thì chưa nên quy toàn bộ mức giảm hoặc chênh lệch doanh thu cho sự cố. Hướng dẫn của Google cũng yêu cầu xem xét nhiều nguyên nhân khi phân tích giảm traffic.

Giả sử ứng dụng đặt cookie:

Set-Cookie: session=...; Domain=example.com; Path=/; Secure; HttpOnly

Thuộc tính Domain=example.com mở phạm vi cookie tới các subdomain. Nếu người dùng truy cập hostname bị chiếm qua HTTPS hợp lệ và các điều kiện gửi cookie được đáp ứng, cookie có thể được gửi đến dịch vụ phía đó. Secure yêu cầu HTTPS; nó không xác nhận dịch vụ đang do doanh nghiệp kiểm soát.

Cookie được gửi đến dịch vụ chưa có nghĩa người chiếm nội dung chắc chắn đọc được cookie.HttpOnly vẫn ngăn JavaScript đọc cookie. Để đánh giá nguy cơ lộ cookie, phải xác minh người chiếm nội dung có khả năng quan sát request/header hoặc cơ chế truy cập phù hợp. Khả năng đó chưa chứng minh cookie của người dùng đã thực sự bị thu thập; cần thêm bằng chứng truy cập và phạm vi ảnh hưởng. Quyền sửa HTML trên một nền tảng tĩnh chưa tự chứng minh quyền đọc header Cookie.

Với cookie không cần chia sẻ giữa các host, nên cân nhắc bỏ Domain để giới hạn vào host đặt cookie. Một cấu hình minh họa:

Set-Cookie: __Host-session=...; Secure; HttpOnly; Path=/; SameSite=Lax

Tiền tố __Host- yêu cầu HTTPS, Secure, Path=/ và không có thuộc tính Domain trên trình duyệt hỗ trợ. Đây là cách giới hạn phạm vi cookie; không phải cấu hình mặc định phù hợp với mọi luồng đăng nhập.

Cùng site không có nghĩa cùng origin

https://www.example.com và https://promo.example.com là hai origin khác nhau do khác hostname, nhưng cùng site theo cách xét scheme và tên miền đăng ký. Vì thế, không thể coi SameSite là hàng rào cô lập mọi subdomain. Ngược lại, việc cùng site không tự trao quyền đọc DOM, localStorage hoặc phản hồi của origin khác.

Đội bảo mật cần kiểm tra các cấu hình đang tin cậy hostname bị ảnh hưởng:

CORS: origin đó có được phép đọc phản hồi nhạy cảm khi gửi request có thông tin xác thực không? Không dùng ví dụ Access-Control-Allow-Origin: * kết hợp credentials để kết luận có thể đọc dữ liệu, vì trình duyệt chặn truy cập phản hồi theo tổ hợp này.

OAuth: hostname có còn nằm trong redirect URI được chấp nhận không? Tác động phụ thuộc luồng xác thực và các kiểm soát liên quan. RFC 9700 yêu cầu so khớp chính xác redirect URI, có ngoại lệ về cổng localhost của ứng dụng native.

Đây là các phụ thuộc cần rà soát, không phải những quyền tự động xuất hiện sau khi một subdomain bị chiếm.

6. Cách audit: kiểm tra quyền sở hữu, không chỉ kiểm tra website còn chạy

Một subdomain trả về 200 OK vẫn có thể đang phục vụ nội dung của người khác. AWS lưu ý việc chỉ kiểm tra DNS phân giải thành công có thể bỏ sót takeover sau khi tài nguyên đã được bên khác nhận lại.

Nên bắt đầu bằng danh sách DNS do doanh nghiệp quản lý, sau đó đối chiếu với tài nguyên trên các tài khoản cloud/SaaS liên quan. Không tìm thấy tài nguyên trong một tài khoản chưa đủ kết luận bị bỏ: nó có thể nằm ở tài khoản khác hoặc bên cung cấp dịch vụ được ủy quyền. Kiểm tra cả phạm vi tài khoản và mức độ đầy đủ của dữ liệu kiểm kê.

Với mỗi hostname, tối thiểu cần có:

Chủ sở hữu nội bộ và mục đích sử dụng.

Toàn bộ chuỗi CNAME, kể cả các lớp trung gian.

Nhà cung cấp, tài khoản hoặc subscription và mã tài nguyên.

Trạng thái custom domain binding, xác minh quyền sở hữu.

Phụ thuộc liên quan: cookie, đăng nhập, API, CDN, liên kết và backlink.

Người chịu trách nhiệm cùng phương án khi ngừng sử dụng.

Có thể dùng các lệnh chỉ đọc sau để kiểm tra sơ bộ trên tên miền thuộc phạm vi quản lý:

dig +noall +answer promo.example.com CNAME
dig +noall +answer promo.example.com A
dig +noall +answer promo.example.com AAAA
curl -I --connect-timeout 5 --max-time 10 https://promo.example.com/

Nếu dùng DNS proxy, CDN hoặc CNAME flattening, truy vấn công khai có thể không hiển thị CNAME gốc; cần đối chiếu cấu hình trong hệ thống quản trị DNS.

Các lệnh này cung cấp dữ liệu DNS và phản hồi HTTP ban đầu. Chúng không xác nhận tài nguyên đang thuộc tài khoản nào; curl -I cũng không kiểm tra nội dung trang.

Nên phân loại kết quả theo bằng chứng:

Trạng tháiKết luận phù hợp
Có lỗi DNS, 404 hoặc trang mặc định của nhà cung cấpDấu hiệu cần điều tra
Đã xác nhận tài nguyên hoặc binding bị bỏ nhưng DNS còn trỏDangling DNS đã xác nhận
Đã xác minh người ngoài có thể nhận tài nguyên/binding và phục vụ hostnameCó khả năng takeover
Có nội dung hoặc dịch vụ trái phép trên hostnameCó sự cố cần xử lý; tiếp tục xác minh tài nguyên và binding để xác định nguyên nhân

Thấy một thông báo lỗi quen thuộc trong kết quả quét chưa đủ để kết luận subdomain đã bị chiếm. Chẳng hạn, GitHub Pages có nhiều nguyên nhân gây lỗi 404, bao gồm thiếu index.html. Việc xác nhận phải dựa trên tài khoản quản trị, tài liệu nền tảng hoặc phản hồi của nhà cung cấp.

Tương tự, nội dung trái phép cho thấy có sự cố nhưng chưa xác định được đường xâm nhập. Cần bằng chứng về DNS, tài nguyên và binding trước khi gọi nguyên nhân là dangling-CNAME takeover.

Về ưu tiên xử lý, hostname liên quan đăng nhập, dữ liệu nhạy cảm hoặc nội dung độc hại đang hoạt động cần được xem xét trước. Một subdomain ít traffic vẫn có thể quan trọng nếu được ứng dụng khác tin cậy.

Một tình huống audit đi đến kết luận

Tình huống sau là mô phỏng để minh họa cách đọc bằng chứng, không phải hồ sơ sự cố thực tế.

promo.example.com vẫn có CNAME tới một dịch vụ hosting. Khi mở trang, người kiểm tra thấy một trang mặc định của nhà cung cấp.

Bước kiểm traBằng chứng và quyết định
1. Ghi nhận DNS và HTTPLưu chuỗi phân giải cùng phản hồi. Trạng thái hiện tại mới là nghi vấn.
2. Đối chiếu quyền sở hữuKiểm tra tất cả tài khoản liên quan và bên được ủy quyền; xác định tài nguyên/binding có còn được giữ không.
3. Kiểm tra cơ chế bảo vệĐối chiếu loại dịch vụ với xác minh domain, cơ chế giữ tên và chính sách nhận lại hostname. Chưa có đủ bằng chứng thì giữ trạng thái “cần xác minh”.
4. Chọn cách xử lýNếu xác nhận DNS còn trỏ nhưng tài nguyên/binding đã bị bỏ, sửa cấu hình này dù chưa chứng minh được khả năng khai thác.
5. Xác nhận kết quảĐối chiếu DNS với tài nguyên an toàn, kiểm tra nội dung và lưu người chịu trách nhiệm.

Không cần tự đăng ký lại một tài nguyên để quyết định dọn bản ghi đã xác nhận không còn cần dùng. Mục tiêu audit là khôi phục một cấu hình có chủ sở hữu rõ ràng.

7. Phát hiện subdomain bị chiếm: xử lý theo thứ tự nào?

Bước 1: Ngắt đường dẫn tới tài nguyên ngoài quyền kiểm soát

Nếu hostname không còn cần dùng, gỡ bản ghi liên quan. Nếu vẫn cần, chuyển sang tài nguyên an toàn do doanh nghiệp kiểm soát và xác minh lại binding. Hệ thống có CDN hoặc nhiều lớp hosting phải được kiểm tra từng lớp.

Lưu nhanh bằng chứng cần thiết: bản ghi DNS, thời điểm phát hiện, URL, phản hồi và cấu hình liên quan. Việc thu thập không nên kéo dài thời gian người dùng tiếp tục tiếp xúc với nội dung độc hại.

Thay đổi DNS không có hiệu lực đồng thời ở mọi nơi. Cần tính đến TTL và kiểm tra các resolver còn giữ bản ghi cũ; hạ TTL sau khi sự cố xảy ra không xóa ngay những bản ghi đã được cache.

TTL cũng không phải lời hẹn mọi resolver sẽ đổi cấu hình cùng lúc. RFC 8767 cho phép resolver dùng dữ liệu đã quá TTL trong những điều kiện không làm mới được dữ liệu từ máy chủ authoritative. Vì vậy, cần kiểm tra trạng thái thực tế thay vì chỉ chờ hết một khoảng thời gian.

Bước 2: Xác định phạm vi đã bị lợi dụng

Kiểm tra các hostname khác trỏ cùng tài nguyên, nội dung mới xuất hiện, redirect và những liên kết còn đưa người dùng đến đó.

Nếu có khả năng lộ cookie, token hoặc thông tin đăng nhập, đội phụ trách cần đánh giá việc thu hồi phiên và thông tin xác thực bị ảnh hưởng. Không nên coi việc đã sửa CNAME là bằng chứng mọi rủi ro liên quan đều đã chấm dứt.

Bước 3: Dọn nội dung và xử lý URL

Khi doanh nghiệp đã kiểm soát lại hạ tầng phục vụ hostname:

Khôi phục nội dung hợp lệ nếu trang còn giá trị sử dụng.

Với URL spam đã xóa, không có trang thay thế phù hợp, trả về 404 hoặc 410. Google sẽ loại các URL này khỏi chỉ mục sau khi xử lý lại.

Chỉ chuyển hướng URL cũ tới trang có nội dung thay thế tương ứng; tránh gom mọi URL rác về trang chủ.

Gỡ liên kết nội bộ và sitemap dẫn tới nội dung không còn tồn tại.

Nếu hostname không còn phân giải tới dịch vụ tiếp nhận request, không thể dùng dịch vụ đó để trả HTTP 410 cho lượt truy cập thông thường. Resolver còn cache địa chỉ cũ có thể vẫn đưa request tới hạ tầng trước đó; cần kiểm tra riêng trường hợp này. Mã HTTP chỉ được trả khi request tới được một dịch vụ đang xử lý hostname.

Bước 4: Làm việc với Google theo báo cáo thực tế

Kiểm tra riêng Security Issues và Manual Actions. Các URL mẫu trong Security Issues không phải danh sách đầy đủ; phải xử lý toàn bộ vấn đề trước khi gửi yêu cầu xem xét ở báo cáo tương ứng.

Nếu cần ẩn nhanh kết quả độc hại, có thể dùng Removals trong Search Console. Đây là biện pháp tạm thời để ẩn kết quả tìm kiếm, không thay thế việc sửa DNS hoặc loại bỏ nội dung.

Google hướng dẫn kiểm tra chủ sở hữu mới đáng ngờ trong Search Console khi xử lý nội dung lừa đảo. Đội vận hành cũng nên rà soát người dùng và phương thức xác minh còn hiệu lực. Quyền xuất bản trên một subdomain không tự đồng nghĩa quyền quản trị Domain property.

Theo dõi tiếp trạng thái lập chỉ mục, cảnh báo và hiệu suất theo từng hostname. Không có thời hạn phục hồi thứ hạng cố định cho mọi sự cố.

Khi nào có thể xác nhận đã khắc phục?

Đây là bộ tiêu chí nghiệm thu đề xuất cho đội vận hành:

Phạm viBằng chứng cần có
DNS và tài nguyênDNS đã gỡ hoặc trỏ đúng phương án được duyệt; tài nguyên/binding có tài khoản và người chịu trách nhiệm rõ ràng.
Nội dungNội dung trái phép và redirect liên quan đã được loại bỏ hoặc ngắt khỏi hostname; đã kiểm tra các URL liên quan, không chỉ phản hồi 200.
Phụ thuộc bảo mậtĐã đánh giá cookie, cấu hình đăng nhập, CORS và dữ liệu có thể bị ảnh hưởng; có quyết định xử lý được ghi lại.
Google SearchĐã lưu trạng thái Security Issues, Manual Actions và URL liên quan; gửi yêu cầu xem xét khi cần và theo dõi kết quả.
Ngăn tái diễnĐã xác định nguyên nhân bỏ sót, người chịu trách nhiệm và thay đổi trong quy trình đóng dịch vụ.

Khôi phục quyền kiểm soát kỹ thuật và Google hoàn tất xem xét là hai mốc khác nhau. Có thể hoàn tất việc thu hồi hostname trong khi vẫn đang chờ kết quả review hoặc Google cập nhật dữ liệu. Hồ sơ sự cố cần ghi rõ trạng thái của từng phần.

8. Phòng ngừa: đưa DNS vào quy trình đóng dịch vụ

Cách phòng ngừa bền vững là quản lý tên miền cùng vòng đời tài nguyên:

Khi triển khai: giữ tài nguyên và xác minh quyền gắn hostname trước, sau đó mới công bố DNS.

Khi ngừng sử dụng: cập nhật hoặc gỡ DNS trước, xác nhận trạng thái cache liên quan, rồi mới giải phóng tài nguyên hoặc binding. Trong khoảng chờ, tài nguyên cũ cần tiếp tục được doanh nghiệp kiểm soát. Thứ tự này giúp tránh để DNS công khai trỏ đến một dịch vụ có thể được bên khác nhận lại.

Nên đưa thêm các yêu cầu sau vào vận hành:

Mỗi subdomain có một người hoặc bộ phận chịu trách nhiệm.

Ticket đóng chiến dịch phải có phần xử lý DNS, binding, liên kết và nội dung lưu trữ.

Giữ các bản ghi xác minh cần thiết trong thời gian còn sử dụng cơ chế bảo vệ; không xóa TXT chỉ vì cho rằng đó là dữ liệu cũ.

Đối chiếu DNS với tài nguyên sau mỗi thay đổi hạ tầng và theo lịch phù hợp mức rủi ro.

Kiểm tra phạm vi wildcard thay vì mặc định xác minh domain gốc sẽ bảo vệ mọi hostname ở mọi cấp. GitHub có cảnh báo riêng về trường hợp này.

Dùng Domain property trong Search Console để bao quát subdomain; thêm URL-prefix property khi cần theo dõi riêng một host.

Một cấu hình 13px] font-mono font-semibold">noindex không ngăn được takeover: nó phục vụ mục đích lập chỉ mục, không xác lập quyền sở hữu dịch vụ. Nếu còn chặn crawler bằng robots.txt, Google có thể không đọc được chỉ thị noindex.

Điều kiện để đóng một chiến dịch nên rõ ràng: hostname đã được kiểm tra, DNS đã xử lý, tài nguyên và quyền gắn tên miền đã có phương án, các liên kết cũ đã được rà soát. Nếu chưa xác định được ai đang kiểm soát dịch vụ phía sau một CNAME, công việc thu hồi vẫn chưa hoàn tất.

Nguồn tham khảo thêm:

MDN - Subdomain takeover

AWS - Virtual hosting of general purpose buckets

Microsoft - Prevent subdomain takeovers in Azure App Service

GitHub - Verifying your custom domain for GitHub Pages

AWS - General purpose bucket naming rules

Heroku - How do I mitigate subdomain reuse?

Heroku - Custom Domain Names for Apps

AWS - Website endpoints

AWS Security Blog - Threat tactic spotlight: Subdomain takeover

Google -Security issues report

Google - Manual actions report

Google Search Central - Spam policies / Hacked content

Google Search Central -Helpful content / E-E-A-T

MDN - Set-Cookie

Google - How HTTP status codes affect Google's crawlers

Google - Removals and SafeSearch reports tool

Google - Add a property to Search Console

Google Search Central -Block Search indexing with noindex

Microsoft - Prevent dangling DNS entries and avoid subdomain takeover

IETF - RFC 1034: CNAME và phân giải DNS

GitHub - Troubleshooting 404 errors for Pages

© Ghi nguồn voc.vn khi đăng tải lại nội dung này.

Đánh giá bài viết:
+1
Thông tin tác giả Xem hồ sơ tác giả

Anh Thư

Chuyên gia

Technical SEO Content Lead

Trưởng nhóm sáng tạo nội dung kỹ thuật tại VOC. Chuyên sâu về tối ưu hóa thực thể AI Search, cấu trúc bài viết chuyên gia E-E-A-T và mô hình hóa nội dung phục vụ các công cụ tìm kiếm tạo sinh (GEO).

Kết nối:
Tiến trình phản biện chuyên môn
Đang phản biện thực nghiệm
Nguyễn Toản

Nguyễn Toản

Chuyên gia phản biện

Chief Technical SEO & Search Engine Architect

Technical SEO chính và Leader SEO dự án khó với hơn 15 năm kinh nghiệm chuyên sâu về Technical SEO, Log File Analysis, Cấu trúc Crawl quy mô lớn và Tối ưu hóa Tìm kiếm AI (GEO). Đã trực tiếp thiết kế và giải cứu hơn 150+ hệ thống Website có cấu trúc lớn , SaaS và Báo điện tử khỏi các đợt bão thuật toán Google Core Update, HCU, Spam Update, Spamhaus...

Tiến độ: Đang phản biện chuyên môn
Xem hồ sơ chuyên gia