Chiến dịch deepveindrilling cho thấy một mã nạp JavaScript rất ngắn vẫn có thể tồn tại trên hàng trăm cửa hàng trực tuyến nếu kẻ tấn công duy trì được quyền ghi vào cơ sở dữ liệu. Báo cáo của Sansec công bố ngày 24/10/2026 ghi nhận 953 cửa hàng, phần lớn dùng Magento, đã tải hạ tầng của cùng một nhóm vận hành từ tháng 7/2025. Phiên bản mới nhất còn thu thập dấu vân tay trình duyệt để tránh phục vụ nội dung độc hại cho máy quét tự động.
Hồ sơ một chiến dịch âm thầm kéo dài 15 tháng
Sansec lần đầu quan sát một cửa hàng tải mã từ tên miền manulfie.click vào ngày 9/7/2025. Sau đó, nhóm vận hành lần lượt chuyển qua neswnsssn.click, lanhd6549tdhse.top, additionalver.com và deepveindrilling.com. Mỗi tên miền hoạt động trong một giai đoạn, nhưng đoạn mã cũ vẫn còn nhúng trên nhiều website sau khi hạ tầng đã đổi.
Dữ liệu thu thập của Sansec gắn năm tên miền chính với lần lượt 863, 494, 355, 246 và 83 cửa hàng. Các con số có phần giao nhau vì một nạn nhân có thể xuất hiện trong nhiều đợt. Tổng cộng 953 cửa hàng riêng biệt đã bị ghi nhận trong toàn chiến dịch, không phải tổng đơn giản của số website theo từng tên miền.

deepveindrilling.com mở ra đợt hoạt động mới
Tên miền deepveindrilling.com được đăng ký ngày 6/10/2026 và bắt đầu xuất hiện trên các cửa hàng vào tối hôm sau. Sansec tìm thấy nó trong bảng cms_block của 83 cửa hàng, gần như tất cả đều chạy Magento. Trong số này, 60 website từng tải một loader cũ và 34 website đã mang mã của nhóm từ tháng 10/2025.
Ngày 23/10, kẻ vận hành viết lại các block và đưa phiên bản mới lên thêm chín cửa hàng. Đến ngày 24/10, toàn bộ 71 website mà Sansec quét lại đều đã dùng loader thu thập dấu vân tay. Việc nhiều nạn nhân cũ tái xuất hiện cho thấy xóa đoạn script hiển thị không đồng nghĩa với loại bỏ quyền truy cập của kẻ tấn công.
Cách loader phân biệt người mua với máy quét
Mã mới gửi các tín hiệu như navigator.webdriver, biến toàn cục của Selenium, thuộc tính đặc trưng của ChromeDriver, tên GPU, số lõi CPU, bộ nhớ, kích thước màn hình, múi giờ, ngôn ngữ và client hints về máy chủ điều khiển. Máy chủ sau đó quyết định trả payload, chuyển hướng hoặc không làm gì dựa trên hồ sơ của từng lượt truy cập.
Khi urlscan.io mở một cửa hàng nhiễm bằng Chrome tự động, máy chủ trả HTTP 200 nhưng không thêm nội dung vào trang. Vì vậy, một máy quét chỉ kiểm tra mã phản hồi hoặc tải trang bằng trình duyệt tự động có thể kết luận sai rằng website sạch. Sansec chưa thu được payload cuối của đợt deepveindrilling tại thời điểm công bố.
Một phiên bản đầu tháng 10 còn đọc khóa fpCode trong localStorage, đặt nội dung của khóa vào thuộc tính onclick của một phần tử vô hình rồi kích hoạt nó. Cơ chế này có thể khiến mã đã nhận trước đó tiếp tục chạy ở các lần xem trang sau, kể cả khi tên miền phân phối bị chặn hoặc ngừng hoạt động.
Từ Keitaro đến hạ tầng tự lọc bot
Trong các giai đoạn trước, nhóm sử dụng Keitaro, một nền tảng theo dõi quảng cáo có thể hoạt động như hệ thống phân phối lưu lượng. Loader gửi referrer, tiêu đề trang và chuỗi truy vấn về máy chủ; hệ thống lựa chọn trả mã, chuyển hướng hoặc nội dung vô hại. Riêng additionalver.com đã tạo khoảng 52.000 báo cáo tải tài nguyên trong dịch vụ giám sát CSP của Sansec.
Sansec từng thấy người dùng thật nhận script từ các tên miền mang chủ đề tiền mã hóa. Một địa chỉ cố tình viết sai thương hiệu ví Ledger đã được sử dụng vào tháng 12/2025. Tuy nhiên, bằng chứng hiện có chưa đủ để khẳng định mọi cửa hàng trong danh sách đều đã đánh cắp dữ liệu thanh toán; điều được xác nhận là loader tạo khả năng phân phối payload có chọn lọc tới trình duyệt khách hàng.
Những lỗ hổng và cửa hậu giữ quyền truy cập
Đợt lớn nhất diễn ra ngày 30/3/2026, khi 471 cửa hàng bị chèn loader trong một giờ sau hoạt động tải webshell qua PolyShell, lỗ hổng CVE-2026-48356. Trên toàn chiến dịch, Sansec tìm thấy loader ở 169 bản cài Magento 2 thiếu ít nhất một bản vá lõi; 102 hệ thống trong số đó cũng có tệp được tải lên qua PolyShell hoặc SessionReaper, CVE-2025-54236.
Bản vá vẫn chưa đủ nếu kẻ tấn công đã tạo tài khoản quản trị hoặc cài cửa hậu. Sansec nêu trường hợp một cửa hàng chạy Magento 2.4.7-p10 không thiếu bản vá lõi nhưng vẫn nhận loader mới ngày 23/10. Trước đó, hệ thống này đã bị phát hiện có tài khoản quản trị trái phép vào ngày 16/9 và cửa hậu GSocket vào ngày 24/9.
Hệ lụy kỹ thuật, kinh tế và niềm tin
Về kỹ thuật, đoạn mã nằm trong nội dung CMS nên có thể xuất hiện trên nhiều trang mà không sửa tệp giao diện. Cơ chế lọc bot làm giảm khả năng phát hiện, còn localStorage kéo dài thời gian tồn tại ở phía trình duyệt. Nếu máy chủ điều khiển phục vụ skimmer hoặc chuyển hướng lừa đảo, người mua có thể bị đánh cắp thông tin ngay trong phiên truy cập một cửa hàng hợp pháp.
Về kinh tế và pháp lý, nhà bán lẻ có thể đối mặt với chi phí điều tra, khôi phục, thông báo vi phạm và nghĩa vụ bảo vệ dữ liệu tùy khu vực. Thiệt hại niềm tin còn lan sang nền tảng thương mại điện tử và đối tác thanh toán. Việc các tên miền đã hết hạn vẫn nằm trong website cũng tạo rủi ro tiếp quản hạ tầng: chủ sở hữu mới của tên miền có thể nhận metadata hoặc trả JavaScript cho khách truy cập.
Dấu hiệu nhận biết và quy trình xử lý
Đội vận hành nên tìm trong cms_block và cms_page các chuỗi fpCode, se_referrer hoặc localStorage.getItem, đồng thời rà soát các tên miền manulfie.click, neswnsssn.click, lanhd6549tdhse.top, additionalver.com và deepveindrilling.com. Do tên miền có thể được mã hóa base64, chỉ tìm URL ở dạng rõ là chưa đủ.
Sau khi loại bỏ loader, cần xác định và đóng đường vào ban đầu: kiểm tra tệp bất thường trong thư mục upload, webshell accesson.php, tài khoản quản trị lạ, tiến trình không quen thuộc và cơ chế duy trì khác. Tiếp đó phải cài các bản vá liên quan, đổi mật khẩu cơ sở dữ liệu, quản trị viên và tích hợp API, thu hồi phiên đăng nhập, rồi giám sát CSP và thay đổi nội dung CMS từ một hệ thống độc lập.
Bài học từ hồ sơ deepveindrilling
Chiến dịch này không dựa vào một kỹ thuật duy nhất. Kẻ vận hành kết hợp lỗ hổng tải tệp, webshell, tài khoản quản trị, nội dung CMS, hệ thống phân phối lưu lượng và dấu vân tay trình duyệt. Chính chuỗi nhiều lớp đó giúp hoạt động tiếp tục qua năm tên miền và nhiều vòng vá lỗi.
Bài học quan trọng là ứng phó phải loại bỏ toàn bộ quyền truy cập và cơ chế duy trì, không chỉ xóa JavaScript nhìn thấy trên trang. Tổ chức cũng cần xem dữ liệu phía client, CSP, lịch sử thay đổi cơ sở dữ liệu và tài khoản quản trị là nguồn phát hiện chính. Với người mua, không có bằng chứng để xác định cửa hàng cụ thể từ danh sách công khai; biện pháp thực tế vẫn là hạn chế lưu thông tin thanh toán, bật cảnh báo giao dịch và liên hệ ngân hàng khi thấy hoạt động bất thường.
VNCyberS tổng hợp từ Sansec, The Hacker News và SecurityWeek















