Chiến Dịch Malware Water Curse: Mối Đe Dọa Bảo Mật Cho Nhà Phát Triển

Chiến Dịch Malware của Nhóm Hacker Water Curse Nhắm vào Các Nhà Phát Triển

Một nhóm tấn công tinh vi có tên gọi Water Curse đã lợi dụng ít nhất 76 tài khoản GitHub để phát tán các kho lưu trữ độc hại chứa malware đa giai đoạn. Chiến dịch này nhắm vào các chuyên gia bảo mật, nhà phát triển game và đội ngũ DevOps bằng cách khai thác niềm tin vốn có đối với phần mềm mã nguồn mở.

Chiến thuật, Kỹ thuật và Quy trình (TTPs)

Dựa trên khung tham chiếu MITRE ATT&CK, các kỹ thuật được nhóm Water Curse sử dụng bao gồm:

  • Initial Access: Nhúng payload độc hại vào các tập lệnh xây dựng (build scripts) và cấu hình dự án của các tiện ích phổ biến và công cụ red team.
  • Execution: Sử dụng các thành phần Visual Basic Script (VBS) và PowerShell đã được mã hóa (obfuscated).
  • Persistence: Tạo các tác vụ định kỳ (scheduled tasks) giả mạo các tiến trình hệ thống hợp pháp, chẳng hạn như “BitLocker Encrypt All Drives” được cấu hình để chạy mỗi 5 phút với thời gian kéo dài bất thường là 9999 giờ 59 phút.
  • Privilege Escalation: Sử dụng kỹ thuật chống gỡ lỗi (anti-debugging) và sửa đổi registry.
  • Command and Control (C2): Triển khai các tệp nhị phân dựa trên Electron được thiết kế để duy trì tính bền bỉ và ẩn mình.

Cơ sở hạ tầng tấn công

  • Cơ chế phân phối: Các kho lưu trữ trên GitHub.
  • Payload: Được nhúng trong các tập lệnh xây dựng và tệp dự án, bao gồm các tập lệnh sự kiện trước khi xây dựng (pre-build event scripts) và các artifact phụ trợ của dự án.

Chỉ số thỏa hiệp (IOCs)

Dưới đây là các chỉ số liên quan đến chiến dịch malware của nhóm Water Curse:

  • Thành phần thực thi: SearchFilter.exe, taskhostw.exe
  • Lưu trữ 7-Zip: Các tệp nén được bảo vệ bằng mật khẩu, tải xuống từ điểm phân phối mã nguồn chuẩn của GitHub.
  • Tác vụ định kỳ: Tác vụ “BitLocker Encrypt All Drives” được cấu hình chạy mỗi 5 phút với thời gian kéo dài bất thường là 9999 giờ 59 phút.

Chuỗi lây nhiễm (Infection Chain)

Quy trình lây nhiễm của chiến dịch Water Curse bao gồm các giai đoạn sau:

  1. Lây nhiễm ban đầu: Nhà phát triển biên dịch một dự án đã bị nhiễm mã độc, dẫn đến việc thực thi một tập lệnh Visual Basic Script (VBS) được nhúng.
  2. Thực thi: VBS liên kết đến một loader PowerShell đã được mã hóa, loader này tải xuống các payload được mã hóa.
  3. Duy trì (Persistence): Triển khai các tệp nhị phân dựa trên Electron để đảm bảo tính bền bỉ và ẩn mình; đồng thời sử dụng các tác vụ định kỳ như “BitLocker Encrypt All Drives” để kiểm soát hệ thống lâu dài.
  4. Thu thập thông tin sau thực thi: Các thành phần thực thi như SearchFilter.exetaskhostw.exe thực hiện các hoạt động chống gỡ lỗi (anti-debug) và bỏ qua UAC.

Phân tích kỹ thuật

Chiến dịch Water Curse liên quan đến các bước kỹ thuật sau:

  • Tệp dự án Visual Studio và lưu trữ ZIP bị nhiễm độc: Malware được ẩn trong các tập lệnh sự kiện trước khi xây dựng và các artifact phụ trợ của dự án.
  • Chuỗi lây nhiễm: Tải xuống các tệp nén 7-Zip được bảo vệ bằng mật khẩu từ các điểm phân phối mã nguồn chuẩn của GitHub, sau đó giải nén các thành phần thực thi như SearchFilter.exetaskhostw.exe để thực hiện các hoạt động thu thập thông tin, chống gỡ lỗi và bỏ qua UAC.

Biện pháp khắc phục

Để giảm thiểu rủi ro từ chiến dịch malware của nhóm Water Curse, các tổ chức nên thực hiện các bước sau:

  1. Cập nhật và xác minh mã nguồn định kỳ: Đảm bảo tất cả mã nguồn được cập nhật và kiểm tra tính toàn vẹn trước khi biên dịch.
  2. Triển khai công cụ bảo mật: Sử dụng các công cụ bảo mật để phát hiện và chặn các payload độc hại.
  3. Đào tạo nhà phát triển: Nâng cao nhận thức cho các nhà phát triển về rủi ro liên quan đến các kho lưu trữ mã nguồn mở và tầm quan trọng của việc xác minh mã nguồn.
  4. Giám sát hoạt động trên GitHub: Liên tục theo dõi các kho lưu trữ trên GitHub để phát hiện các hành vi khả nghi.

Việc tuân thủ các bước này sẽ giúp các tổ chức giảm thiểu nguy cơ bị tấn công bởi các chiến dịch malware tinh vi như của nhóm Water Curse.