วิธีการปิดการใช้งาน Page Table Isolation เพื่อให้ได้ประสิทธิภาพที่หายไปเนื่องจากการแก้ไขช่องโหว่ความปลอดภัยของ Intel CPU


43

เนื่องจากปัญหาด้านความปลอดภัยของ Intel CPU ในปัจจุบันมีแพตช์ที่คาดว่าจะทำให้ประสิทธิภาพของระบบช้าลง

ฉันจะแน่ใจได้อย่างไรว่าแพทช์นี้จะไม่ถูกติดตั้งบนระบบ Ubuntu ของฉัน


49
คุณสามารถเพิ่มประสิทธิภาพของระบบของคุณให้ดียิ่งขึ้นโดยการปิดการใช้งานกลไกความปลอดภัยอื่น ๆ ไม่นั่นไม่ใช่คำแนะนำ
scai

11
หากประสิทธิภาพมีความสำคัญกับคุณฉันขอแนะนำให้สร้างเคอร์เนลรีลีสล่าสุดด้วยตัวคุณเองและทดสอบการลดลงของปริมาณงาน คุณอาจพบว่าค่าใช้จ่ายนั้นเล็กน้อยหรือไม่พอ
Jeffrey Bosboom

5
ฉันไม่สามารถพูดเกินจริงเพียงความคิดที่แย่ขนาดนี้
อเล็กซานเด

13
ฉันจะคัดค้าน โดยส่วนตัวฉันจะไม่แนะนำให้ปิดใช้งานคุณลักษณะด้านความปลอดภัย แต่สำหรับผู้ใช้ที่สังเกตเห็นว่าประสิทธิภาพการปิดการใช้งาน pti อาจเป็นตัวเลือกที่เหมาะสมเมื่อพิจารณาว่ายากเพียงใดที่จะยกระดับการโจมตีช่องโหว่ความปลอดภัยนี้และมูลค่าของคอมพิวเตอร์ / ข้อมูลเป้าหมาย คำถามคือวิธีการปิดการใช้งานตัวเลือกนี้ฉันไม่ควรปิดการใช้งานตัวเลือกนี้
Panther

2
ฉันเห็นด้วย PTI เป็นคุณลักษณะด้านความปลอดภัยที่อาจมีค่าใช้จ่ายที่ไม่สำคัญ มันขึ้นอยู่กับ OP เพื่อตัดสินใจว่ามันเหมาะกับพวกเขาหรือไม่และอยู่นอกขอบเขตของคำถามนี้
Jake

คำตอบ:


55

โปรแกรมปรับปรุง (aka "การแยกตารางหน้า") จะเป็นส่วนหนึ่งของการอัปเดตเคอร์เนลปกติ (ซึ่งคุณจะได้รับเมื่อคุณอัปเดตระบบ) อย่างไรก็ตามขอแนะนำให้รักษาเคอร์เนลให้ทันสมัยอยู่เสมอเพราะมันยังได้รับการแก้ไขด้านความปลอดภัยอื่น ๆ อีกมากมาย ดังนั้นฉันจะไม่แนะนำเพียงแค่ใช้เคอร์เนลที่ล้าสมัยโดยไม่มีการแก้ไข

อย่างไรก็ตามคุณสามารถปิดการใช้งานโปรแกรมแก้ไขได้อย่างมีประสิทธิภาพโดยการเพิ่มpti=off( เพิ่มตัวเลือกเคอร์เนลเพิ่มตัวเลือกนี้พร้อมข้อมูลเพิ่มเติม ) ในบรรทัดคำสั่งเคอร์เนลของคุณ ( howto ) โปรดทราบว่าการทำเช่นนี้จะส่งผลให้ระบบมีความปลอดภัยน้อยลง

มีข้อมูลเพิ่มเติมและการทดสอบประสิทธิภาพด้วยการเปิดใช้งานและปิดใช้งาน PTI ในรายการส่งเมล PostgreSQL - TLDR คือมีผลกระทบระหว่าง 10 ถึง 30% (สำหรับ ProstgreSQL นั่นคือ - สิ่งอื่น ๆเช่นเกมอาจจะเห็นผลกระทบน้อยกว่า) .

โปรดทราบว่าสิ่งนี้จะส่งผลกระทบต่อโปรเซสเซอร์ของ Intel เท่านั้นเนื่องจาก AMD ไม่ได้รับผลกระทบ ( reddit ) ดังนั้นสิ่งนี้จะถูกปิดใช้งานโดยค่าเริ่มต้นบน AMD


2
"... สิ่งนี้จะถูกปิดการใช้งานโดยค่าเริ่มต้นของ AMD" นั่นหมายความว่าจะมีเคอร์เนลรุ่นพิเศษสำหรับระบบปฏิบัติการ Ubuntu ที่ทำงานบนเครื่องที่มีซีพียู AMD ให้โดย Canonical หรือไม่? :)
cl-netbox

16
ไม่เคอร์เนลตรวจพบสภาพอากาศ (ขณะบูตเครื่อง) ที่ทำงานบน CPU AMD และปิดใช้งานการแก้ไขหากเป็นเช่นนั้น @ cl-netbox
JonasCz - Reinstate Monica

1
ตามtheregister.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerabilityชิปเอเอ็มดีได้รับผลกระทบอย่างน้อยหนึ่งในหลากหลายของการโจมตีปีศาจ (สาขาการฉีดเป้าหมาย) ดังนั้นพวกเขาจะได้รับอาจจะมีประสิทธิภาพผลกระทบต่อเคอร์เนลอัปเดตในสัปดาห์นี้ เช่นกันถึงแม้ว่าพวกเขาจะไม่ได้รับการล่มสลายที่เหมาะสม
Dave Sherohman

1
เห็นได้ชัดว่าคุณสมบัตินี้อยู่ในสถาปัตยกรรม x64 แต่ไม่ได้อยู่ใน i386 / IA-32 เนื่องจากเหตุนี้แพตช์ไม่ส่งผลกระทบต่อ 32 บิตลินุกซ์ (ความปลอดภัย / Kconfig ต้องใช้ X86_64 เพื่อเปิดใช้งาน PAGE_TABLE_ISOLATION) ที่นำคำถามอื่นแม้ว่า เครื่อง x64 ที่ติดตั้งลินุกซ์ 32 บิตแล้วจะได้รับผลกระทบอะไรบ้าง ถ้าเป็นเช่นนั้นแล้วเครื่อง x64 รุ่นเก่าที่ถูก จำกัด โดยไบออสให้เรียกใช้คำสั่งแบบ 32 บิตเท่านั้น (เช่นเน็ตบุ๊กที่ใช้อะตอมแบบเก่า) พวกเขานั่งเป็ดเหรอ?
thePiGrepper

2
ก่อนที่ฉันจะเรียนรู้บางอย่างว่ามีการจู่โจมจาก JavaScript ฉันวางแผนที่จะใช้สิ่งนี้
โจชัว

35

UPDATE:ประเด็นที่ได้รับการจับคู่ของ monikers: การล่มสลายและอสุรกาย ฉันได้อัปเดตคำตอบด้วยข้อมูลใหม่แล้ว

มันจะเป็น patch kernel ในตอนแรก มันจะแสดงเป็นเวอร์ชันที่สูงกว่า มันจะถูกติดตั้งเพราะคุณได้linux-image-genericติดตั้งแล้ว นั่นคือสิ่งที่แพคเกจนั้นมีไว้สำหรับ linux-image-genericดังนั้นคุณสามารถลบ มันเป็นความคิดที่น่ากลัวและหายนะที่จะทำให้คุณต้องเจอกับความร้ายกาจทุกประเภทแต่คุณสามารถทำได้ มีอาจจะยังเป็นเฟิร์มแว CPU ที่เป็นไปตามในlinux-firmwareการแก้ไขปัญหาในซีพียู นั่นเป็นเรื่องจริงของ Intel

วิธีการที่คุณทำตามเพื่อยกเลิกการแก้ไขไม่เกี่ยวข้อง คุณกำลังขอให้ข้ามบางสิ่งบางอย่างที่คุณรู้ว่าไม่มีผลกระทบที่แท้จริงของข้อบกพร่องหรือค่าใช้จ่ายในการแก้ไข

  • ข้อผิดพลาดเป็นสิ่งที่น่ารังเกียจ CVE ที่รายงานคือการอ่านหน่วยความจำข้ามกระบวนการ กระบวนการใด ๆ ที่สามารถอ่านหน่วยความจำของกระบวนการอื่น ๆ ได้ ใส่รหัสผ่านมากทั้ง สิ่งนี้น่าจะมีผลกับกล่องทรายด้วยเช่นกัน มันเป็นวันแรกและฉันคาดหวังให้ผู้คนผลักดันเรื่องนี้ต่อไปทั้งในเรื่องผลกระทบและการเข้าถึง

  • โอกาสที่ผลประกอบการจะออกมาไม่ใหญ่เท่าที่คุณกังวล ผู้คนจำนวนมากมุ่งเน้นไปที่ประสิทธิภาพของระบบย่อยตามทฤษฎีหรือกรณีที่แย่ที่สุด ฐานข้อมูลที่แคชไม่ดีคือสิ่งที่จะได้รับผลกระทบมากที่สุด การเล่นเกมและสิ่งต่าง ๆ ในแต่ละวันมีแนวโน้มว่าจะไม่เปลี่ยนแปลงอย่างแน่นอน

แม้ตอนนี้เราสามารถเห็นได้ว่าข้อผิดพลาดจริงคืออะไรมันเร็วเกินไปที่จะบอกว่าผลกระทบคืออะไร ในขณะที่การเข้าถึง RAM แบบอ่านฟรีไม่ดีมีสิ่งที่เลวร้ายกว่าอยู่ที่นั่น ฉันยังทดสอบเพื่อดูว่าการแก้ไขนั้นส่งผลกระทบต่อคุณเพียงใด (กับสิ่งที่คุณทำ)

อย่าเริ่มต้นโหลด GRUB ของคุณล่วงหน้าด้วยการตั้งค่าสถานะหรือลบแพ็คเกจ Kernel meta


7
สิ่งที่คุณต้องทำคือเพิ่มpti=offไปยังบรรทัดคำสั่งเคอร์เนล (ในด้วง) เพื่อปิดการใช้งานแพทช์
JonasCz - Reinstate Monica

3
@ JonasCz ที่แสดงความคิดเห็น - หากเป็นจริงฉันไม่รู้ - ดูเหมือนว่ามันจะคุ้มค่ากับคำตอบที่แยกจากกันโดยเฉพาะถ้าคุณสามารถสำรองข้อมูลด้วยการอ้างอิง
ผู้บัญชาการไบต์

IMHO nopti เป็นตัวเลือกที่ดีกว่า
Panther

3
@Oli ฉันเห็นด้วยกับคำแนะนำนั้นและได้ให้ตัวเองที่อื่น ด้วยที่กล่าวว่าคำถามคือวิธีการปิดการใช้งานคุณลักษณะด้านความปลอดภัยใหม่นี้ถ้าต้องการและ IMO, nopti เป็นตัวเลือกที่จะทำ
Panther

1
ใช่มันทำให้กิจกรรมของระบบของฉันช้าลง 99% เมื่อใช้เครื่องเสมือน การคัดลอกไฟล์จากโฮสต์ไปยังเครื่องเสมือนที่ใช้เวลา 2-3 วินาทีในขณะนี้ใช้เวลามากกว่าหนึ่งนาที
rboy

14

แม้ว่าฉันจะไม่แนะนำสิ่งนี้ แต่ก็เป็นไปได้ที่จะปิดใช้งาน PTI

ด้วยพารามิเตอร์บรรทัดคำสั่งเคอร์เนลnopti

ตามPhoronix

การทำเช่นนี้ผนวกnoptiกับสตริงที่อยู่ถัดจากบรรทัดที่เริ่มต้นด้วยGRUB_CMDLINE_LINUX_DEFAULTใน/etc/default/grubแล้ววิ่ง

sudo update-grub

ตามมาด้วยการรีสตาร์ท

ข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์การบูตเคอร์เนลเพื่อปิดใช้งานคุณลักษณะด้านความปลอดภัยที่เกี่ยวข้องกับประสิทธิภาพโปรดดูที่: Spectre & Meltdown MitigationControls ใน Ubuntu Wiki


1
ความแตกต่างระหว่าง kernel boot params noptiและpti = offคืออะไร?
niutech

@ Niutech ไม่มีความแตกต่างสำหรับการพิสูจน์คุณสามารถดูที่นี่
nixpower

wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown/ …อธิบาย "nopti" และอื่น ๆ ..
alfonx


3

วิธีที่ง่ายที่สุด: ยกเลิกการเลือกในการกำหนดค่าเคอร์เนล

-> ตัวเลือกความปลอดภัย

[] ลบการแมปเคอร์เนลในโหมดผู้ใช้

จากนั้นคอมไพล์เคอร์เนลใหม่


1
ยินดีต้อนรับสู่ถาม Ubuntu! ในรูปแบบปัจจุบันคำตอบของคุณไม่ดีเท่าที่ควร คุณสามารถตรวจสอบวิธีการเขียนคำตอบที่ดีและคู่มือสไตล์สำหรับคำถามและคำตอบ - จากรีวิว
J. Starnes

2
Sadly J. Starnes พูดถูก คุณไม่ได้รวบรวมเคอร์เนลของคุณเองอีกต่อไปยกเว้นเป็นทางเลือกสุดท้าย
โจชัว

นั่นเป็นการเปลี่ยนแปลงเล็กน้อยสำหรับตัวเลือกเคอร์เนล แต่ IMO noptiน่าจะเป็นตัวเลือกที่ดีกว่า / ง่ายกว่าสำหรับส่วนใหญ่
Panther
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.