Duy Linh
Writer
Một chiến dịch lừa đảo trực tuyến tinh vi, hoạt động trong nhiều năm, đã phát triển thành mô hình tấn công phi máy chủ với cấu trúc mô-đun, lợi dụng GitHub Pages để đánh cắp dữ liệu thẻ thanh toán, thông tin đăng nhập và mã định danh khách hàng của người dùng ngân hàng tại Mexico.
Theo các nhà nghiên cứu của Group-IB, chiến dịch này được xây dựng dựa trên một bộ công cụ lừa đảo có bảng điều khiển, cho phép các đối tượng vận hành nhanh chóng tạo ra các trang đích giả mạo dành riêng cho từng tổ chức tài chính. Các trang này mạo danh ít nhất một tá tổ chức tài chính khác nhau, đồng thời hỗ trợ cả giao diện máy tính và thiết bị di động nhằm tăng khả năng tương tác với nạn nhân.
Thay vì phụ thuộc vào một tên miền duy nhất, tin tặc triển khai bộ công cụ trên hơn 100 kho lưu trữ GitHub Pages. Mỗi kho lưu trữ xuất bản các bản sao của trang lừa đảo dưới nhiều đường dẫn khác nhau như /cancelacion/, /soporte/ hoặc /mb1/. Cách làm này giúp duy trì hoạt động khi một số kho lưu trữ bị gỡ bỏ, đồng thời cho phép khôi phục chiến dịch nhanh chóng.
Group-IB nhận định sự bền bỉ, quy mô lớn và tính chuyên nghiệp của chiến dịch đến từ việc kết hợp giữa lưu trữ phân tán trên GitHub Pages, mã JavaScript được mã hóa ở phía máy khách và các API của bên thứ ba, đặc biệt là SheetBest, để thu thập dữ liệu đánh cắp.
Các trang này sử dụng trình lắng nghe sự kiện JavaScript để chặn thao tác gửi biểu mẫu bằng phương thức e.preventDefault(), sau đó chuyển đổi dữ liệu nhập vào thành định dạng JSON và gửi đến các điểm cuối API của SheetBest thông qua yêu cầu POST.
Dữ liệu sau đó được cập nhật trực tiếp vào các bảng Google Sheets do kẻ tấn công kiểm soát theo thời gian thực, loại bỏ hoàn toàn nhu cầu vận hành máy chủ điều khiển truyền thống.
Group-IB đã xác định nhiều điểm cuối SheetBest liên quan đến chiến dịch. Tất cả đều trỏ về cùng một địa chỉ IP phụ trợ và sử dụng logic gửi dữ liệu giống nhau trên nhiều mẫu lừa đảo. Đây được xem là bằng chứng cho thấy sự tồn tại của một hệ thống đánh cắp dữ liệu tập trung nhưng vận hành theo mô hình phi máy chủ, cho phép thu thập dữ liệu từ nhiều nguồn về một điểm lưu trữ duy nhất.
Các trang đích mạo danh nhắm mục tiêu vào các tổ chức tài chính (Nguồn: GroupIB).
Để tránh bị phát hiện, các trang lừa đảo không nhúng trực tiếp mã JavaScript vào HTML mà tải mã từ các đường dẫn ngẫu nhiên đã được mã hóa. Điều này giúp tin tặc thay đổi nội dung hoặc logic hoạt động mà không cần chỉnh sửa giao diện trang web, làm giảm hiệu quả của các phương pháp phát hiện dựa trên chữ ký.
Một số mẫu còn chứa sẵn mã thông báo bot Telegram và ID cuộc trò chuyện được mã hóa cứng trong mã nguồn JavaScript. Thông tin đăng nhập bị đánh cắp có thể được chuyển trực tiếp đến Telegram theo thời gian thực, cho thấy khả năng linh hoạt trong việc thay đổi kênh thu thập dữ liệu.
Dữ liệu siêu dữ liệu kho lưu trữ và lịch sử commit cho thấy chiến dịch được duy trì liên tục bởi nhiều tài khoản vận hành trong hơn một năm. Các đối tượng thường xuyên cập nhật mẫu lừa đảo, thay đổi điểm cuối và thực hiện các hoạt động bảo trì định kỳ.
Mã token và ID cuộc trò chuyện của bot Telegram được mã hóa cứng và nhúng trong mã JavaScript lừa đảo (Nguồn: GroupIB).
Việc sử dụng chỉ thị robots noindex và nofollow cho thấy các trang này không được tạo ra để xuất hiện trên công cụ tìm kiếm. Thay vào đó, chúng được phát tán có chủ đích qua SMS, WhatsApp, Telegram hoặc mạng xã hội, nơi các bản xem trước liên kết có thể làm tăng đáng kể tỷ lệ nhấp chuột của nạn nhân.
Chiến dịch phản ánh xu hướng ngày càng phổ biến khi các tác nhân đe dọa lợi dụng độ tin cậy, giao thức HTTPS và khả năng triển khai dễ dàng của các nền tảng đám mây uy tín để thực hiện các cuộc tấn công lừa đảo quy mô lớn với khả năng phục hồi cao.
Bằng cách khai thác GitHub Pages và SheetBest, tin tặc giảm đáng kể dấu vết hạ tầng, khiến việc truy vết nguồn gốc cũng như gỡ bỏ chiến dịch trở nên khó khăn hơn.
Đối với các chuyên gia bảo mật, vụ việc cho thấy các danh sách chặn truyền thống và cơ chế đưa tên miền vào danh sách đen không còn đủ hiệu quả. Các tổ chức tài chính và đội ngũ an ninh cần ưu tiên phát hiện dựa trên hành vi, liên tục giám sát các hoạt động mạo danh thương hiệu trên các nền tảng phát triển và lưu trữ, phối hợp nhanh với nhà cung cấp dịch vụ để gỡ bỏ nội dung vi phạm, đồng thời tăng cường chia sẻ thông tin tình báo trên toàn ngành.
Các chỉ số xâm phạm (IOC) được Group-IB công bố bao gồm hàng chục tên miền GitHub Pages như soporte-index25.github[.]io, soporte-index09.github[.]io, soporte2507.github[.]io, soporte74.github[.]io, soporte-bm1.github[.]io cùng điểm cuối api.sheetbest.com. Các địa chỉ này đã được vô hiệu hóa ký tự phân giải nhằm tránh bị truy cập ngoài ý muốn và chỉ nên được khôi phục trong các môi trường phân tích mối đe dọa được kiểm soát như MISP, VirusTotal hoặc hệ thống SIEM.
Theo các nhà nghiên cứu của Group-IB, chiến dịch này được xây dựng dựa trên một bộ công cụ lừa đảo có bảng điều khiển, cho phép các đối tượng vận hành nhanh chóng tạo ra các trang đích giả mạo dành riêng cho từng tổ chức tài chính. Các trang này mạo danh ít nhất một tá tổ chức tài chính khác nhau, đồng thời hỗ trợ cả giao diện máy tính và thiết bị di động nhằm tăng khả năng tương tác với nạn nhân.
Thay vì phụ thuộc vào một tên miền duy nhất, tin tặc triển khai bộ công cụ trên hơn 100 kho lưu trữ GitHub Pages. Mỗi kho lưu trữ xuất bản các bản sao của trang lừa đảo dưới nhiều đường dẫn khác nhau như /cancelacion/, /soporte/ hoặc /mb1/. Cách làm này giúp duy trì hoạt động khi một số kho lưu trữ bị gỡ bỏ, đồng thời cho phép khôi phục chiến dịch nhanh chóng.
Group-IB nhận định sự bền bỉ, quy mô lớn và tính chuyên nghiệp của chiến dịch đến từ việc kết hợp giữa lưu trữ phân tán trên GitHub Pages, mã JavaScript được mã hóa ở phía máy khách và các API của bên thứ ba, đặc biệt là SheetBest, để thu thập dữ liệu đánh cắp.
Quy trình đánh cắp dữ liệu không cần máy chủ điều khiển
Quy trình tấn công được triển khai theo nhiều giai đoạn. Nạn nhân trước tiên được dẫn tới các trang web giả mạo nhằm tạo dựng lòng tin, sau đó bị chuyển hướng sang các biểu mẫu thu thập thông tin đăng nhập được thiết kế giống hệt quy trình đăng nhập ngân hàng hợp pháp.Các trang này sử dụng trình lắng nghe sự kiện JavaScript để chặn thao tác gửi biểu mẫu bằng phương thức e.preventDefault(), sau đó chuyển đổi dữ liệu nhập vào thành định dạng JSON và gửi đến các điểm cuối API của SheetBest thông qua yêu cầu POST.
Dữ liệu sau đó được cập nhật trực tiếp vào các bảng Google Sheets do kẻ tấn công kiểm soát theo thời gian thực, loại bỏ hoàn toàn nhu cầu vận hành máy chủ điều khiển truyền thống.
Group-IB đã xác định nhiều điểm cuối SheetBest liên quan đến chiến dịch. Tất cả đều trỏ về cùng một địa chỉ IP phụ trợ và sử dụng logic gửi dữ liệu giống nhau trên nhiều mẫu lừa đảo. Đây được xem là bằng chứng cho thấy sự tồn tại của một hệ thống đánh cắp dữ liệu tập trung nhưng vận hành theo mô hình phi máy chủ, cho phép thu thập dữ liệu từ nhiều nguồn về một điểm lưu trữ duy nhất.
Các trang đích mạo danh nhắm mục tiêu vào các tổ chức tài chính (Nguồn: GroupIB).
Để tránh bị phát hiện, các trang lừa đảo không nhúng trực tiếp mã JavaScript vào HTML mà tải mã từ các đường dẫn ngẫu nhiên đã được mã hóa. Điều này giúp tin tặc thay đổi nội dung hoặc logic hoạt động mà không cần chỉnh sửa giao diện trang web, làm giảm hiệu quả của các phương pháp phát hiện dựa trên chữ ký.
Một số mẫu còn chứa sẵn mã thông báo bot Telegram và ID cuộc trò chuyện được mã hóa cứng trong mã nguồn JavaScript. Thông tin đăng nhập bị đánh cắp có thể được chuyển trực tiếp đến Telegram theo thời gian thực, cho thấy khả năng linh hoạt trong việc thay đổi kênh thu thập dữ liệu.
Dữ liệu siêu dữ liệu kho lưu trữ và lịch sử commit cho thấy chiến dịch được duy trì liên tục bởi nhiều tài khoản vận hành trong hơn một năm. Các đối tượng thường xuyên cập nhật mẫu lừa đảo, thay đổi điểm cuối và thực hiện các hoạt động bảo trì định kỳ.
Mã token và ID cuộc trò chuyện của bot Telegram được mã hóa cứng và nhúng trong mã JavaScript lừa đảo (Nguồn: GroupIB).
GitHub Pages, SheetBest và thách thức mới đối với ngành an ninh mạng
Chiến dịch tận dụng hệ thống xây dựng GitHub Pages dựa trên Jekyll cùng GitHub Actions để tự động hóa việc triển khai. Các trang web còn được tích hợp siêu dữ liệu Open Graph nhằm tạo ra bản xem trước liên kết thuyết phục trên các ứng dụng nhắn tin.Việc sử dụng chỉ thị robots noindex và nofollow cho thấy các trang này không được tạo ra để xuất hiện trên công cụ tìm kiếm. Thay vào đó, chúng được phát tán có chủ đích qua SMS, WhatsApp, Telegram hoặc mạng xã hội, nơi các bản xem trước liên kết có thể làm tăng đáng kể tỷ lệ nhấp chuột của nạn nhân.
Chiến dịch phản ánh xu hướng ngày càng phổ biến khi các tác nhân đe dọa lợi dụng độ tin cậy, giao thức HTTPS và khả năng triển khai dễ dàng của các nền tảng đám mây uy tín để thực hiện các cuộc tấn công lừa đảo quy mô lớn với khả năng phục hồi cao.
Bằng cách khai thác GitHub Pages và SheetBest, tin tặc giảm đáng kể dấu vết hạ tầng, khiến việc truy vết nguồn gốc cũng như gỡ bỏ chiến dịch trở nên khó khăn hơn.
Đối với các chuyên gia bảo mật, vụ việc cho thấy các danh sách chặn truyền thống và cơ chế đưa tên miền vào danh sách đen không còn đủ hiệu quả. Các tổ chức tài chính và đội ngũ an ninh cần ưu tiên phát hiện dựa trên hành vi, liên tục giám sát các hoạt động mạo danh thương hiệu trên các nền tảng phát triển và lưu trữ, phối hợp nhanh với nhà cung cấp dịch vụ để gỡ bỏ nội dung vi phạm, đồng thời tăng cường chia sẻ thông tin tình báo trên toàn ngành.
Các chỉ số xâm phạm (IOC) được Group-IB công bố bao gồm hàng chục tên miền GitHub Pages như soporte-index25.github[.]io, soporte-index09.github[.]io, soporte2507.github[.]io, soporte74.github[.]io, soporte-bm1.github[.]io cùng điểm cuối api.sheetbest.com. Các địa chỉ này đã được vô hiệu hóa ký tự phân giải nhằm tránh bị truy cập ngoài ý muốn và chỉ nên được khôi phục trong các môi trường phân tích mối đe dọa được kiểm soát như MISP, VirusTotal hoặc hệ thống SIEM.
Được phối hợp thực hiện bởi các chuyên gia của Bkav,
cộng đồng An ninh mạng Việt Nam WhiteHat
và cộng đồng Khoa học công nghệ VnReview