Vén màn chiến dịch sử dụng tiện ích độc hại Translatext nhắm vào Hàn Quốc
TỔNG QUAN
Kimsuky lần đầu tiên được phát hiện vào năm 2013, là một nhánh của nhóm tin tặc khét tiếng Lazarus, nổi bật về hoạt động gián điệp và các cuộc tấn công mạng có động cơ tài chính, chủ yếu nhắm vào các thực thể của Hàn Quốc, bao gồm các nhóm nghiên cứu, tổ chức chính phủ và lĩnh vực học thuật.
Nhóm tin tặc này đã sử dụng nhiều chiến thuật, kỹ thuật và quy trình (TTP) khác nhau trong các chiến dịch có mục tiêu của mình và một trong những phương pháp phân phối của chúng là thông qua các tiện ích mở rộng độc hại của Google Chrome. Vào tháng 7/2022, có báo cáo rằng Kimsuky đã sử dụng các tiện ích mở rộng độc hại của Chrome để nhắm mục tiêu vào người dùng ở Mỹ, châu Âu và Hàn Quốc.
Zscaler cho biết nhóm tin tặc Kimsuky đã tải Translatext lên kho lưu trữ GitHub do chúng kiểm soát vào ngày 7/3/2024. Tiện ích độc hại này có thể vượt qua các biện pháp bảo mật của một số nhà cung cấp dịch vụ email nổi tiếng như Gmail, Kakao và Naver (phổ biến ở Hàn Quốc) để đánh cắp thông tin.
Nghiên cứu của Zscaler cho thấy mục tiêu chính của cuộc tấn công này là nhắm vào giới học thuật Hàn Quốc, đặc biệt là những người tham gia nghiên cứu chính trị liên quan đến các vấn đề về Triều Tiên để thu thập thông tin tình báo có giá trị.
Kimsuky thường sử dụng kỹ thuật tấn công spear-phishing và kỹ nghệ xã hội để tiếp cận các hệ thống. Chiến dịch thường bắt đầu bằng một tệp ZIP giả mạo với nội dung liên quan đến lịch sử Quân đội Hàn Quốc, chứa các tài liệu bằng chữ Hàn và một tệp thực thi. Khi khởi động, tệp thực thi này sẽ tải xuống một tập lệnh PowerShell từ máy chủ kẻ tấn công để thu thập thông tin từ máy tính nạn nhân và gửi lên GitHub. Đồng thời, tệp cũng sẽ tải thêm mã PowerShell thông qua tệp shortcut (LNK) của Windows. Quy trình này giúp các tin tặc duy trì và mở rộng quyền kiểm soát trên máy tính nạn nhân một cách âm thầm và hiệu quả.
PHÂN TÍCH KỸ THUẬT
Theo một phân tích bảo mật vào cuối tháng 4/2024 của Trung tâm tình báo mối đe dọa Secui (Hàn Quốc), nhóm tin tặc Kimsuky đã chuyển một tệp lưu trữ có tên “한국군사학논집 심사평서 (1)[.]zip”, tạm dịch là “Đánh giá một chuyên khảo về lịch sử quân sự Hàn Quốc”.
Kho lưu trữ này chứa hai tệp tin giả mạo, bao gồm:
- Tài liệu HWP (một định dạng tệp văn phòng phổ biến ở Hàn Quốc).
- Một tệp thực thi Windows ngụy trang thành các tài liệu liên quan.
Khi người dùng khởi chạy tệp thực thi, phần mềm độc hại sẽ lấy một tập lệnh PowerShell từ máy chủ của kẻ tấn công.
Hình 1. Ví dụ về chuỗi lây nhiễm Kimsuky
Tập lệnh PowerShell từ máy chủ điều khiển và ra lệnh (C2) của kẻ tấn công chịu trách nhiệm tải lên thông tin chung về nạn nhân và tạo tệp shortcut để truy xuất một tập lệnh PowerShell bổ sung. Trong quá trình nghiên cứu chiến dịch này, các nhà nghiên cứu đã phát hiện ra một tập lệnh PowerShell khác có hàm băm MD5 là bba3b15bad6b5a80ab9fa9a49b643658 và một tài khoản GitHub được tập lệnh sử dụng được liên kết với cùng một kẻ tấn công.
Từ tài khoản GitHub mới phát hiện này, các nhà nghiên cứu đã quan sát dữ liệu nạn nhân và tiện ích mở rộng Chrome đã xóa trước đó được các tin tặc sử dụng. Trong khi phương thức phân phối cho Translatext hiện chưa xác định.
Tuy nhiên, tập lệnh PowerShell mới được phát hiện cho thấy nhóm tin tặc Kimsuky đã kiểm tra sự hiện diện của tiện ích mở rộng Chrome bằng cách sử dụng Registry key HKCU\Software\Policies\Google\Chrome\ExtensionInstallForcelist.
Registry key này được Chrome sử dụng để thực thi cài đặt các tiện ích mở rộng đã chỉ định mà không cần sự cho phép hoặc can thiệp của người dùng. Do đó, dường như Kimsuky đã khai báo Translatext trong Registry key này.
Phân tích Translatext
Trong tài khoản GitHub do kẻ tấn công kiểm soát, các nhà nghiên cứu đã quan sát thấy một tệp XML đáng ngờ. Các tệp này có trong kho lưu trữ vào ngày 7/3/2024 và bị xóa ngay vào ngày hôm sau, ngụ ý rằng các tin tặc có ý định giảm thiểu khả năng bị phát hiện và sử dụng phần mềm độc hại trong một thời gian ngắn để nhắm mục tiêu vào các cá nhân cụ thể. Hình 2 cho thấy cách nhóm tin tặc Kimsuky tải các tệp lên (upload) một trong các tài khoản GitHub của họ vào ngày 7/3 và sau đó xóa chúng vào ngày 8/3.
Hình 2. Commit log GitHub của Kimsuky hiển thị việc thêm và xóa tệp XML Translatext chỉ sau một ngày
Dưới đây là dòng thời gian hoạt động của người dùng GitHub:
- Ngày 13/02/2024: Bắt đầu hoạt động với GitHub.
- Ngày 7/3/2024: Tạo kho lưu trữ đầu tiên có tên “motorcycle”: 29 lần xác nhận bao gồm cả các lần tải lên từ nạn nhân và các lần xóa sau đó; Đã thêm tệp Translatext: update[.]xml, GoogleTranslate[.]crx.
- Ngày 8/3/2024: Đã xóa tệp update[.]xml và GoogleTranslate[.]crx.
- Ngày 18/3/2024: Đã tạo motorcycle/calc.
- Ngày 4/4/2024: Đã tạo tệp motorcycle/laxi/ter[.]txt.
Đúng như tên gọi, tệp update[.]xml chứa các tham số cần thiết để cập nhật Translatext như trong Hình 3.
Hình 3. Tệp update[.]xml
Translatext đã được tải lên GitHub dưới dạng “GoogleTranslate[.]crx” và được ngụy trang thành tiện ích mở rộng Google Translate. Tuy nhiên, Translatext thực tế chứa bốn tệp Javascript độc hại để vượt qua các biện pháp bảo mật, đánh cắp địa chỉ email, thông tin đăng nhập, cookie, chụp ảnh màn hình trình duyệt và đánh cắp dữ liệu. Hình 4 cho thấy vai trò của từng tệp Javascript trong việc đánh cắp và gửi thông tin đến máy chủ C2.
Hình 4. Chức năng của các tệp Javascript độc hại
Trong tệp manifest[.]json (một tệp kê khai ứng dụng web quy định cách thức hoạt động của tiện ích mở rộng trên hệ thống), tên tác giả được liệt kê là “Piano” và update_url trỏ đến một địa chỉ GitHub khác tham chiếu đến một tệp update[.]xml không tồn tại. Các trường mô tả và tiêu đề mặc định chứa tiếng Hàn, có khả năng chỉ ra rằng chiến dịch này nhắm mục tiêu cụ thể đến Hàn Quốc.
Hình 5. Tệp manifest[.]json
Tệp manifest của Translatext kê khai yêu cầu các quyền như “scripting”. Quyền mở rộng này cho phép tiện ích độc hại chèn các tập lệnh vào các trang web, cho phép nó sửa đổi nội dung trang, thêm chức năng và/hoặc tương tác với các thành phần của trang.
Tùy thuộc vào URL mà nạn nhân truy cập, một tập lệnh tương ứng sẽ được khởi chạy:
- Khi nạn nhân truy cập vào trang đăng nhập Naver (nid[.]naver[.]com/*) hoặc trang đăng nhập Kakao (accounts[.]kakao[.]com/*), tệp auth[.]jstin sẽ được nhúng vào trang web.
- Tương tự như vậy, khi truy cập trang đăng nhập Gmail (mail[.]google[.]com/), tệp gsuit[.]jstin sẽ được nhúng vào trang web.
Vượt qua các giải pháp bảo mật
Tập lệnh được đưa vào trang web có nhiệm vụ vượt qua các biện pháp bảo mật trên từng trang đăng nhập cụ thể. Tập lệnh gsuit[.]js sẽ tìm kiếm tất cả các phần tử <div> có tên lớp cụ thể trong trang web và sau đó xóa chúng khỏi Document Object Model (DOM) như được hiển thị trong Hình 6.
Hình 6. Tập lệnh gsuit[.]js
Tập lệnh auth[.]js được sử dụng nhằm vượt qua các biện pháp bảo mật của Naver và Kakao. Đối với Kakao, tập lệnh sẽ kiểm tra các phần tử có ID cụ thể. Nếu các phần tử này tồn tại, tập lệnh sẽ click vào chúng. Hành động này thường có nghĩa là chọn ghi nhớ trình duyệt để tránh các lời nhắc bảo mật lặp lại. Tập lệnh chọn tất cả các phần tử và đảm bảo tên lớp của chúng được đặt chính xác, có thể để đảm bảo tất cả các checkbox thuộc loại này đều được chọn.
Phần Naver của tập lệnh, tương tự như Kakao, xác định các phần tử có ID cụ thể và thực hiện các lần click vào chúng. Các lần click này phục vụ nhiều mục đích khác nhau, chẳng hạn như vượt qua hoặc xác nhận thời gian chờ và hộp thoại trong quy trình biện pháp bảo mật của Naver. Ví dụ, nó định vị một phần tử có ID “auto” và đặt giá trị của phần tử đó thành “init”, có khả năng là một phần của quy trình thiết lập hoặc khởi tạo cho trang xác thực.
Trình đánh cắp địa chỉ email - content[.]js
Mục tiêu chính của tệp Javascript này là thu thập dữ liệu địa chỉ email và mật khẩu được nhập vào biểu mẫu và gửi thông tin đến trang nền. Tập lệnh thực hiện các hành động này như sau:
- Kết nối với nhiều thành phần biểu mẫu khác nhau như nút (button) và trường nhập liệu để ghi lại các lần click và nhấn phím nhằm bắt đầu gửi dữ liệu.
- Thu thập tất cả các địa chỉ email được nhập vào bất kỳ trường thông tin nào (“type=email”), văn bản chung (“type=text”) hoặc textbox (“role=textbox”) và kết nối chúng thành một chuỗi duy nhất.
- Thu thập giá trị từ tất cả các trường nhập thông tin có kiểu mật khẩu, kết nối dữ liệu địa chỉ email và mật khẩu thu thập được thành định dạng chuỗi phù hợp để gửi về máy chủ C2.
- Giám sát hành động của người dùng, như nhấn Enter, bằng cách thêm trình lắng nghe sự kiện vào nhiều loại nút và trường nhập thông tin. Nó sử dụng biến mutex để ngăn chặn nhiều lần truyền cùng lúc. Quá trình giám sát này được lặp lại sau mỗi 500 ms, đảm bảo các thành phần mới trên trang hoặc các thành phần được thêm động cũng được giám sát.
Tệp background[.]js
Javascript sử dụng kỹ thuật giải quyết dead drop để lấy cấu hình và lệnh từ dịch vụ blog công khai: hxxps://onewithshare.blogspot[.]com/2023/04/10[.]html. Nếu URL blog đang hoạt động, Javascript sẽ trích xuất mẫu bằng biểu thức chính quy sau: <input name="${name}" type="hidden" value="(.*?)"> .
Khi các nhà nghiên cứu kiểm tra blog ban đầu, không có giá trị liên quan nào có trong định dạng này. Tuy nhiên, vào ngày 01/7/2024, một nhà nghiên cứu khác đã xác định được bản cập nhật cho blog của tác nhân đe dọa bằng lệnh Capture.
Hình 7. Blog của kẻ tấn công được cập nhật bằng lệnh Capture
Tập lệnh background[.]js cũng đăng ký một số trình lắng nghe có chức năng cụ thể như sau:
- Gửi trình lắng nghe Javascript nền: Trình lắng nghe này được kích hoạt khi có tin nhắn mới được tạo, cho phép thực hiện các hành động thích hợp để phản hồi.
- Trình lắng nghe cập nhật tab: Khi một tab được cập nhật, trình lắng nghe này sẽ gửi URL của tab mới được tạo cùng với ảnh chụp màn hình, dựa trên sự hiện diện của cờ (flag) Capture.
- Trình lắng nghe thay đổi cookie: Bất cứ khi nào cookie được sửa đổi, trình lắng nghe này sẽ kiểm tra xem tên miền có bao gồm google, naver, kakao hoặc daum và lý do thay đổi là expired, evicted hoặc explicit. Trong những trường hợp như vậy, giá trị cookie mới sẽ được gửi đến máy chủ C2 từ xa.
Translatext sử dụng các yêu cầu HTTP POST cho giao tiếp C2, với các tiêu đề (header) HTTP được mã hóa cứng sau:
Hình 8. Yêu cầu HTTP POST cho liên lạc với máy chủ C2
Đặc điểm máy chủ C2
Từ máy chủ của tác nhân đe dọa, các nhà nghiên cứu phát hiện ra sự hiện diện của webshell b374k (hxxps://webman[.]w3school[.]cloudns[.]nz/config[.]php) được sử dụng để đánh cắp thông tin. Nhóm tin tặc Kimsuky có lịch sử thường xuyên sử dụng webshell b374k.
Hơn nữa, trang chính máy chủ của tác nhân đe dọa chuyển hướng nạn nhân đến trang Gmail hợp lệ khi họ kết nối mà không có bất kỳ tham số nào. Hành vi này phù hợp với cấu hình C2 đặc trưng của nhóm tin tặc Kimsuky.
Việc chuyển hướng này đến các dịch vụ đáng tin cậy và nổi tiếng như Gmail, Naver hoặc Kakao giúp giảm thiểu sự nghi ngờ và tránh gửi các cấu hình thông tin.
Sử dụng tên miền “re[.]kr”
Từ tập lệnh PowerShell mới phát hiện, các nhà nghiên cứu phát hiện ra rằng những kẻ tấn công đã sử dụng tên miền “re[.]kr” để lưu trữ các tập lệnh PowerShell độc hại. Tên miền này được đăng ký bởi một ISP Hàn Quốc có tên là “viaweb”.
Theo một số nhà cung cấp bảo mật, trong lịch sử, nhóm tin tặc Kimsuky thường xuyên lạm dụng tên miền này. Ngoài ra, chúng còn sử dụng các tên miền tương tự được đăng ký với cùng một nhà cung cấp, chẳng hạn như p-e[.]kr và o-r[.]kr.
KẾT LUẬN
Nghiên cứu của Zscaler chỉ ra rằng các tiện ích mở rộng độc hại của Google Chrome vẫn tiếp tục được nhóm tin tặc Kimsuky sử dụng. Nhóm này dường như đang nhắm mục tiêu vào giới học thuật tại Hàn Quốc như một phần của chiến dịch thu thập thông tin tình báo đang diễn ra.
Để giảm thiểu rủi ro từ các tác nhân đe dọa đang hoạt động có liên hệ với Triều Tiên như Kimsuky, điều bắt buộc là phải luôn cập nhật thông tin về các chiến thuật mới nhất của chúng. Ngoài ra, việc thận trọng khi cài đặt các chương trình từ các nguồn không đáng tin cậy là điều cần thiết để duy trì bảo mật và ngăn ngừa các vi phạm tiềm ẩn.
Hồng Đạt
(Tổng hợp)