Khám phá kỹ thuật tấn công mới sử dụng thuộc tính tệp mở rộng macOS để che giấu mã độc
Giới thiệu
Các nhà nghiên cứu nhận định rằng các tin tặc Lazarus của Triều Tiên đứng sau chiến dịch tấn công này. Họ tin rằng các tác nhân đe dọa có thể đang thử nghiệm một giải pháp phân phối phần mềm độc hại mới, bằng cách sử dụng các thuộc tính mở rộng tùy chỉnh.
Được biết, thuộc tính mở rộng là siêu dữ liệu (metadata) có thể được liên kết với các tệp và thư mục trong nhiều hệ thống tệp khác nhau. Chúng cho phép người dùng lưu trữ thông tin bổ sung về tệp ngoài các thuộc tính chuẩn như kích thước tệp, dấu thời gian (timestamp) và quyền.
Ngoài ra, các tin tặc cũng sử dụng các tài liệu PDF giả mạo để tránh bị phát hiện bởi các giải pháp bảo mật. Phương pháp này không phổ biến và tỏ ra hiệu quả trong việc chống phát hiện vì không có giải pháp bảo mật nào trên nền tảng Virus Total đánh dấu các tệp độc hại.
Trong khi nghiên cứu phần mềm độc hại lạm dụng các thuộc tính mở rộng, các nhà nghiên cứu cho biết một kỹ thuật tương tự cũng đã từng được phát hiện vào năm 2020, trong đó phần mềm quảng cáo Bundlore đã ẩn payload của nó trong Resource Fork và được truy cập thông qua đường dẫn đặc biệt “filename/..namedfork/rsrc”.
Resource fork là một phần đặc biệt của tệp trên các hệ thống macOS cũ được sử dụng để lưu trữ dữ liệu có cấu trúc liên quan đến tệp, ví dụ như biểu tượng, bố cục cửa sổ tùy chỉnh và các thiết lập hoặc tài nguyên cụ thể khác của tệp.
Ẩn mã trong thuộc tính tệp
Như đã đề cập, thuộc tính mở rộng macOS là siêu dữ liệu có thể được liên kết với các tệp và thư mục trong nhiều hệ thống tệp khác nhau. Những thuộc tính này không được hiển thị trực tiếp bằng Finder hoặc Terminal, nhưng bằng cách sử dụng “xattr”, chúng ta có thể trích xuất và xem các thuộc tính một cách dễ dàng.
Hình 1. Sử dụng xattr để trích xuất các thuộc tính mở rộng
Trong chiến dịch tấn công này, các tác nhân đe dọa đã định nghĩa một thuộc tính mở rộng có tên là “test” và chứa một tập lệnh shell.
Hình 2. Shell script bên trong thuộc tính mở rộng macOS
Các ứng dụng độc hại lưu trữ EA được phát triển bằng cách sử dụng framework Tauri. Theo đó, Tauri là một framework để xây dựng các ứng dụng máy tính để bàn bằng các công nghệ web. Nó cho phép các nhà phát triển tạo các ứng dụng với giao diện web (HTML, CSS, JavaScript) trong khi tận dụng Rust cho phần backend. Ứng dụng sẽ lấy và thực thi tập lệnh độc hại nằm trong các thuộc tính mở rộng.
Sau khi kiểm tra các tập lệnh shell, các nhà nghiên cứu nhận thấy rằng có 2 thông tin khác nhau được hiển thị để trốn tránh phát hiện. Đầu tiên là một tệp PDF của dịch vụ lưu trữ tệp filedn[.]com. Các câu hỏi bên trong “Investment Decision-Making Questionnaire” liên quan đến việc phát triển và tài trợ cho các dự án trò chơi. Tệp PDF được lấy từ phiên bản pCloud để chia sẻ tệp công khai, trong đó cũng chứa các mục có tên liên quan đến chủ đề đầu tư tiền điện tử, phù hợp với mục tiêu của Lazarus.
Hình 3. Mồi nhử độc hại đầu tiên
Thông tin tiếp theo là một hộp thoại giả mạo hiển thị thông báo rằng “This app does not support this version”. Trong khi đó, web request đến máy chủ sẽ xử lý ở chế độ background.
Hình 4. Mồi nhử độc hại thứ hai
Các tin tặc đã thực hiện một cách tiếp cận khá vòng vo để kích hoạt việc thực thi, có thể nhằm mục đích để tránh bị phát hiện và khó theo dõi hơn. Khi thực thi ứng dụng, Tauri hiển thị trang web HTML bằng WebView và tải một trang web có chứa JavaScript đáng ngờ có tên là “preload[.]js”.
Tauri cho phép mã JavaScript gọi các hàm Rust. Điều này hữu ích cho các tác vụ yêu cầu hiệu suất hoặc quyền truy cập hệ thống trực tiếp mà JavaScript không thể xử lý hiệu quả. Hàm invoke là API trong Tauri giúp tạo điều kiện giao tiếp giữa frontend (JavaScript) và backend (Rust), cho phép frontend gọi các hàm Rust, truyền đối số và nhận dữ liệu.
Hình 5. Đoạn mã của Javascript
Những gì tin tặc làm ở đây khá đơn giản: Sử dụng hàm get_application_properties được cung cấp bởi backend của ứng dụng, nó sẽ lấy nội dung từ các thuộc tính mở rộng có tên là “test” từ tệp và sau đó chuyển nó đến run_command. Đây là nơi tập lệnh shell được thực thi. Nếu thuộc tính tồn tại, sẽ không có giao diện người dùng nào được hiển thị, trong khi nếu không có thuộc tính, trang web giả mạo sẽ được hiển thị.
Hình 6. Đoạn mã của get_application_properties
Phát hiện
Vào thời điểm các nhà nghiên cứu phân tích, các tệp tin hoàn toàn không bị VirusTotal phát hiện, có thể là do các thành phần độc hại được ẩn trong các thuộc tính.
Hình 7. VirusTotal không phát hiện các tệp tin độc hại
Những ứng dụng này có khả năng đã được ký bằng một chứng thư số bị rò rỉ trước đó mà đã bị Apple thu hồi. Một điểm đáng lưu ý là những ứng dụng này không còn được tin tưởng. Hiện tại, tính năng macOS Gatekeeper (thực thi ký mã và xác minh các ứng dụng đã tải xuống trước khi cho phép chúng chạy, do đó làm giảm khả năng vô tình thực thi phần mềm độc hại) ngăn chặn việc thực thi các ứng dụng này, trừ khi người dùng chọn ghi đè “malware protection”.
Hình 8. Chi tiết chứng thư số của ứng dụng
Group-IB không thể truy xuất và phân tích phần mềm độc hại ở giai đoạn tiếp theo nhưng phát hiện ra rằng máy chủ staging (thử nghiệm) có kết nối với endpoint (điểm cuối) đã biết trong cơ sở hạ tầng Lazarus để cố gắng truy xuất phần mềm độc hại đó.
Hình 9. Luồng thực hiện
Diễn biến liên quan
Phân tích của Group-IB rất giống với một báo cáo gần đây khác đến từ hãng bảo mật SentinelOne (Mỹ), trong đó các nhà nghiên cứu quan sát thấy nhóm tin tặc từ Triều Tiên là BlueNoroff đang thử nghiệm các kỹ thuật tương tự để trốn tránh trong macOS. BlueNoroff đã sử dụng kỹ thuật lừa đảo liên quan đến tiền điện tử để dụ nạn nhân tải xuống một ứng dụng độc hại đã được ký số. Các ứng dụng đã sử dụng tệp “Info[.]plist” đã sửa đổi để bí mật kích hoạt kết nối độc hại đến tên miền do kẻ tấn công kiểm soát.
Khuyến nghị
Người dùng nên cảnh giác với mọi yêu cầu tải xuống, mở hoặc thực thi tệp. Luôn xác minh nguồn và đảm bảo nó đáng tin cậy trước khi tiếp tục, để bảo vệ thiết bị và dữ liệu trước các mối đe dọa tiềm ẩn.
Không tắt macOS Gatekeeper hoặc cho phép các ứng dụng từ các nhà phát triển không xác định. Việc bật Gatekeeper giúp bảo vệ hệ thống của người dùng khỏi phần mềm có khả năng gây hại.
Kết luận
Kỹ thuật ẩn mã trong các thuộc tính mở rộng đã vượt qua hiệu quả hầu hết các trình bảo mật chống virus. Để kích hoạt các cuộc tấn công này, điều quan trọng là máy tính phải vô hiệu hóa Gatekeeper bằng cách ghi đè tính năng bảo vệ “malware protection”. Có khả năng cần phải có một số mức độ tương tác và sử dụng kỹ nghệ xã hội để thuyết phục nạn nhân thực hiện các bước này.
Lazarus vẫn là một mối đe dọa tinh vi và đang phát triển, chúng liên tục tăng cường các kỹ thuật tấn công bằng các công cụ và phương pháp mới để vượt qua các biện pháp phòng thủ.
Hồng Đạt
(Tổng hợp)