Kỹ thuật iShutdown mới phát hiện phần mềm gián điệp trên iPhone

10:34 | 31/01/2024

Các nhà nghiên cứu tại hãng bảo mật Kaspersky đã phát triển một kỹ thuật mới có tên là iShutdown để có thể phát hiện và xác định các dấu hiệu của một số phần mềm gián điệp trên thiết bị iOS, bao gồm các mối đe dọa tinh vi như Pegasus, Reign và Predator. Bài viết sẽ cùng khám phát kỹ thuật iShutdown dựa trên báo cáo của Kaspersky.

TỔNG QUAN VỀ TỆP SHUTDOWN.LOG

Vào năm 2021 và 2022, Kaspersky đã xử lý một số trường hợp lây nhiễm phần mềm độc hại Pegasus trên một số thiết bị iPhone. Cho đến nay, các phương pháp phổ biến để phân tích lây nhiễm trên thiết bị di động iOS là kiểm tra bản sao lưu iOS đầy đủ được mã hóa hoặc phân tích lưu lượng mạng của thiết bị. Tuy nhiên, cả hai phương pháp này đều rất mất thời gian hoặc yêu cầu trình độ chuyên môn cao của người phân tích.

Qua nghiên cứu phần mềm gián điệp Pegasus, Kaspersky phát hiện ra rằng sự lây nhiễm đã để lại dấu vết kỹ thuật số trong một tệp có tên gọi là Shutdown.log. Đây là tệp nhật ký hệ thống có sẵn trên tất cả các thiết bị iOS. Mỗi sự kiện khởi động lại của hệ điều hành đều được ghi vào tệp này.

Các nhà nghiên cứu cho biết, khi người dùng bắt đầu khởi động, hệ điều hành sẽ cố gắng chấm dứt các tiến trình đang chạy. Nếu một tiến trình “client” vẫn đang chạy khi quá trình khởi động lại được thực hiện, thì tiến trình đó sẽ được ghi lại bằng mã định danh tiến trình (PID) và đường dẫn hệ thống tệp tương ứng.

Hình 1. Đoạn mã từ tệp iOS Shutdown.log

So với các phương pháp thu thập tốn nhiều thời gian như điều tra số hình ảnh thiết bị hoặc bản sao lưu iOS, việc truy xuất tệp Shutdown.log khá đơn giản. Tệp nhật ký được lưu trữ trong kho lưu trữ sysdiagnose (sysdiag).

Sysdiag có thể được coi là tập hợp các phần nhật ký hệ thống và cơ sở dữ liệu có thể được tạo ra cho mục đích gỡ lỗi và khắc phục sự cố. Phương pháp tạo sysdiag có thể khác nhau giữa các phiên bản iOS. Tuy nhiên, chúng ta có thể tìm thấy kho lưu trữ này trong cài đặt chung của hệ điều hành, cụ thể là trong phần “Privacy and Analytics”, mặc dù tên vị trí chính xác có thể khác nhau giữa các phiên bản iOS.

Kho lưu trữ được tạo tương đối nhanh chóng, thường chỉ mất vài phút. Kết quả là một tệp .tar.gz có kích thước khoảng 200MB đến 400MB. Sau khi giải nén kho lưu trữ, tệp Shutdown.log nằm trong thư mục “\system_logs.logarchive\Extra”.

PHÁT HIỆN SỰ LÂY NHIỄM

Khi tiến hành phân tích những chiếc điện thoại bị lây nhiễm phần mềm độc hại, các nhà nghiên cứu đã thử nghiệm bằng công cụ MVT - Mobile Verification Toolkit, đây là bộ công cụ giúp các nhà phân tích điều tra thiết bị di động có thể tìm ra dấu hiệu của sự xâm phạm tiềm ẩn. Vào thời điểm đó, MVT đã xác định các chỉ báo phần mềm độc hại bằng cách phân tích cơ sở dữ liệu DataUsage.

Vì phần mềm độc hại trên thiết bị di động ngày càng trở nên phổ biến và các phương pháp phát hiện gây mất thời gian, do đó Kaspersky đã tìm kiếm một phương pháp nhanh hơn và dễ dàng hơn. Mặc dù phân tích lưu lượng truy cập mạng có thể là một phương pháp rất hiệu quả để xác định khả năng lây nhiễm iPhone tiềm ẩn, nhưng việc xử lý lưu lượng truy cập mạng có thể đòi hỏi trình độ chuyên môn và nguồn lực cao. Phân tích trích xuất Sysdiag là một phương pháp xâm nhập tối thiểu và tiết kiệm tài nguyên để xác định khả năng lây nhiễm iPhone.

Các nhà nghiên cứu cho biết các thiết bị di động có dấu hiệu bị lây nhiễm trong các thành phần thông thường như cơ sở dữ liệu DataUsage, nhưng không có dấu vết nào trong Shutdown.log. Phân tích sâu hơn cho thấy người dùng đã không khởi động lại vào thời điểm bị lây nhiễm vì Shutdown.log chỉ ghi lại các mục khi khởi động lại.

Bên cạnh đó, các nhà nghiên cứu cũng cho biết đã xác định được các mục trong tệp nhật ký ghi lại các trường hợp trong đó các tiến trình “sticky”, chẳng hạn như các tiến trình liên quan đến phần mềm gián điệp, gây ra tình trạng chậm khởi động lại, trong một số trường hợp, các nhà nghiên cứu quan sát thấy các tiến trình liên quan đến Pegasus trong hơn bốn thông báo trì hoãn khởi động lại.

Khi tiếp tục phân tích các kho lưu trữ Sysdiag và Shutdown.log, các nhà nghiên cứu phát hiện sự hiện diện của một đường dẫn hệ thống tệp tương tự được cả ba dòng phần mềm gián điệp sử dụng: đường dẫn “/private/var/db/” với Pegasus, Reign và đường dẫn “/private/var/tmp/” với Predator, đóng vai trò như một dấu hiệu của sự thỏa hiệp.

Vì cả ba dòng phần mềm độc hại đều sử dụng một đường dẫn hệ thống tệp tương tự và Kaspersky đã xác nhận từ phân tích lây nhiễm của Pegasus rằng đường dẫn đó có thể được nhìn thấy trong Shutdown.log nên các nhà nghiên cứu tin rằng tệp nhật ký này có thể giúp xác định sự lây nhiễm của các dòng phần mềm độc hại này. Tuy nhiên, sự thành công của phương pháp này phụ thuộc vào lời cảnh báo rằng người dùng mục tiêu phải khởi động lại thiết bị của họ thường xuyên nhất có thể, tần suất thay đổi phụ thuộc mức độ lây nhiễm của từng mối đe dọa.

PHÂN TÍCH TẬP LỆNH

Để tự động hóa quá trình phân tích, các nhà nghiên cứu đã tạo một số tập lệnh Python3 để giúp trích xuất và phân tích Shutdown.log.

Tập lệnh 1: iShutdown_ detect

Tập lệnh phân tích đầu tiên cho biết về việc phát hiện những điểm bất thường được đề cập ở trên, bên trong tệp Shutdown.log. Các ví dụ dưới đây hiển thị một số kết quả đáng mong đợi.

Hình 2.Tiến trình “sticky” trì hoãn khởi động lại hơn ba lần

Hình 3. Phát hiện một dấu hiệu của phần mềm gián điệp Pegasus

Kịch bản 2: iShutdown_parse

Các nhà nghiên cứu nhận định có những trường hợp các nhà phân tích và người dùng muốn chia sẻ tệp nhật ký của họ và phân tích chúng cho các mục đích khác nhau. Vì vậy, kịch bản thứ hai là một nỗ lực nhằm hỗ trợ yêu cầu này. Tập lệnh iShutdown_parse lấy một kho lưu trữ Sysdiag làm đối số và trích xuất tệp Shutdown.log từ đó, đồng thời chuyển đổi thành tệp CSV, giải mã dấu thời gian (timestamp) và tạo bản tóm tắt phân tích cú pháp bao gồm Sysdiag nguồn và hàm băm Shutdown.log được trích xuất.

Hình 4. Kết quả trích xuất và phân tích nhật ký

Kịch bản 3: iShutdown_stats

Tập lệnh cuối cùng có thể được sử dụng cho nhiều mục đích khác nhau, chủ yếu nhằm lấy số liệu thống kê trong những lần mà người dùng khởi động lại điện thoại, chẳng hạn như lần khởi động đầu tiên, lần khởi động cuối cùng và số lần khởi động lại mỗi tháng. Tập lệnh iShutdown_stats tính đến việc người dùng đã trích xuất tệp nhật ký được đề cập và lấy chính tập lệnh này chứ không phải kho lưu trữ sysdiag làm đối số.

Hình 5. Thống kê số lần khởi động lại mỗi tháng trên điện thoại

KẾT LUẬN

Để đi đến kết luận, các nhà nghiên cứu đã phân tích và xác nhận độ tin cậy của việc phát hiện nhiễm phần mềm độc hại Pegasus bằng cách sử dụng tệp Shutdown.log được lưu trữ trong Sysdiag. Đáng lưu ý, tệp nhật ký này có thể lưu trữ các mục trong vài năm, khiến nó trở thành một công cụ điều tra số có giá trị để phân tích và xác định các mục nhật ký bất thường. Ngoài ra, các nhà nghiên cứu nhấn mạnh đây không phải là giải pháp có thể phát hiện tất cả phần mềm độc hại và phương pháp này phụ thuộc vào việc người dùng khởi động lại điện thoại thường xuyên hay không.