TỔNG QUAN
Cuộc tấn công ban đầu được phát hiện vào tháng 11/2024 khi các nhà nghiên cứu phát hiện ra biến thể của backdoor ThreatNeedle, một trong những công cụ độc hại hàng đầu của nhóm tin tặc Lazarus, được sử dụng để nhắm vào một công ty phần mềm Hàn Quốc.
Kaspersky phát hiện ra rằng phần mềm độc hại này đang chạy trong bộ nhớ của một tiến trình SyncHost[.]exe hợp pháp và được tạo ra như một tiến trình con của Cross EX, phần mềm hợp pháp được phát triển tại Hàn Quốc. Đây có khả năng là điểm khởi đầu cho sự xâm phạm của 5 tổ chức khác tại Hàn Quốc.
Trong môi trường Internet tại Hàn Quốc, các trang web ngân hàng trực tuyến và chính phủ thông thường yêu cầu cài đặt phần mềm bảo mật cụ thể để hỗ trợ các chức năng như chống keylogger. Tuy nhiên, do bản chất của các gói phần mềm này, chúng liên tục chạy ở chế độ nền để tương tác với trình duyệt. Nhóm tin tặc Lazarus cho thấy sự nắm bắt mạnh mẽ về điều này và sử dụng một chiến lược nhắm vào Hàn Quốc kết hợp các lỗ hổng trong phần mềm như vậy với các cuộc tấn công Watering Hole (kẻ tấn công sẽ lây nhiễm vào các trang web để xâm phạm một nhóm người dùng cuối cụ thể). Trung tâm An ninh mạng Quốc gia Hàn Quốc đã công bố khuyến cáo bảo mật vào năm 2023 về các sự cố như vậy và cũng đã công bố các khuyến cáo bảo mật chung bổ sung hợp tác với Chính phủ Vương quốc Anh.
Mặc dù cách thức lạm dụng Cross EX để phân phối phần mềm độc hại vẫn chưa rõ ràng, nhưng các nhà nghiên cứu nhận định rằng những kẻ tấn công đã leo thang các đặc quyền của chúng trong quá trình khai thác. Các sự kiện dưới đây dẫn đến kết luận rằng một lỗ hổng trong phần mềm Cross EX rất có thể đã được khai thác trong chiến dịch tấn công này:
- Phiên bản mới nhất của Cross EX tại thời điểm xảy ra sự cố đã được cài đặt trên các máy tính bị nhiễm.
- Chuỗi thực thi bắt nguồn từ tiến trình Cross EX mà các nhà nghiên cứu quan sát thấy trên các tổ chức mục tiêu đều giống hệt nhau.
- Các sự cố liên quan đến việc tiến trình Synchost bị lạm dụng để nhúng phần mềm độc hại vào đều tập trung trong một khoảng thời gian ngắn: từ tháng 11/2024 đến tháng 02/2025.
Trong cuộc tấn công mới nhất, nhóm Lazarus cũng khai thác một sản phẩm phần mềm khác của Hàn Quốc là Innorix Agent, lợi dụng lỗ hổng để tạo điều kiện cho việc di chuyển ngang hàng, cho phép cài đặt thêm phần mềm độc hại trên máy chủ mục tiêu theo lựa chọn của chúng. Phần mềm bị khai thác, Innorix Agent (phiên bản 9.2.18.450 trở về trước), trước đây đã bị nhóm tin tặc Andariel lạm dụng, trong khi phần mềm độc hại mà Kaspersky thu được nhắm mục tiêu vào phiên bản mới hơn là 9.2.18.496.
Trong khi phân tích hành vi, các nhà nghiên cứu đã phát hiện ra một lỗ hổng zero-day tải xuống tệp tùy ý bổ sung trong Innorix Agent. Kaspersky đã báo cáo các vấn đề này cho Trung tâm điều phối ứng cứu khẩn cấp máy tính Hàn Quốc (KrCERT) và nhà cung cấp. Phần mềm đã được cập nhật với các phiên bản vá lỗi kể từ đó.
Các hành động này là một phần quan trọng trong chiến lược nhắm vào các thực thể của Hàn Quốc của nhóm Lazarus, trước đây Kaspersky đã tiết lộ một trường hợp tương tự vào năm 2023.
PHÂN TÍCH CHIẾN DỊCH
Vectơ lây nhiễm ban đầu
Tiến trình lây nhiễm bắt đầu khi nạn nhân truy cập vào một số trang web truyền thông trực tuyến của Hàn Quốc. Khi truy cập vào một trang web cụ thể, máy tính đã bị phần mềm độc hại ThreatNeedle xâm nhập, cho thấy trang web này đóng vai trò quan trọng trong việc phân phối backdoor ban đầu. Trong quá trình phân tích, các nhà nghiên cứu phát hiện ra rằng hệ thống bị lây nhiễm đang giao tiếp với một địa chỉ IP đáng ngờ. Kiểm tra thêm cho thấy IP này trỏ đến hai tên trang web, cả hai đều có vẻ là các trang web cho thuê xe được tạo vội vàng bằng cách sử dụng các mẫu HTML có sẵn công khai.
Hình 1. Giao diện của trang web www[.]smartmanagerex[.]com
Trang web đầu tiên là www[.]smartmanagerex [.] com, có vẻ như đang ngụy trang thành một phần mềm hợp pháp. Dựa trên những phát hiện này, các nhà nghiên cứu đã xây dựng lại kịch bản tấn công sau (Hình 2).
Hình 2. Luồng tấn công trong quá trình xâm phạm ban đầu
Do các trang web truyền thông thường được nhiều người dùng truy cập, các tin tặc Lazarus lọc khách truy cập bằng một tập lệnh phía máy chủ và chuyển hướng mục tiêu mong muốn đến một trang web do kẻ tấn công kiểm soát.
Các nhà nghiên cứu đánh giá rằng trang web được chuyển hướng có thể đã thực thi một tập lệnh độc hại, nhắm vào một lỗ hổng trong Cross EX được cài đặt trên máy tính mục tiêu và khởi chạy phần mềm độc hại. Sau đó, tập lệnh cuối cùng đã thực thi tiến trình SyncHost[.]exe hợp pháp và đưa một lệnh shell tải một biến thể của ThreatNeedle vào tiến trình đó. Cuối cùng, phần mềm độc hại được chèn vào tiến trìng SyncHost [.]exe. Theo Kaspersky, nhóm Lazarus đã tiến hành các hoạt động rộng rãi nhắm vào các thực thể lại Hàn Quốc trong vài tháng qua với cùng một lỗ hổng và cùng một cách thức khai thác.
Luồng thực hiện
Kaspersky đã phân tích thành hai giai đoạn dựa trên phần mềm độc hại được sử dụng. Giai đoạn đầu tiên tập trung chủ yếu vào chuỗi thực thi liên quan đến ThreatNeedle và wAgent. Sau đó là giai đoạn thứ hai liên quan đến việc sử dụng SIGNBT và COPPERHEDGE.
Hình 3. Các giai đoạn tấn công được phân tích
Trong trường hợp lây nhiễm đầu tiên, các nhà nghiên cứu đã tìm thấy một biến thể của phần mềm độc hại ThreatNeedle, nhưng trong các cuộc tấn công tiếp theo, phần mềm độc hại SIGNBT đã thay thế, do đó khởi động giai đoạn thứ hai.
Hình 4. Chuỗi lây nhiễm trong toàn bộ hoạt động
Phần mềm độc hại giai đoạn đầu
Trong chuỗi lây nhiễm đầu tiên, nhiều phiên bản cập nhật của phần mềm độc hại trước đó được nhóm Lazarus sử dụng đã được thực thi.
Biến thể của ThreatNeedle
Mẫu ThreatNeedle được sử dụng trong chiến dịch này cũng được gọi là “ThreatNeedleTea”, các nhà nghiên cứu cho biết đây là phiên bản cập nhật của phần mềm độc hại ThreatNeedle. Tuy nhiên, ThreatNeedle trong cuộc tấn công này đã được sửa đổi với các tính năng bổ sung.
Theo đó, ThreatNeedle được chia thành các mẫu Loader và Core. Phiên bản Core lấy năm tệp cấu hình từ C_27098[.]NLS đến C_27102[.]NLS và chứa tổng cộng 37 tập lệnh. Trong khi đó, phiên bản Loader chỉ tham chiếu đến hai tệp cấu hình và chỉ triển khai bốn tập lệnh.
Thành phần Core nhận được lệnh cụ thể từ máy chủ điều khiển và ra lệnh (C2), dẫn đến việc tạo thêm một tệp loader cho mục đích duy trì. Tệp này có thể được ngụy trang thành giá trị ServiceDLL của một dịch vụ hợp lệ trong nhóm netsvcs, dịch vụ IKEEXT hoặc được đăng ký là nhà cung cấp dịch vụ bảo mật (SSP). Cuối cùng, nó tải thành phần ThreatNeedle Loader.
Hình 5. Luồng hành vi để tải ThreatNeedle Loader theo dịch vụ mục tiêu
ThreatNeedle được cập nhật tạo ra một cặp khóa ngẫu nhiên dựa trên thuật toán Curve25519, gửi khóa công khai đến máy chủ C2, sau đó nhận khóa công khai của kẻ tấn công. Cuối cùng, khóa bí mật được tạo ra và khóa công khai của kẻ tấn công được vận hành theo phương pháp vô hướng để tạo ra một khóa chung, sau đó được sử dụng làm khóa cho thuật toán ChaCha20 để mã hóa dữ liệu. Dữ liệu được gửi và nhận ở định dạng JSON.
LPEClient
LPEClient là một công cụ được biết đến với chức năng phân phối payload đã từng được phát hiện trong các cuộc tấn công nhắm vào các nhà thầu quốc phòng và ngành công nghiệp tiền điện tử. Các nhà nghiên cứu đã tiết lộ rằng công cụ này đã được SIGNBT tải khi họ lần đầu tiên ghi nhận phần mềm độc hại SIGNBT.
Biến thể của wAgent
Ngoài ThreatNeedle, một biến thể của phần mềm độc hại wAgent cũng được phát hiện trong các tổ chức mục tiêu. Theo đó, wAgent là một công cụ độc hại mà Kaspersky đã ghi nhận vào năm 2020 và một phiên bản tương tự đã được đề cập trong chiến dịch GoldGoblin. Nguồn gốc tạo ra nó vẫn còn là một bí ẩn, nhưng các nhà nghiên cứu phát hiện ra rằng loader wAgent đã được ngụy trang thành liblzma[.]dll và được thực thi thông qua dòng lệnh rundll32[.]exe c:\Programdata\intel\util[.]dat, afunix 1W2-UUE-ZNO-B99Z. Hàm export sẽ truy xuất tên tệp đã cho 1W2-UUE-ZNO-B99Z trong thư mục C:\ProgramData, đồng thời cũng đóng vai trò là khóa giải mã.
Sau khi chuyển đổi tên tệp này thành định dạng byte, nó sử dụng 16 byte cao nhất của giá trị kết quả làm khóa cho thuật toán AES-128-CBC và giải mã nội dung của tệp nằm trong thư mục C:\ProgramData. Bốn byte trên cùng của dữ liệu được giải mã sau đó biểu thị kích thước của payload, mà các nhà nghiên cứu xác định là phiên bản cập nhật của phần mềm độc hại wAgent.
Biến thể wAgent có khả năng nhận dữ liệu ở cả định dạng form-data và JSON, tùy thuộc vào máy chủ C2 mà nó tiếp cận được. Đáng chú ý, nó bao gồm khóa __Host-next-auth-token trong trường Cookie ở header request trong quá trình giao tiếp, mang theo chuỗi giao tiếp được thêm vào bằng các chữ số ngẫu nhiên.
Trong phiên bản này, thay đổi mới được quan sát thấy là thư viện GNU Multiple-Precision (GMP) được sử dụng để thực hiện các phép tính mã hóa RSA, đây là một thư viện chưa từng thấy trước đây trong phần mềm độc hại được nhóm Lazarus sử dụng. Theo tệp cấu hình wAgent, nó được xác định là phiên bản x64_2[.]1. Phiên bản này quản lý các payload bằng cách sử dụng C++ STL map, tập trung vào việc nhận các payload bổ sung từ C2 và tải chúng trực tiếp vào bộ nhớ, cùng với việc tạo một đối tượng được chia sẻ. Với đối tượng này, mô-đun chính có thể trao đổi các tham số lệnh và kết quả thực thi với các plugin đã phân phối.
Hình 6. Cấu trúc hoạt động của biến thể wAgent
Biến thể của Agamemnon
Trình tải xuống Agamemnon cũng chịu trách nhiệm tải xuống và thực thi các payload bổ sung nhận được từ máy chủ C2. Mặc dù các nhà nghiên cứu không lấy được tệp cấu hình của Agamemnon, nhưng nó nhận lệnh từ C2 và thực thi payload bằng cách phân tích các lệnh và tham số dựa trên các ký tự ; ;, đóng vai trò là dấu phân cách lệnh và tham số. Giá trị của chế độ response được truyền bằng lệnh 2 (Hình 7) xác định cách thực thi payload bổ sung, được phân phối cùng với lệnh 3 (Hình 7). Có hai phương pháp thực thi: Phương pháp đầu tiên là tải payload, thường được sử dụng trong phần mềm độc hại, trong khi phương pháp thứ hai là sử dụng kỹ thuật Tartarus-TpAllocInject nguồn mở, mà các nhà nghiên cứu chưa từng thấy trước đây trong phần mềm độc hại từ nhóm Lazarus.
Hình 7. Cấu trúc của các lệnh nơi dữ liệu bổ sung được truyền qua
Tartarus-TpAllocInject được xây dựng trên một bộ loader mã nguồn mở khác có tên là Tartarus' Gate. Tartarus' Gate dựa trên Halo's Gate, Halo's Gate lại dựa trên Hell's Gate. Tất cả các kỹ thuật này được thiết kế để bypass các sản phẩm bảo mật như phần mềm anti-virus và giải pháp EDR, nhưng chúng tải payload theo những cách khác nhau.
Innorix Agent khai thác để di chuyển ngang
Không giống như các công cụ đã đề cập trước đó, Innorix abuser được sử dụng để di chuyển ngang, nó được tải xuống bởi trình tải xuống Agamemnon và khai thác một phiên bản cụ thể của công cụ phần mềm chuyển tệp được phát triển tại Hàn Quốc, Innorix Agent, để tải thêm phần mềm độc hại trên các máy chủ nội bộ.
Innorix Agent có khả năng được cài đặt trên nhiều máy tính của cả công ty và cá nhân tại Hàn Quốc, cùng bất kỳ người dùng nào có phiên bản dễ bị tấn công đều có khả năng trở thành mục tiêu. Phần mềm độc hại nhúng một khóa cấp phép được cho là liên kết với phiên bản 9.2.18.496, cho phép nó thực hiện di chuyển ngang hàng, bằng cách tạo lưu lượng độc hại được ngụy trang thành lưu lượng hợp pháp đối với các máy tính mục tiêu.
Innorix abuser được cung cấp các tham số từ trình tải xuống Agamemnon: IP mục tiêu, URL để tải xuống tệp và kích thước tệp. Sau đó, nó gửi yêu cầu đến IP mục tiêu đó để kiểm tra xem Innorix Agent đã được cài đặt và đang chạy hay chưa. Nếu phản hồi thành công được trả về, phần mềm độc hại sẽ cho rằng phần mềm đang chạy đúng trên máy chủ mục tiêu, đồng thời gửi lưu lượng cho phép mục tiêu tải xuống các tệp bổ sung từ URL đã cho.
Hình 8. Các bước triển khai phần mềm độc hại bổ sung thông qua Innorix abuser
Kẻ tấn công đã tạo một tệp AppVShNotify[.]exe hợp lệ và một tệp USERENV[.]dll độc hại trong cùng một đường dẫn thông qua Innorix abuser, sau đó thực thi tệp AppVShNotify[.]exe bằng một tính năng hợp lệ của phần mềm, cuối cùng dẫn đến việc thực thi ThreatNeedle và LPEClient trên các máy chủ mục tiêu, do đó khởi chạy chuỗi lây nhiễm trên các máy trước đó không bị ảnh hưởng.
Ngoài ra, khi phân tích vào hành vi của phần mềm độc hại, Kaspersky đã xác định được một lỗ hổng tải xuống tệp tùy ý khác áp dụng cho các phiên bản lên đến 9[.]2[.]18[.]538. Được theo dõi là KVE-2025-0014 và các nhà nghiên cứu vẫn chưa tìm thấy bất kỳ bằng chứng nào về việc sử dụng nó trong thực tế. KVE là số nhận dạng lỗ hổng do KrCERT cấp.
Phần mềm độc hại giai đoạn thứ hai
Giai đoạn thứ hai của chiến dịch cũng giới thiệu các phiên bản mới hơn của các công cụ độc hại trước đây từng xuất hiện trong các cuộc tấn công của Lazarus.
SIGNBT
SIGNBT mà Kaspersky ghi nhận vào năm 2023 là phiên bản 1.0, nhưng trong cuộc tấn công này, phiên bản 0.0.1 được sử dụng ở vị trí trên cùng. Ngoài ra, các nhà nghiên cứu đã xác định được một phiên bản mới hơn là SIGNBT 1.2. Không giống như các phiên bản 1.0 và 0.0.1, phiên bản 1.2 có khả năng điều khiển từ xa và tập trung vào việc thực hiện các payload bổ sung. Các nhà phát triển phần mềm độc hại đặt tên cho phiên bản này là Hijacking.
Trong giai đoạn thứ hai của chiến dịch này, SIGNBT 0.0.1 là bản lây nhiễm ban đầu được thực thi trong bộ nhớ trong SyncHost[.]exe để bổ sung phần mềm độc hại. Trong phiên bản này, máy chủ C2 được mã hóa cứng mà không tham chiếu đến bất kỳ tệp cấu hình nào.
Đối với phiên bản 1.2, phần mềm độc hại sẽ thu thập đường dẫn đến tệp cấu hình từ các tài nguyên của nó và thông tin tệp để xác định địa chỉ máy chủ C2. Các nhà nghiên cứu đã có thể trích xuất hai đường dẫn tệp cấu hình từ mỗi mẫu SIGNBT 1.2 đã xác định:
- Đường dẫn tệp cấu hình 1: C:\ProgramData\Samsung\SamsungSettings\settings[.]dat
- Đường dẫn tệp cấu hình 2: C:\ProgramData\Microsoft\DRM\Server\drm[.]ver
Một thay đổi khác trong SIGNBT 1.2 là số lượng tiền tố bắt đầu bằng SIGN được giảm xuống chỉ còn ba: SIGNBTLG, SIGNBTRC và SIGNBTSR. Phần mềm độc hại nhận khóa công khai RSA từ C2 và mã hóa khóa AES được tạo ngẫu nhiên bằng khóa công khai. Tất cả lưu lượng được mã hóa bằng khóa AES đã tạo.
COPPERHEDGE
COPPERHEDGE là một phần mềm độc hại được xuất hiện lần đầu vào năm 2020. Đây là một biến thể Manuscrypt và chủ yếu được sử dụng trong các cuộc tấn công DeathNote cluster. Không giống như các phần mềm độc hại khác được sử dụng trong chiến dịch này, COPPERHEDGE không thay đổi đáng kể, chỉ có một số lệnh được thay đổi so với các phiên bản cũ hơn.
Tuy nhiên, COPPERHEDGE truy xuất thông tin cấu hình như địa chỉ máy chủ C2. Sau đó, phần mềm độc hại sẽ gửi lưu lượng HTTP đến C2 với ba hoặc bốn tham số cho mỗi request, trong đó tên tham số được chọn ngẫu nhiên trong số ba tên theo bất kỳ thứ tự nào.
- Tên tham số HTTP đầu tiên: bih, aqs, org.
- Tên tham số HTTP thứ hai: wib, rlz, uid.
- Tên tham số HTTP thứ ba: tib, hash, lang.
- Tên tham số HTTP thứ tư: ei, ie, oq.
Kẻ tấn công chủ yếu sử dụng phần mềm độc hại COPPERHEDGE để tiến hành trinh sát nội bộ trong chiến dịch. Có tổng cộng 30 lệnh từ 0x2003 đến 0x2032 và 11 mã response từ 0x2040 đến 0x2050 bên trong backdoor COPPERHEDGE.
CƠ SỞ HẠ TẦNG
Trong suốt quá trình chiến dịch này, hầu hết các máy chủ C2 đều là các trang web hợp pháp nhưng bị xâm phạm tại Hàn Quốc, cho thấy thêm rằng chiến dịch tập trung nhiều vào quốc gia Đông Á này. Trong giai đoạn đầu, các trang web truyền thông khác được sử dụng làm máy chủ C2 để tránh phát hiện các cuộc tấn công Watering Hole. Tuy nhiên, khi chuỗi lây nhiễm chuyển sang giai đoạn thứ hai, các trang web hợp pháp trong nhiều lĩnh vực khác cũng bị khai thác.
Không giống như các trường hợp khác, máy chủ C2 của LPEClient được lưu trữ bởi cùng một địa chỉ như www[.]smartmanagerex[.]com, được tạo ra một cách có chủ đích để xâm phạm ban đầu. Vì LPEClient được nhóm Lazarus dựa vào rất nhiều để phân phối các payload bổ sung, nên có khả năng những kẻ tấn công đã cố tình thuê và cấu hình máy chủ, chỉ định một tên miền dưới sự kiểm soát của chúng để duy trì tính linh hoạt hoạt động đầy đủ.
Kaspersky xác nhận rằng tên miền thek-portal[.]com thuộc về một ISP của Hàn Quốc cho đến năm 2020 và là tên miền hợp pháp của một công ty bảo hiểm đã được một công ty khác mua lại. Kể từ đó, tên miền này được duy trì và trạng thái của nó đã thay đổi vào tháng 02/2025, cho thấy nhóm Lazarus đã đăng ký lại tên miền để tận dụng nó trong chiến dịch tấn công này.
NẠN NHÂN
Kaspersky đã xác định được ít nhất 6 tổ chức phần mềm, công nghệ thông tin, tài chính, sản xuất chất bán dẫn và viễn thông tại Hàn Quốc là nạn nhân của Chiến dịch SyncHole. Tuy nhiên, hãng bảo mật này nhận định rằng có nhiều tổ chức khác bị ảnh hưởng trong nhiều ngành công nghiệp khác nhau, xét đến mức độ phổ biến của phần mềm bị Lazarus khai thác trong chiến dịch này.
KẾT LUẬN
Đây không phải là lần đầu tiên nhóm tin tặc Lazarus khai thác tấn công chuỗi cung ứng với sự hiểu biết đầy đủ về hệ sinh thái phần mềm tại Hàn Quốc. Kaspersky đã mô tả các cuộc tấn công tương tự trong các báo cáo phân tích về Bookcode cluster năm 2020, DeathNote cluster năm 2022 và phần mềm độc hại SIGNBT năm 2023. Tất cả các trường hợp này đều nhắm vào phần mềm do các nhà cung cấp Hàn Quốc phát triển, yêu cầu cài đặt cho các dịch vụ ngân hàng trực tuyến và chính phủ. Cả hai sản phẩm phần mềm bị khai thác trong trường hợp này đều phù hợp với các trường hợp trước đó, nghĩa là nhóm Lazarus đang liên tục áp dụng một chiến lược hiệu quả dựa trên các cuộc tấn công chuỗi cung ứng.
Các cuộc tấn công chuyên biệt của nhóm Lazarus nhắm vào chuỗi cung ứng tại Hàn Quốc dự kiến sẽ tiếp tục trong tương lai. Nghiên cứu của Kaspersky trong vài năm qua đã cung cấp bằng chứng cho thấy nhiều nhà cung cấp phát triển phần mềm tại Hàn Quốc đã bị tấn công và nếu mã nguồn của sản phẩm bị xâm phạm, các lỗ hổng zero-day khác có thể tiếp tục được phát hiện. Những kẻ tấn công cũng đang nỗ lực giảm thiểu việc phát hiện bằng cách phát triển phần mềm độc hại mới hoặc cải tiến phần mềm độc hại hiện có. Cụ thể, chúng đưa ra các thay đổi giao tiếp với máy chủ C2, cấu trúc lệnh và cách chúng gửi và nhận dữ liệu.