Tên miền của tôi bị lợi dụng trên GitHub Pages
Tác giả phát hiện một tên miền phụ của mình đang bị người lạ chiếm dụng để lưu trữ trang web lừa đảo trên GitHub Pages. Vấn đề bắt nguồn từ việc sử dụng bản ghi DNS wildcard và cơ chế xác thực tên miền chưa chặt chẽ của nền tảng này.

Vài tuần trước, khi tôi đang đi du lịch tại Châu Phi với kết nối internet rất hạn chế, tôi đã nhận được một email từ Google Search Console thông báo về một chủ sở hữu mới cho tên miền https://kafka.immersivepoints.com/.
Thật kỳ lạ... Tên miền immersivepoints.com của tôi chỉ được sử dụng cho một trang web được lưu trữ dưới dạng GitHub Page. Đây là trang web cho trình trực quan hóa đám mây điểm 3D và VR của tôi, thực tế nó chỉ là một trang html đơn giản. Chắc chắn không có bất kỳ thành phần nào liên quan đến Kafka, chứ chưa nói đến việc tôi biết chủ sở hữu mới của tên miền phụ này là ai.
Sau khi lấy lại quyền truy cập vào kết nối internet tốc độ bình thường, tôi bắt đầu điều tra. Kiểm tra đầu tiên là các bản ghi DNS của tôi, nhưng ban đầu không có gì có vẻ bất thường ở đó. Tôi đơn giản là chuyển tiếp tên miền đến các máy chủ của GitHub, với một ký tự đại diện (wildcard) để cũng bắt lấy mọi trang phụ (như www.immersivepoints.com).
Và thật không may, đó chính là nơi vấn đề nằm...
Thông báo chủ sở hữu mới
GitHub Pages là một tính năng tuyệt vời của GitHub! Nó cho phép bạn lưu trữ một trang web tĩnh cho tài khoản GitHub, kho lưu trữ (repository), hoặc chỉ là một dự án ngầu mà bạn muốn khoe ra! Tôi sử dụng nó rất nhiều cho trang web và blog cá nhân của mình (bao gồm cả những gì bạn đang đọc ở đây), và nó cho phép bạn nhanh chóng và dễ dàng khoe các dự án cho bạn bè mà không cần lo lắng về việc quản lý từng máy chủ riêng lẻ (hoặc thậm chí phải trả tiền cho lưu trữ các dự án mà chẳng ai dùng đến).
Thiết lập một GitHub Page rất dễ dàng: trong các bản ghi DNS của bạn, bạn trỏ tên miền bạn muốn lưu trữ đến các địa chỉ IP nơi GitHub lưu trữ trang của bạn. Trên kho lưu trữ GitHub của bạn, bạn cấu hình URL của trang web (kết thúc dưới dạng tệp CNAME trong kho lưu trữ của bạn). Thông thường, bạn trỏ một tên miền đến các máy chủ GitHub này, và tôi giả định rằng chỉ có một người dùng GitHub có thể "sở hữu" một tên miền. Tức là: tôi giả định rằng chỉ có tôi mới có thể tạo các trang phụ cho *.immersivepoints.com. Tôi đoán tôi đã sai.
Có vẻ như GitHub luôn cố gắng phân giải bất kỳ tên miền nào, miễn là có bất kỳ kho lưu trữ nào có tệp CNAME này. Trong trường hợp này, ai đó đã thiết lập kafka.immersivepoints.com. Họ thậm chí đã làm điều này từ một kho lưu trữ GitHub riêng tư, điều này có nghĩa là tôi thậm chí không thể gắn cờ cho kho lưu trữ cụ thể đó. Vì cài đặt DNS của tôi chuyển tiếp mọi thứ của tên miền này đến GitHub, bất kỳ ai cũng có thể sử dụng hoặc lạm dụng tên miền của tôi.
Cấu hình DNS
Vấn đề này không phải là mới, tôi đã tìm thấy một vài công cụ (một cách đầy mỉa mai là được lưu trữ trên GitHub) sẽ giúp bạn tìm thấy các tên miền có sẵn để đánh cắp! Ví dụ, công cụ này: https://github.com/EdOverflow/can-i-take-over-xyz. Trong trường hợp của tôi, tôi không biết tên miền của mình đã bị lạm dụng theo cách này trong bao lâu, và có lẽ sẽ không bao giờ nhận ra nếu tôi không thiết lập Google Search Console cho mình vào tháng trước. Cuối cùng, tôi đã nhận thấy thêm một vài email từ Google Search Console - vì trong vài tuần qua tôi đang cập nhật blog của mình nên tôi đã hoàn toàn bỏ lỡ những email này!
Tôi hy vọng không ai trở thành nạn nhân của các trang web lừa đảo máy đánh bạc (slot machine) vô cùng tồi tệ được lưu trữ trên tên miền của tôi. Vì Google đã gặp khó khăn trong việc lập chỉ mục blog và trang của tôi, tôi đoán là không nhiều người sẽ tìm thấy các tên miền phụ này.
Điều này dẫn tôi đến câu hỏi "ai là người chịu trách nhiệm ở đây". Tôi đoán tôi nên thiết lập các bản ghi DNS của mình tốt hơn, nhưng tôi không có sự hiểu biết tốt về các bản ghi DNS (và vẫn chưa thực sự hiểu chúng). Cá nhân tôi nghĩ sẽ tốt nếu có sự xác minh tốt hơn ở phía GitHub về ai sở hữu tên miền, hoặc người dùng nào được phép xây dựng dựa trên tên miền phụ của họ. Ví dụ, nếu hai người dùng khác nhau muốn sử dụng cùng một tên miền cấp cao, hãy để người dùng đầu tiên xác minh rằng người dùng kia được phép lưu trữ một GitHub Page ở đó. Một lựa chọn khác có thể là thêm một bản ghi TXT cụ thể ở phía DNS cho từng người dùng GitHub được phép sử dụng tên miền phụ của bạn. Tôi không chắc lừa đảo này lớn đến mức nào, nhưng mọi chút giúp đỡ đều có giá trị!
Cuối cùng nhưng không kém phần quan trọng, tôi đã báo cáo các trang này cho GitHub và hy vọng tài khoản lưu trữ chúng sẽ bị cấm! Tôi vẫn chưa nhận được phản hồi nào.
Các tên miền xấu khác
Bài viết thêm Sau khi viết blog này, tôi đã điều tra lại các tên miền tùy chỉnh của GitHub. Tôi thực sự tìm thấy rằng bạn có thể xác minh một tên miền cho trang người dùng của mình: https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/verifying-your-custom-domain-for-github-pages. Tôi không nhận thấy tính năng này trước đây, và việc thiết lập đúng cài đặt là một phần thuộc cài đặt tài khoản của bạn thay vì cài đặt kho lưu trữ. Tôi nghĩ GitHub có thể hiển thị một cảnh báo nhấp nháy lớn hơn trên trang cài đặt kho lưu trữ nếu họ nhận thấy bạn không xác minh tên miền của mình, hoặc nếu họ nghĩ DNS của bạn được cấu hình không chính xác.
Bài viết liên quan

AI & ML
Nguy cơ bảo mật từ "Vibe-Coding": Hàng nghìn ứng dụng AI để lộ dữ liệu nhạy cảm trên mạng
07 tháng 5, 2026

Phần mềm
Google tung ra Antigravity 2.0: Ứng dụng lập trình thế hệ mới với công cụ CLI và gói đăng ký AI Ultra
19 tháng 5, 2026

Phần mềm
Plugin Checkmarx Jenkins bị xâm phạm trong cuộc tấn công chuỗi cung ứng
11 tháng 5, 2026
