Ginny Hà
VIP Members
-
04/06/2014
-
88
-
689 bài viết
Phát hiện lỗi khó vá trong CPU Apple M1
Một cuộc tấn công hardware mới có tên PACMAN đang nhắm vào chipset bộ xử lý M1 của Apple, cho phép hacker thực thi mã tùy ý trên hệ thống macOS.
Các nhà nghiên cứu của MIT bao gồm Joseph Ravichandran, Weon Taek Na, Jay Lang và Mengjia Yan cho biết: "Các cuộc tấn công thực hành suy đoán (speculative execution) vượt qua cơ chế bảo vệ bộ nhớ quan trọng ARM Pointer Authentication - tính năng an ninh được sử dụng để thực thi tính toàn vẹn của con trỏ".
Đáng ngại hơn là "các cơ chế hardware PACMAN sử dụng không thể được vá bằng các tính năng phần mềm, do đó các lỗi bộ nhớ vẫn đang tồn tại", các nhà nghiên cứu nói thêm.
Lỗ hổng bắt nguồn từ mã xác thực con trỏ (PAC), một tuyến phòng thủ trong kiến trúc arm64e nhằm phát hiện và đảm bảo an ninh trước những thay đổi không mong muốn đối với con trỏ - đối tượng lưu trữ địa chỉ bộ nhớ - trong bộ nhớ.
PAC có mục đích giải quyết vấn đề phổ biến trong an ninh phần mềm, chẳng hạn như lỗ hổng làm hỏng bộ nhớ - thường bị khai thác bằng cách ghi đè dữ liệu điều khiển trong bộ nhớ để chuyển hướng thực thi mã đến một vị trí tùy ý do kẻ tấn công kiểm soát.
Trong khi các chiến lược như ASLR đã được đưa ra để tăng độ khó cho tấn công tràn bộ đệm, thì mục tiêu của PAC là xác định "tính hợp lệ của con trỏ với kích thước và tác động hiệu suất tối thiểu", ngăn chặn hacker tạo ra con trỏ để sử dụng khi tấn công.
Điều này đạt được bằng cách bảo vệ một con trỏ bằng một băm mật mã - được gọi là Mã xác thực con trỏ (PAC) - để đảm bảo tính toàn vẹn của nó. Apple giải thích PAC như sau:
Xác thực con trỏ hoạt động bằng cách cung cấp một lệnh CPU đặc biệt để thêm chữ ký mã hóa - hoặc PAC - vào các bit bậc cao không sử dụng của con trỏ trước khi lưu trữ con trỏ. Một lệnh khác loại bỏ và xác thực chữ ký sau khi đọc lại con trỏ từ bộ nhớ. Bất kỳ thay đổi nào đối với giá trị được lưu trữ giữa ghi và đọc sẽ làm mất hiệu lực của chữ ký. CPU diễn giải lỗi xác thực làm hỏng bộ nhớ và đặt một bit bậc cao trong con trỏ, làm cho con trỏ không hợp lệ và khiến ứng dụng gặp sự cố.
Nhưng PACMAN "loại bỏ rào cản chính để tiến hành các cuộc tấn công control-flow kiểm soát trên nền tảng được bảo vệ bằng cách sử dụng xác thực con trỏ". Nó kết hợp làm hỏng bộ nhớ và thực hành suy đoán để phá vỡ tính năng an ninh, làm rò rỉ "kết quả xác minh PAC qua các kênh bên vi kiến trúc mà không gây ra bất kỳ sự cố nào".
Tóm lại, phương pháp tấn công cho phép phân biệt giữa PAC chính xác và băm không chính xác, kẻ xấu từ đó "brute force giá trị PAC chính xác trong khi ngăn chặn crash và xây dựng một cuộc tấn công control-flow trên một chương trình hoặc hệ điều hành nạn nhân”.
Việc ngăn chặn crash diễn ra thành công bởi mỗi giá trị PAC được phỏng đoán bằng cách khai thác kênh phụ dựa trên thời gian thông qua bộ đệm TLB (translation look-aside buffer) sử dụng tấn công Prime+ Probe.
Các lỗ hổng thực hành suy đoán, giống như trong trường hợp Spectre và Meltdown, vũ khí hóa việc thực thi không theo thứ tự, một kỹ thuật được sử dụng để cải thiện hiệu suất trong các bộ vi xử lý hiện đại bằng cách dự đoán đường dẫn có khả năng xảy ra nhất của luồng thực thi chương trình.
Tuy nhiên, điều đáng chú ý là mô hình tấn công giả định rằng đã tồn tại một lỗ hổng lạm dụng bộ nhớ có thể khai thác được trong chương trình nạn nhân (kernel), do đó, cho phép kẻ tấn công không có đặc quyền (một ứng dụng độc hại) đưa mã giả mạo vào một số vị trí bộ nhớ nhất định trong quá trình tấn công.
Các nhà nghiên cứu kết luận: "Cuộc tấn công này có ý nghĩa quan trọng đối với các nhà thiết kế đang tìm cách triển khai các bộ xử lý tương lai có tính năng xác thực con trỏ, đồng thời có ý nghĩa rộng rãi đối với an ninh toàn vẹn control-flow tương lai".
Các nhà nghiên cứu của MIT bao gồm Joseph Ravichandran, Weon Taek Na, Jay Lang và Mengjia Yan cho biết: "Các cuộc tấn công thực hành suy đoán (speculative execution) vượt qua cơ chế bảo vệ bộ nhớ quan trọng ARM Pointer Authentication - tính năng an ninh được sử dụng để thực thi tính toàn vẹn của con trỏ".
Đáng ngại hơn là "các cơ chế hardware PACMAN sử dụng không thể được vá bằng các tính năng phần mềm, do đó các lỗi bộ nhớ vẫn đang tồn tại", các nhà nghiên cứu nói thêm.
Lỗ hổng bắt nguồn từ mã xác thực con trỏ (PAC), một tuyến phòng thủ trong kiến trúc arm64e nhằm phát hiện và đảm bảo an ninh trước những thay đổi không mong muốn đối với con trỏ - đối tượng lưu trữ địa chỉ bộ nhớ - trong bộ nhớ.
PAC có mục đích giải quyết vấn đề phổ biến trong an ninh phần mềm, chẳng hạn như lỗ hổng làm hỏng bộ nhớ - thường bị khai thác bằng cách ghi đè dữ liệu điều khiển trong bộ nhớ để chuyển hướng thực thi mã đến một vị trí tùy ý do kẻ tấn công kiểm soát.
Trong khi các chiến lược như ASLR đã được đưa ra để tăng độ khó cho tấn công tràn bộ đệm, thì mục tiêu của PAC là xác định "tính hợp lệ của con trỏ với kích thước và tác động hiệu suất tối thiểu", ngăn chặn hacker tạo ra con trỏ để sử dụng khi tấn công.
Điều này đạt được bằng cách bảo vệ một con trỏ bằng một băm mật mã - được gọi là Mã xác thực con trỏ (PAC) - để đảm bảo tính toàn vẹn của nó. Apple giải thích PAC như sau:
Xác thực con trỏ hoạt động bằng cách cung cấp một lệnh CPU đặc biệt để thêm chữ ký mã hóa - hoặc PAC - vào các bit bậc cao không sử dụng của con trỏ trước khi lưu trữ con trỏ. Một lệnh khác loại bỏ và xác thực chữ ký sau khi đọc lại con trỏ từ bộ nhớ. Bất kỳ thay đổi nào đối với giá trị được lưu trữ giữa ghi và đọc sẽ làm mất hiệu lực của chữ ký. CPU diễn giải lỗi xác thực làm hỏng bộ nhớ và đặt một bit bậc cao trong con trỏ, làm cho con trỏ không hợp lệ và khiến ứng dụng gặp sự cố.
Nhưng PACMAN "loại bỏ rào cản chính để tiến hành các cuộc tấn công control-flow kiểm soát trên nền tảng được bảo vệ bằng cách sử dụng xác thực con trỏ". Nó kết hợp làm hỏng bộ nhớ và thực hành suy đoán để phá vỡ tính năng an ninh, làm rò rỉ "kết quả xác minh PAC qua các kênh bên vi kiến trúc mà không gây ra bất kỳ sự cố nào".
Tóm lại, phương pháp tấn công cho phép phân biệt giữa PAC chính xác và băm không chính xác, kẻ xấu từ đó "brute force giá trị PAC chính xác trong khi ngăn chặn crash và xây dựng một cuộc tấn công control-flow trên một chương trình hoặc hệ điều hành nạn nhân”.
Việc ngăn chặn crash diễn ra thành công bởi mỗi giá trị PAC được phỏng đoán bằng cách khai thác kênh phụ dựa trên thời gian thông qua bộ đệm TLB (translation look-aside buffer) sử dụng tấn công Prime+ Probe.
Các lỗ hổng thực hành suy đoán, giống như trong trường hợp Spectre và Meltdown, vũ khí hóa việc thực thi không theo thứ tự, một kỹ thuật được sử dụng để cải thiện hiệu suất trong các bộ vi xử lý hiện đại bằng cách dự đoán đường dẫn có khả năng xảy ra nhất của luồng thực thi chương trình.
Tuy nhiên, điều đáng chú ý là mô hình tấn công giả định rằng đã tồn tại một lỗ hổng lạm dụng bộ nhớ có thể khai thác được trong chương trình nạn nhân (kernel), do đó, cho phép kẻ tấn công không có đặc quyền (một ứng dụng độc hại) đưa mã giả mạo vào một số vị trí bộ nhớ nhất định trong quá trình tấn công.
Các nhà nghiên cứu kết luận: "Cuộc tấn công này có ý nghĩa quan trọng đối với các nhà thiết kế đang tìm cách triển khai các bộ xử lý tương lai có tính năng xác thực con trỏ, đồng thời có ý nghĩa rộng rãi đối với an ninh toàn vẹn control-flow tương lai".
Nguồn: The Hacker News
Chỉnh sửa lần cuối bởi người điều hành: