Phần lỗi của những người nổi tiếng trên thế giới / Proc / cpuinfo thực sự hiển thị những gì?


23

Trên hệ thống Debian Stretch và thử nghiệm / Buster với kernel hiện tại và microcode được cài đặt, tôi vẫn thấy meltdown và bóng ma được liệt kê là lỗi trong /proc/cpuinfo.

Tuy nhiên, chạy các spectre-meltdown-checkerchương trình không dễ bị tổn thương.

Vì vậy, tôi tự hỏi những gì /proc/cpuinfokhông hiển thị. Có phải đây chỉ là các lỗ hổng cho cpu này và chúng sẽ luôn được liệt kê mặc dù có một hệ thống được vá?

Câu trả lời:


22

Mục đích của các lỗi của trường Viking trong trường /proc/cpuinfođược mô tả trong thông điệp cam kết đã giới thiệu nó :

x86/cpufeature: Thêm cờ lỗi vào /proc/cpuinfo

Kết xuất các cờ biểu thị chúng tôi đã phát hiện và / hoặc đã áp dụng các cách khắc phục lỗi cho CPU mà chúng tôi đang thực hiện, theo cách tương tự như các cờ tính năng.

Ưu điểm là những thứ đó không được tích lũy theo thời gian như các tính năng của CPU.

Trước đây, các lỗi phần cứng mà kernel phát hiện được liệt kê là các tính năng riêng biệt ( ví dụ: lỗi F00F khét tiếng, có f00f_bugmục riêng trong /proc/cpuinfocác hệ thống x86 32 bit). Các mục lỗi của Bug đã được giới thiệu để giữ các tính năng này trong một tính năng duy nhất về phía trước, theo cùng kiểu với các cờ CPU x86 .

Theo như ý nghĩa của các mục trong thực tế, như bạn có thể thấy trong tin nhắn, tất cả những gì được đảm bảo là kernel đã phát hiện ra lỗi phần cứng. Bạn sẽ cần tìm ở nơi khác (thông báo khởi động, hoặc các /procmục hoặc mục cụ thể /sysnhư các tệp trong /sys/devices/system/cpu/vulnerabilities/) để xác định xem các vấn đề có được xử lý hay không.

Tính hữu dụng của các lỗi của các mục nhập vào bị giới hạn theo hai cách. Đầu tiên là các tiêu cực thực sự không thể được phân biệt với các ẩn số: nếu trường không chỉ định Cpu_meltdown, bạn không thể biết (chỉ từ trường) cho dù điều đó có nghĩa là hạt nhân không biết về Meltdown hay CPU của bạn không bị ảnh hưởng bởi Meltdown. Thứ hai là việc phát hiện có thể quá đơn giản; nó lỗi ở khía cạnh thận trọng, do đó có thể báo cáo rằng CPU của bạn dễ bị tổn thương khi không. Bởi vì phát hiện ra các máy phát điện tử được điều khiển theo bảng, độ chính xác của nó phụ thuộc vào phiên bản kernel bạn đang chạy.

Trong trường hợp lỗi Meltdown và Spectre, quy trình phát hiện cung cấp các giá trị trong /proc/cpuinfo các tác phẩm như sau , trên x86:


2
Trong trường hợp bóng ma và tan hoang, chúng thậm chí không được phát hiện mà chỉ là giả định . Tôi có một x86 theo thứ tự không bị ảnh hưởng bởi một trong hai, nhưng hạt nhân chỉ báo cáo rằng dù sao đó cũng là do quy tắc mã hóa cơ bản nói rằng "bất kỳ cpu Intel nào cũ hơn X mà không áp dụng bản vá vi mã đều dễ bị hỏng".
R ..

2
@R .. CPU của bạn có được bao gồm trong các bảng theo thứ tự trong kernel không? (Hãy tìm “cpu_no_speculation” ở đây để xem các bảng mới nhất.) Đó thực sự là một trong những vấn đề với “lỗi” entry wrt. Meltdown, Spectre và co., Độ chính xác của nó thực sự phụ thuộc vào mức độ gần đây của hạt nhân của bạn kể từ khi phát hiện ra của họ.
Stephen Kitt

Không, đó là một Centerton Bonnell và nó bị mất tích từ đó. Tôi sẽ xem về việc gửi một bản vá.
R ..

Có ai biết nếu điều này vẫn đúng khi cập nhật vi mã đã được áp dụng trong khi khởi động nhưng sau khi tải kernel?
Bachsau

12

Các lỗ hổng Meltdown / Spectre nằm trên thiết kế / kiến ​​trúc chipset CPU và không mua phần cứng mới trong tương lai, các bản vá là một ảo ảnh tốt đẹp về bảo mật trong thời gian dài . Các phương pháp khai thác lỗ hổng mới có thể xuất hiện theo thời gian có thể vượt qua các bản vá hiện tại.

Nói tóm lại, các bản vá / vi mã phần mềm hiện tại giảm thiểu các vấn đề đối với các phương pháp khai thác đã biết của họ khai thác Spectre / Meltdown, nhưng không giải quyết được các vấn đề thiết kế CPU tiềm ẩn cho phép chúng ở vị trí đầu tiên. CPU bị ảnh hưởng (một vài thế hệ) đã không ngừng bị tổn thương trong thời gian dài (và hầu hết có lẽ sẽ không bao giờ).

Tuy nhiên, như @Gilles tuyên bố chính xác, có cảnh báo đó không có nghĩa là các phương thức khai thác đã biết hiện tại của Spectre / Meltdown sẽ hoạt động; chúng sẽ không hoạt động nếu các bản vá được cài đặt.

Trong trường hợp được đề cập trong câu hỏi, kernel chỉ kiểm tra các mô hình CPU được biết là bị ảnh hưởng bởi Spectre / Meltdown (tất cả các CPU x86 bây giờ nếu chúng ta chỉ nói về x86), và do đó cpu-insecurevẫn được liệt kê trong phần lỗi / dòng trong /proc/cpuinfo.

Đi kiểm tra của bạn /proc/cpuinfo. Nó sẽ chứa cpu_insecure nếu kernel của bạn có bản vá KPTI

Tôi đã thấy rằng bản vá KPTI có đoạn mã này:

   /* Assume for now that ALL x86 CPUs are insecure */
   setup_force_cpu_bug(X86_BUG_CPU_INSECURE);

Và sau khi cập nhật kernel, bạn nhận được:

bugs      : cpu_insecure

Tái bút Đã có một loạt các bản cập nhật cho một phương pháp mới để khai thác các "lỗi" của Spectre / Meltdown. Nó có lẽ sẽ không phải là lần cuối cùng.


2
ví dụ: Nếu bạn có thể ngừng mua hw một lúc, hãy đợi một thế hệ CPU mới. Quả cầu pha lê của tôi nói với tôi rằng chúng ta sẽ có rất nhiều máy chủ cũ bán cho đậu phộng trong trung hạn.
Rui F Ribeiro

Lỗi CPU được liệt kê /proc/cpuinfongay cả khi chúng được giảm thiểu hoàn toàn bằng một bản vá phần mềm. Sự hiện diện của họ không có nghĩa là hệ thống của bạn dễ bị lỗi cụ thể đó.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles được cấp, bạn sẽ không thể áp dụng khai thác được biết đến. Tuy nhiên, chúng tôi đã có một loạt các khai thác xoay quanh thế hệ bản vá đầu tiên, và tôi sẽ mạo hiểm nói rằng có rất nhiều lợi ích thương mại ngoài đó làm câm lặng những chỉ trích về việc đây là một lỗ hổng thiết kế cơ bản sẽ buộc thiết kế lại CPU lớn.
Rui F Ribeiro

1
Điều đó đúng với các khai thác kiểu Spectre / Meltdown, chúng là các vấn đề thiết kế cơ bản sẽ tiếp tục đưa ra. Nhưng bạn đã viết rằng điều này đúng với các bugschương trình truyền hình, và điều này chỉ sai. Hầu hết các lỗi thiết kế CPU có một cách giải quyết phần mềm đầy đủ chỉ tốn một ít hiệu năng. Nếu kernel áp dụng cách giải quyết, thì lỗi là vô hại.
Gilles 'SO- ngừng trở nên xấu xa'

1
@Rui oh Tôi nghĩ rằng tôi đã không thể hiện bản thân đủ rõ ràng - Tôi có nghĩa là bài báo đã không trả lời câu hỏi mà tiêu đề của chính nó đã hỏi, không phải là nó không trả lời câu hỏi này ;-). (Như trong, tiêu đề của bài viết là về cách thức lỗi Spectre phá vỡ ngành công nghiệp được giữ bí mật trong bảy tháng, nhưng bài viết không giải thích IMO như thế nào .)
Stephen Kitt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.