Lỗ hổng đáng sợ rất ít người biết ẩn giấu trên con chip x86 của Intel

    Nguyễn Hải,  

    Đó là một mối nguy hiểm có xác suất vô cùng nhỏ, nhưng nếu nó xảy ra, bạn sẽ không thể phát hiện, không thể sửa chữa cũng như không thể ngăn chặn.

    Các bộ xử lý x86 gần đây của Intel ẩn chứa một cơ chế điều khiển bí mật nhưng đầy sức mạnh, chạy trên một con chip riêng biệt mà không ai được phép kiểm tra hay xem xét. Nếu cơ chế này bị tổn thương, chúng sẽ gần như phơi bày cả hệ thống cho những cuộc tấn công chiếm quyền kiểm soát máy tính (rootkit) không thể phát hiện cũng như không thể ngăn chặn.

    Cỗ máy bí mật bên trong con chip x86 của Intel

    Được Intel đặt tên là Management Engine (ME), đây là một hệ thống con bao gồm một bộ vi xử lý đặc biệt 32-bit ARC, được đặt ngay bên trong chipset. Nó là một máy tính phụ đa chức năng để chạy firmware mã nguồn đóng (blob), vốn được bán kèm như một chương trình quản lý hệ thống dành cho việc triển khai của các doanh nghiệp lớn.

    Khi bạn mua một hệ thống với mainboard và con chip CPU Intel x86, bạn đồng thời sẽ mua tiện ích đi kèm phần cứng này: một máy tính phụ để điều khiển CPU chính. Chiếc máy tính phụ này chạy ngoài tầm điều khiển của CPU x86 chính, nghĩa là nó có thể hoạt động độc lập ngay cả khi CPU chính của bạn ở trạng thái năng lượng thấp, ví dụ như S3 (trạng thái tạm ngừng).

    Trên một vài chipset, firmware này chạy trên ME để điều khiển một hệ thống được gọi là Active Management Technology của Intel (hệ thống AMT). Hệ thống này hoàn toàn vô hình với hệ điều hành, điều đó có nghĩa là chiếc máy tính phụ này có thể thực thi các công việc của mình cho dù hệ điều hành có được cài đặt và chạy trên CPU chính hay không.

    Mục đích của hệ thống AMT là để cung cấp một phương pháp quản lý các máy tính từ xa (điều này cũng tương tự với một hệ thống cũ được gọi là “Giao diện quản lý nền tảng thông minh” – IPMI nhưng mạnh mẽ hơn). Để làm được tác vụ này, hệ thống ME có khả năng truy cập vào bất kỳ vùng bộ nhớ nào mà không để cho CPU x86 chính biết về sự tồn tại của các truy cập này. Nó cũng có thể chạy một máy chủ TCP/IP trên giao diện mạng lưới của bạn, và các gói dữ liệu đi vào và ra khỏi máy của bạn trên các cổng nào đó sẽ hoàn toàn vượt qua bất kỳ tường lửa nào trên hệ thống của bạn.

    Trong khi AMT có thể là một sản phẩm giá trị gia tăng tuyệt vời, nó cũng có hàng loạt nhược điểm đáng nguy hiểm. Hệ thống ME được các nhà nghiên cứu phân loại ở mức “Ring-3" (Vòng-3). Các vòng bảo mật có thể được định nghĩa như các lớp bảo mật ảnh hưởng đến các bộ phận riêng biệt của hệ thống, với vòng có số càng nhỏ sẽ tương ứng với phân vùng càng gần với phần cứng.

    Ví dụ, các mối đe dọa Ring-3 được định nghĩa như các mối đe dọa bảo mật biểu hiện trong chế độ “userspace” (không gian của người dùng). Mối đe dọa Ring-0 xảy ra ở cấp độ nhân “kernel”, mối đe dọa Ring-1 xảy ra ở cấp độ máy ảo “hypervisor” – thấp hơn một bậc so với cấp độ kernel. Trong khi đó, mối đe dọa Ring-2 xảy ra trong một chế độ đặc biệt của CPU, được gọi là chế độ “SMM” – System Management Mode. Đây là một chế độ đặc biệt dành cho các CPU Intel để chạy một đoạn code riêng biệt. Nếu những kẻ tấn công có thể chỉnh sửa đoạn code SMM và kích hoạt chế độ này, chúng có thể chạy các đoạn code tùy thích trên CPU.

    Rủi ro nghiêm trọng cho hệ thống bảo mật

    Cho dù firmware ME đã được mã hóa bảo vệ với RSA 2048, các nhà nghiên cứu vẫn có thể khai thác các điểm yếu trong firmware này và chiếm một phần quyền điều khiển ME trong các thử nghiệm đầu tiên. Điều này làm cho hệ thống ME trở thành một lỗ hổng lớn về bảo mật, và nó đã được xem như một cơ chế chiếm quyền kiểm soát máy tính (rootkit) rất mạnh mẽ.

    Nếu một hệ thống bị tấn công bởi cơ chế rootkit này, kẻ tấn công có thể giành quyền truy cập cấp admin và thực hiện các cuộc tấn công không thể bị phát hiện vào máy tính.

    Trong các hệ thống mới hơn thế hệ CPU Core2, ME không thể tắt được. Các hệ thống của Intel được thiết kế để buộc phải có ME, nếu không có firmware ME (hoặc firmware bị hỏng), chúng sẽ từ chối khởi động hoặc sẽ tự động tắt nhanh chóng sau khi khởi động.

    Hiện không có cách nào cho phép firmware của x86 hay hệ điều hành có thể vô hiệu hóa hệ thống ME vĩnh viễn. Intel vẫn giữ các chi tiết về hệ thống này tuyệt đối bí mật. Và cũng tuyệt đối không có cách nào để CPU chính biết nếu ME trên hệ thống bị hư hỏng, cũng như không có cách nào sửa chữa cho những hư hỏng đó của ME. Và tất nhiên, bạn cũng không thể biết nếu các phần mềm độc hại đã làm tổn thương ME và lây lan toàn hệ thống.

    Phần lớn mô hình bảo mật của ME là “bảo mật bằng tính bất khả định,” (security through obscurity), một mô hình mà các nhà nghiên cứu xem như loại bảo mật kém nhất. Nếu tính bí mật của ME bị tổn thương (và cuối cùng chúng sẽ bị tổn thương bởi hoặc các nhà nghiên cứu hoặc các phần mềm độc hại), toàn bộ mô hình bảo mật của ME sẽ sụp đổ, làm cho mọi hệ thống gần đây của Intel rơi vào tình trạng bị chiếm quyền điều khiển, và đó là điều tồi tệ nhất chúng ta có thể tưởng tượng ra.

    Khoảng năm 2013, nhóm nghiên cứu của chuyên gia an ninh phần cứng Damien Zammit phát hiện ra một vài chi tiết thực sự quan trọng về cách đóng gói firmware ME vào trong một mã nguồn nhị phân đóng (blob) như thế nào. Firmware ME được xác minh bởi một bộ nhớ ROM khởi động bí mật, nhúng trong chipset. Đầu tiên, bộ nhớ này kiểm tra xem checksum SHA256 của khóa công khai phù hợp với mã khóa của nhà máy hay không, và sau đó xác minh chữ ký RSA trong payload của firmware bằng cách tính toán lại nó và so sánh với chữ ký lưu trữ.

    Điều đó nghĩa là sẽ không có cách rõ ràng nào để vượt qua việc kiểm tra chữ ký, nếu việc kiểm tra đã được thực hiện bởi đoạn code đặt cố định trong miếng silicon của bộ nhớ ROM, ngay cả khi chúng ta có mã khóa công khai và chữ ký. Tuy nhiên, có thể vẫn còn một lỗi có thể khai thác trong bộ nạp khởi động của ROM.

    Các nhà nghiên cứu cũng khám phá ra rằng các phần quan trọng của firmware ME được lưu trữ trong một định dạng nén không tiêu chuẩn, và chỉ được giải nén bởi một bộ giải nén đặc biệt bằng phần cứng. Các nỗ lực tấn công brute-force ban đầu của ông Zammit vào bộ giải nén đã hoàn toàn thất bại. Một nhóm khác thành công hơn và giờ họ đã hoàn tất việc đưa ra một chương trình giải nén cho tất cả các phiên bản của ME, nhưng không bao gồm phiên bản 11.

    Đề xuất giảm thiểu rủi ro của nhóm nghiên cứu

    Mục tiêu của nhóm ông Zammit nhằm tạo ra một sự thay thế miễn phí hoàn toàn về phần mềm cho ME của Intel. Do việc cài đặt một bộ phận quan trọng về bảo mật như vậy cần được kiểm tra kỹ lưỡng, nó sẽ được chia sẻ để đánh giá và kiểm tra bởi những người làm về an ninh trên toàn thế giới. Điều này thường dẫn đến việc tạo ra một biện pháp bảo mật mạnh mẽ hơn.

    Tuy nhiên, mục tiêu không phải để thay thế ME, mà là cung cấp một firmware tối thiểu có thể thay thế cho firmware của Intel, để người dùng có thể lựa chọn để sử dụng nó. Thật không may, do firmware của Intel được bảo vệ bởi RSA 2048, hiện nhóm của ông Zammit không có cách nào để thực thi các dòng code của riêng mình trên phần cứng của ME, do chúng không được xác nhận. Các nhà nghiên cứu hiện không có cách nào để tiến xa hơn, cho dù họ rất muốn như vậy.

    Điều này thật đáng sợ. Hầu hết các khóa tay kỹ thuật số đều có thể dễ dàng bị phá, tuy nhiên vấn đề không phải là phá vỡ nó như thế nào, mà là những hậu quả nào chúng ta phải đối mặt khi điều đó thực sự xảy ra. Trong trường hợp này, nó đang không thể phá vỡ cho đến khi bạn có một cách nào đó để tính thừa số của các số bán nguyên tố với độ dài khoảng 600 chữ số hệ thập phân trong một thời gian hợp lý. (Tại thời điểm của bài viết, vấn đề này vẫn chưa thể giải quyết trong thời gian một đời người với siêu máy tính mạnh nhất thế giới).

    Cho đến nay, Intel đã chặn đứng bất kỳ ai muốn mày mò, vọc vạch với firmware của ME, và do vậy chúng ta không có cách nào để tin tưởng các dòng code đang chạy trên hệ thống ME này, bởi vì nó là độc quyền. Do vậy, chúng ta giống như đang quay trở lại những ngày tháng độc quyền của Sony Playstation, nhưng là với các máy tính đa chức năng dựa trên nền Intel x86.

    Các vấn đề sẽ chỉ tồi tệ hơn bây giờ khi Intel đang nhồi nhét cả hệ thống vào trong một con chip, hay các SoC. Chúng ta không có sự tách biệt vật lý giữa các thành phần mà chúng ta có thể tin tưởng với các thành phần chúng ta không tin tưởng trong hệ thống ME, vì vậy chúng ta thậm chí không thể tách bỏ chúng ra khỏi bo mạch chủ nữa.

    Dưới đây là một sơ đồ đơn giản hóa để mô tả làm thế nào một vài phần cứng cũ của ME có thể đặt trong một hệ thống:

    Có lẽ sẽ tốt hơn nếu hệ thống ME chỉ làm tác vụ cơ bản nhất của mình, đó là thiết lập các xung nhịp của bus và sau đó tắt đi. Bằng cách này, nó sẽ không bao giờ rò rỉ các dữ liệu cá nhân của người dùng vào mạng lưới.

    Tham khảo BoingBoing

    Tin cùng chuyên mục
    Xem theo ngày

    NỔI BẬT TRANG CHỦ