-
09/04/2020
-
116
-
1.175 bài viết
175 gói npm độc hại bị lợi dụng trong chiến dịch lừa đảo Beamglea
Trong khi các nhà phát triển vẫn đang phụ thuộc vào kho thư viện mã nguồn mở như npm để tiết kiệm thời gian lập trình, thì giới tội phạm mạng lại tìm ra cách mới để biến chính nền tảng này thành hạ tầng phát tán phishing. Một chiến dịch tinh vi mang tên Beamglea vừa bị các nhà nghiên cứu an ninh mạng phát hiện, cho thấy 175 gói npm độc hại đã được sử dụng để phục vụ cho chiến dịch đánh cắp tài khoản Microsoft quy mô toàn cầu.
Theo báo cáo, các gói npm độc hại này đã được tải xuống hơn 26.000 lần và phần lớn là do các nhà phân tích bảo mật, hệ thống quét tự động hoặc CDN kiểm tra sau khi có cảnh báo. Tuy vậy, điều đáng lo ngại là các gói này không hoạt động theo cách “truyền thống” của mã độc, chúng không tấn công khi được cài đặt, mà lợi dụng hạ tầng hợp pháp của npm và UNPKG (một dịch vụ CDN công khai) để lưu trữ và chuyển hướng nạn nhân đến trang lừa đảo.
Chiến dịch nhắm vào hơn 135 công ty trong lĩnh vực công nghiệp, công nghệ và năng lượng trên toàn cầu. Nhà nghiên cứu Kush Pandya cho biết: “Npm đang bị biến thành hạ tầng vô tình phục vụ tội phạm mạng chứ không phải là công cụ tấn công trực tiếp.”
Các gói npm trong chiến dịch Beamglea được tạo tự động bằng một đoạn mã Python có tên "redirect_generator.py". Script này tạo ra các package ngẫu nhiên có tên như “redirect-xxxxxx”, sau đó chèn địa chỉ email của nạn nhân và đường dẫn trang phishing vào trong mã nguồn.
Khi gói này được xuất bản lên npm, nó sẽ tạo ra một tệp HTML chứa liên kết đến mã JavaScript độc hại lưu trên CDN của unpkg.com (ví dụ: Unpkg.com/[email protected]/beamglea.js). Khi người nhận mở tệp HTML này trong trình duyệt, JavaScript sẽ tự động chuyển hướng họ đến trang đăng nhập Microsoft giả mạo.
Điểm tinh vi là email của nạn nhân được truyền sẵn trên URL, khiến trường đăng nhập trong trang phishing được tự động điền sẵn, tạo cảm giác như một cổng đăng nhập hợp pháp mà người dùng từng truy cập. Chính yếu tố này giảm đáng kể sự nghi ngờ và tăng tỷ lệ thành công của cuộc tấn công.
Các tệp HTML được ngụy trang rất kỹ lưỡng, chúng mang tên đơn hàng, tài liệu kỹ thuật, dự án hợp tác, v.v., khiến nạn nhân dễ tin rằng đây là tệp nội bộ cần xem. Socket cho biết đã phát hiện hơn 630 tệp HTML như vậy trong các gói npm bị lợi dụng.
Điều nguy hiểm ở Beamglea nằm ở chỗ tội phạm mạng không cần dựng máy chủ riêng hay thuê dịch vụ độc hại. Chúng dựa vào chính hạ tầng đáng tin cậy như npm và UNPKG để phát tán nội dung. Cách làm này sẽ:
Chiến dịch cho thấy sự sáng tạo của hacker trong việc tận dụng công cụ hợp pháp. Thay vì tấn công trực diện, họ ẩn mình trong quy trình hợp pháp, khiến hệ thống kiểm tra tự động khó phát hiện. Đây không phải lỗi của npm, mà là vấn đề trong cách quản lý gói và giám sát hạ tầng mã nguồn mở, vốn ngày càng bị lạm dụng cho các chiến dịch tấn công gián tiếp.
Để tránh trở thành nạn nhân hoặc bị lợi dụng trong chuỗi tấn công tương tự, các chuyên gia khuyến cáo:
Theo báo cáo, các gói npm độc hại này đã được tải xuống hơn 26.000 lần và phần lớn là do các nhà phân tích bảo mật, hệ thống quét tự động hoặc CDN kiểm tra sau khi có cảnh báo. Tuy vậy, điều đáng lo ngại là các gói này không hoạt động theo cách “truyền thống” của mã độc, chúng không tấn công khi được cài đặt, mà lợi dụng hạ tầng hợp pháp của npm và UNPKG (một dịch vụ CDN công khai) để lưu trữ và chuyển hướng nạn nhân đến trang lừa đảo.
Chiến dịch nhắm vào hơn 135 công ty trong lĩnh vực công nghiệp, công nghệ và năng lượng trên toàn cầu. Nhà nghiên cứu Kush Pandya cho biết: “Npm đang bị biến thành hạ tầng vô tình phục vụ tội phạm mạng chứ không phải là công cụ tấn công trực tiếp.”
Các gói npm trong chiến dịch Beamglea được tạo tự động bằng một đoạn mã Python có tên "redirect_generator.py". Script này tạo ra các package ngẫu nhiên có tên như “redirect-xxxxxx”, sau đó chèn địa chỉ email của nạn nhân và đường dẫn trang phishing vào trong mã nguồn.
Khi gói này được xuất bản lên npm, nó sẽ tạo ra một tệp HTML chứa liên kết đến mã JavaScript độc hại lưu trên CDN của unpkg.com (ví dụ: Unpkg.com/[email protected]/beamglea.js). Khi người nhận mở tệp HTML này trong trình duyệt, JavaScript sẽ tự động chuyển hướng họ đến trang đăng nhập Microsoft giả mạo.
Điểm tinh vi là email của nạn nhân được truyền sẵn trên URL, khiến trường đăng nhập trong trang phishing được tự động điền sẵn, tạo cảm giác như một cổng đăng nhập hợp pháp mà người dùng từng truy cập. Chính yếu tố này giảm đáng kể sự nghi ngờ và tăng tỷ lệ thành công của cuộc tấn công.
Các tệp HTML được ngụy trang rất kỹ lưỡng, chúng mang tên đơn hàng, tài liệu kỹ thuật, dự án hợp tác, v.v., khiến nạn nhân dễ tin rằng đây là tệp nội bộ cần xem. Socket cho biết đã phát hiện hơn 630 tệp HTML như vậy trong các gói npm bị lợi dụng.
Điều nguy hiểm ở Beamglea nằm ở chỗ tội phạm mạng không cần dựng máy chủ riêng hay thuê dịch vụ độc hại. Chúng dựa vào chính hạ tầng đáng tin cậy như npm và UNPKG để phát tán nội dung. Cách làm này sẽ:
- Miễn phí hoàn toàn: Vì npm và UNPKG là dịch vụ công khai.
- Khó bị chặn: Do nằm trong hạ tầng hợp pháp, không thể cấm hoàn toàn.
- Khó phát hiện: Vì gói npm không chứa mã độc trực tiếp khi cài đặt.
Chiến dịch cho thấy sự sáng tạo của hacker trong việc tận dụng công cụ hợp pháp. Thay vì tấn công trực diện, họ ẩn mình trong quy trình hợp pháp, khiến hệ thống kiểm tra tự động khó phát hiện. Đây không phải lỗi của npm, mà là vấn đề trong cách quản lý gói và giám sát hạ tầng mã nguồn mở, vốn ngày càng bị lạm dụng cho các chiến dịch tấn công gián tiếp.
Để tránh trở thành nạn nhân hoặc bị lợi dụng trong chuỗi tấn công tương tự, các chuyên gia khuyến cáo:
- Không mở các tệp HTML lạ được gửi qua email, đặc biệt là có tên liên quan đến “đơn hàng” hoặc “tài liệu kỹ thuật”.
- Lập trình viên cần kiểm tra kỹ các gói npm trước khi sử dụng, tránh cài đặt từ các nguồn không rõ ràng hoặc có tên ngẫu nhiên.
- Doanh nghiệp nên giám sát lưu lượng truy cập CDN và chặn các yêu cầu bất thường tới unpkg.com hoặc các tên miền tương tự.
- Triển khai huấn luyện nhận diện phishing cho nhân viên, đặc biệt là trong các ngành công nghiệp dễ bị nhắm đến.
WhiteHat