Tháng 6/2023, các nhà nghiên cứu của Kaspersky đã phát hiện một chiến dịch tấn công APT nhắm mục tiêu vào các thiết bị iOS. Với tên gọi là Operation Triangulation, chiến dịch này sử dụng một phương pháp tinh vi để thực hiện các hoạt động khai thác zero-click thông qua ứng dụng iMessage, từ đó phân phối tệp đính kèm độc hại có thể giành quyền kiểm soát hoàn toàn đối với dữ liệu người dùng và thiết bị, với mục tiêu nhắm vào các nhà ngoại giao và các quan chức chính phủ.
Để có góc nhìn tổng quan về chiến dịch tấn công Operation Triangulation, dưới đây là nội dung khái quát về cuộc tấn công iMessage zero-click. Cuộc tấn công này sử dụng bốn lỗ hổng zero-day, bao gồm CVE-2023-32434, CVE-2023-32435, CVE-2023-38606, CVE-2023-41990 và được thiết kế để hoạt động trên các phiên bản iOS lên đến phiên bản 16.2.
Hình 1. Chuỗi tấn công trong chiến dịch Operation Triangulation
Các mẫu iPhone gần đây có tính năng bảo mật dựa trên phần cứng bổ sung cho các vùng nhạy cảm của bộ nhớ kernel. Tính năng này ngăn chặn kẻ tấn công có được toàn quyền kiểm soát thiết bị nếu chúng có thể đọc và ghi bộ nhớ kernel, như đã đạt được trong cuộc tấn công này bằng cách khai thác lỗ hổng CVE-2023-32434. Kaspersky phát hiện rằng để vượt qua biện pháp bảo mật dựa trên phần cứng này, những kẻ tấn công đã sử dụng một tính năng phần cứng khác của SoC do Apple thiết kế.
Nếu cố gắng mô tả tính năng này và cách những kẻ tấn công lợi dụng nó, thì có thể mô tả như sau: Tin tặc có thể ghi dữ liệu vào một địa chỉ vật lý nhất định trong khi vượt qua cơ chế bảo vệ bộ nhớ dựa trên phần cứng bằng cách ghi dữ liệu, địa chỉ đích và băm dữ liệu vào các thanh ghi phần cứng không xác định của chip mà firmware không sử dụng.
Các nhà nghiên cứu nhận định rằng tính năng phần cứng không xác định này rất có thể được các kỹ sư hoặc nhà máy của Apple sử dụng cho mục đích gỡ lỗi, thử nghiệm hoặc tính năng này được đưa vào do sự nhầm lẫn.
Các thiết bị ngoại vi khác nhau có sẵn trong SoC có thể cung cấp các thanh ghi phần cứng đặc biệt mà CPU có thể sử dụng để vận hành các thiết bị này. Để điều này hoạt động, các thanh ghi phần cứng được ánh xạ tới bộ nhớ mà CPU có thể truy cập được và được gọi là “memory-mapped I/O (MMIO)”.
Phạm vi địa chỉ cho MMIO của thiết bị ngoại vi trong các sản phẩm của Apple (iPhone, Mac và các thiết bị khác) được lưu trữ ở định dạng tệp đặc biệt: Device Tree - DT (đây là một tệp mô tả phần cứng, có kiểu định dạng giống JSON và mô tả một cấu trúc cây). Các tệp DT có thể được trích xuất từ firmware và có thể xem nội dung của chúng.
Hình 2. Ví dụ về cách lưu trữ phạm vi MMIO trên thiết bị
Khi phân tích cách khai thác được sử dụng trong cuộc tấn công Operation Triangulation, các nhà nghiên cứu phát hiện ra rằng hầu hết các MMIO được kẻ tấn công sử dụng để vượt qua tính năng bảo vệ bộ nhớ kernel dựa trên phần cứng không thuộc bất kỳ phạm vi MMIO nào được xác định trong DT. Việc khai thác nhắm vào các SoC Bionic Apple A12-A16, nhắm mục tiêu các khối đăng ký MMIO không xác định được đặt tại các địa chỉ sau: 0x206040000, 0x206140000 và 0x206150000.
Các nhà nghiên cứu nhận ra rằng nên kiểm tra xem những MMIO nào đã biết khác nằm ở khu vực gần các khối MMIO chưa biết này. Cách tiếp cận đó đã thành công. Hình 3 thể hiện kết quả kết xuất (dump) DT cho gfx-asc, đó là GPU coprocessor.
Hình 3. Kết xuất (dump) DT cho gfx-asc
Nó có hai phạm vi MMIO: 0x206400000-0x20646C000 và 0x206050000-0x206050008.
Hình 4. Mối tương quan giữa phạm vi MMIO gfx-asc và các địa chỉ được sử dụng bởi kẻ tấn công
Nói chính xác hơn, việc khai thác sử dụng các địa chỉ không xác định sau: 0x206040000, 0x206140008, 0x206140108, 0x206150020, 0x206150040 và 0x206150048. Điều này cho thấy, hầu hết chúng nằm ở khu vực giữa hai vùng gfx-asc và vùng còn lại nằm gần điểm bắt đầu của vùng gfx-asc đầu tiên, dẫn đến việc tất cả các thanh ghi MMIO này rất có thể thuộc về GPU coprocessor.
Sau đó, các nhà nghiên cứu xem xét kỹ hơn cách khai thác và phát hiện một số vấn đề sau. Điều đầu tiên mà việc khai thác thực hiện trong quá trình khởi tạo là ghi vào một số thanh ghi MMIO khác, thanh ghi này nằm ở một địa chỉ khác cho mỗi SoC. Với sự trợ giúp của DT và tiện ích của Siguza, pmgr, các nhà nghiên cứu có thể phát hiện ra rằng tất cả các địa chỉ này đều tương ứng với thanh ghi GFX trong phạm vi MMIO của trình quản lý nguồn.
Hình 5. Mã giả (Pseudocode) cho mã kiểm soát trình quản lý nguồn GFX từ việc khai thác
Cuối cùng, các nhà nghiên cứu đã quyết định thử truy cập vào các thanh ghi nằm ở những vùng không xác định này. Gần như ngay lập tức, GPU coprocessor đưa ra thông báo “GFX SERROR Exception class=0x2f (SError interrupt), IL=1, iss=0 – power(1)”. Bằng cách này, các nhà nghiên cứu có thể xác nhận rằng tất cả các thanh ghi MMIO không xác định được sử dụng để khai thác đều thuộc về GPU coprocessor.
Các nhà nghiên cứu của Kaspersky quyết định xem xét kỹ hơn cách khai thác vận hành các thanh ghi MMIO không xác định này. Thanh ghi 0x206040000 nổi bật so với tất cả các thanh ghi còn lại vì nó nằm trong một khối MMIO riêng biệt với tất cả các thanh ghi khác. Nó chỉ được chạm vào trong giai đoạn khởi tạo và hoàn thiện quá trình khai thác, đây là thanh ghi đầu tiên được thiết lập trong quá trình khởi tạo và là thanh ghi cuối cùng trong quá trình hoàn thiện.
Sau đó, các nhà nghiên cứu đã có thể nhận ra thanh ghi không xác định này là 0x206040000, đồng thời phát hiện ra chính xác những gì được ánh xạ tới dải địa chỉ 0x206000000–0x206050000.
Hình 6. Mã giả để sử dụng thanh ghi 0x206040000 bằng cách khai thác
Các nhà nghiên cứu đã có thể so khớp hàm ml_dbgwrap_halt_cpu từ mã giả ở trên với một hàm có cùng tên trong tệp dbgwrap.c của mã nguồn XNU. Tệp này chứa mã để làm việc với các thanh ghi gỡ lỗi ARM CoreSight MMIO của CPU chính. Mã nguồn cho biết có bốn vùng MMIO liên quan đến CoreSight, được đặt tên là ED, CTI, PMU và UTT. Mỗi vùng chiếm 0x10000 byte và tất cả chúng đều nằm cạnh nhau.
Hàm ml_dbgwrap_halt_cpu sử dụng vùng UTT và mã nguồn cho biết, không giống như ba hàm còn lại, nó không đến từ ARM mà là một tính năng độc quyền của Apple được thêm vào chỉ để thuận tiện.
Các nhà nghiên cứu có thể xác nhận rằng 0x206000000–0x206050000 thực sự là một khối thanh ghi gỡ lỗi CoreSight MMIO cho GPU coprocessor bằng cách ghi ARM_DBG_LOCK_ACCESS_KEY vào vị trí tương ứng. Mỗi core của CPU chính có khối thanh ghi gỡ lỗi CoreSight MMIO riêng, nhưng không giống như GPU coprocessor, địa chỉ của chúng có thể được tìm thấy trong DT.
Tiến hành xem xét các thanh ghi chưa biết còn lại được sử dụng bởi kẻ tấn công, các thanh ghi 0x206140008 và 0x206140108 kiểm soát việc bật/tắt và chạy tính năng phần cứng được kẻ tấn công sử dụng.
Hình 7. Mã giả để sử dụng các thanh ghi 0x206140008 và 0x206140108 bằng cách khai thác
Thanh ghi 0x206150020 chỉ được sử dụng cho SoC Apple A15/A16 Bionic. Nó được đặt thành 1 trong giai đoạn khởi tạo khai thác và thành giá trị ban đầu trong giai đoạn hoàn thiện. Trong khi đó, thanh ghi 0x206150040 được sử dụng để lưu trữ một số cờ (flag) và phần sau của địa chỉ vật lý đích. Thanh ghi cuối cùng là 0x206150048, được sử dụng để lưu trữ dữ liệu cần ghi và phần trên của địa chỉ vật lý đích, được nhóm cùng với hàm băm dữ liệu và một giá trị khác (có thể là một lệnh). Tính năng phần cứng này ghi dữ liệu theo các khối 0x40 byte và mọi thứ được ghi vào thanh ghi 0x206150048 trong chín lần ghi liên tiếp.
Hình 8. Mã giả để sử dụng các thanh ghi 0x206150040 và 0x206150048 bằng cách khai thác
Điều kiện là mọi thứ được thực hiện chính xác, phần cứng sẽ thực hiện truy cập trực tiếp bộ nhớ trực tiếp (DMA - Đây là một ᴄơ ᴄhế truуền dữ liệu với tốᴄ độ ᴄao từ ngoại ᴠi tới bộ nhớ và từ bộ nhớ tới bộ nhớ) và ghi dữ liệu vào vị trí được yêu cầu. Như vậy, tất cả công việc với tất cả các thanh ghi MMIO đã được thực hiện, tiến hành xem xét một điều cuối cùng, đó là cách tính băm. Thuật toán được hiển thị qua Hình 9 dưới đây.
Hình 9. Mã giả cho hàm băm được sử dụng bởi tính năng phần cứng không xác định này
Như Hình 9, đây là một thuật toán tùy chỉnh và hàm băm được tính bằng cách sử dụng bảng sbox được xác định trước. Có thể nhận thấy rằng hàm băm này trông không an toàn vì nó chỉ chiếm 20 bit (10+10, vì được tính hai lần), nhưng nó vẫn thực hiện công việc của mình miễn là không ai biết cách tính toán và sử dụng nó.
Qua quá trình phân tích, Kaspersky cho biết còn nhiều vấn đề chưa được giải đáp, không rõ làm thế nào những kẻ tấn công học được cách sử dụng tính năng phần cứng không xác định hoặc mục đích ban đầu của nó là gì. Các nhà nghiên cứu cũng không biết liệu nó được phát triển bởi Apple hay là thành phần của bên thứ ba như ARM CoreSight.
Kaspersky đánh giá các biện pháp bảo vệ dựa trên phần cứng nâng cao sẽ không có tác dụng trước những kẻ tấn công tinh vi, miễn là có các tính năng phần cứng có thể vượt qua các biện pháp bảo vệ đó, qua đó khẳng định sự phức tạp trong chiến dịch Operation Triangulation.
TÀI LIỆU THAM KHẢO [1]. https://securelist.com/operation-triangulation-the-last-hardware-mystery/111669/ |
Hồng Đạt
(Tổng hợp)
13:00 | 13/11/2023
14:00 | 01/11/2023
09:00 | 07/06/2023
08:00 | 21/12/2023
Theo số liệu của DataReportal, hiện Việt Nam đang có khoảng 49,9 triệu người sử dụng mạng xã hội TikTok, xếp thứ 6 trên 10 quốc gia có số người sử dụng TikTok nhiều nhất thế giới. Đáng chú ý là mạng xã hội này đang dần chiếm lĩnh thị trường nhờ vào những đoạn video có nội dung đa dạng mang tính "gây nghiện", thu hút mọi lứa tuổi trong đó có trẻ em. Tuy nhiên không như những mạng xã hội khác, TikTok thường xuyên bị cáo buộc việc gây ra những rủi ro nghiêm trọng về bảo mật và quyền riêng tư của người dùng. Thời gian qua đã có ít nhất 10 quốc gia cấm sử dụng ứng dụng này, trong đó có những nguyên nhân là do Tiktok gây ảnh hưởng nghiêm trọng tới suy nghĩ và hành động của trẻ em.
17:00 | 18/12/2023
Ngày nay, Trí tuệ nhân tạo (AI) hiện diện trong mọi lĩnh vực của đời sống con người, từ kinh tế, giáo dục, y khoa cho đến những công việc nhà, giải trí hay thậm chí là trong quân sự. Học máy là một ứng dụng của trí tuệ nhân tạo cung cấp cho các hệ thống khả năng tự động học hỏi và cải thiện từ kinh nghiệm mà không cần lập trình rõ ràng. Học máy tập trung vào việc phát triển các chương trình máy tính có thể truy cập dữ liệu và sử dụng nó để tự học. Do đó, vấn đề đảm bảo tính riêng tư trong ứng dụng phương pháp học sâu đang là một vấn đề được quan tâm hiện nay.
09:00 | 24/11/2023
Bằng chứng không tiết lộ tri thức (Zero-Knowledge Proofs - ZKP) là một dạng kỹ thuật mật mã được công bố từ thập niên 90 của thế kỷ trước, công nghệ mật mã này cho phép xác minh tính xác thực của một phần thông tin mà không tiết lộ chính thông tin đó. Tuy nhiên, trong những năm gần đây ZKP mới được đưa vào ứng dụng nhiều trong hệ thống công nghệ thông tin. Bài viết này sẽ trình bày chi tiết về khái niệm, tính chất, cách thức phân loại và một số ứng dụng phổ biến của ZKP trong an toàn thông tin.
14:00 | 14/09/2023
NFT (Non-fungible token) là một sản phẩm của thời đại công nghệ mới và đang phát triển như vũ bão, ảnh hưởng sâu rộng đến nhiều lĩnh vực. Thị trường NFT bùng nổ mạnh mẽ vào năm 2021, tăng lên khoảng 22 tỷ USD và thu hút ước tính khoảng 280 nghìn người tham gia. Nhưng khi thị trường này phát triển, phạm vi hoạt động của tin tặc cũng tăng theo, đã ngày càng xuất hiện nhiều hơn các báo cáo về những vụ việc lừa đảo, giả mạo, gian lận và rửa tiền trong NFT. Bài báo sau sẽ giới thiệu đến độc giả tổng quan về NFT, các hành vi lừa đảo NFT và cách thức phòng tránh mối đe dọa này.
Lược đồ chữ ký số dựa trên hàm băm là một trong những lược đồ chữ ký số kháng lượng tử đã được Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ (NIST) chuẩn hóa trong tiêu chuẩn đề cử FIPS 205 (Stateless Hash Based Digital Signature Standard) vào tháng 8/2023. Bài báo này sẽ trình bày tổng quan về sự phát triển của của lược đồ chữ ký số dựa trên hàm băm thông qua việc phân tích đặc trưng của các phiên bản điển hình của dòng lược đồ chữ ký số này.
09:00 | 01/04/2024
Mới đây, Cơ quan An ninh mạng và Cơ sở hạ tầng Hoa Kỳ (CISA) đã phát hành phiên bản mới của hệ thống Malware Next-Gen có khả năng tự động phân tích các tệp độc hại tiềm ẩn, địa chỉ URL đáng ngờ và truy tìm mối đe dọa an ninh mạng. Phiên bản mới này cho phép người dùng gửi các mẫu phần mềm độc hại để CISA phân tích.
13:00 | 17/04/2024