การแก้ไขต่างๆ ที่เสนอจนถึงปัจจุบันเพียงแก้ไขช่องโหว่ของโปรเซสเซอร์ของเราอย่างไม่สมบูรณ์เท่านั้น นี่คือภาพรวมของแพตช์ต่างๆ ที่มีให้และประสิทธิผล (หรือไม่)
สามเดือนหลังจากการเปิดเผยข้อบกพร่องดังกึกก้องการล่มสลายและ Spectreในที่สุดเราก็ดูเหมือนจะเห็นปลายอุโมงค์แล้ว เมื่อไม่กี่วันที่ผ่านมา Microsoft ได้ประกาศการกระจายแพทช์ฮาร์ดแวร์สำหรับ Spectre โดยตรงจากแค็ตตาล็อก Microsoft Update ไม่ว่าจะเป็นพีซีรุ่นใดก็ตาม ตราบใดที่มีโปรเซสเซอร์ Intel โล่งใจมาก ผู้ใช้จะไม่หลงทางในเขาวงกตของหน้าสนับสนุนของผู้ผลิตอีกต่อไป ซึ่งเป็นสาเหตุสำคัญของความสับสน
แต่สถานการณ์ได้รับการแก้ไขแล้วจริงหรือ? ไม่ว่าในกรณีใด หน้า Meltdown จะถูกเปิดใช้งานอย่างแน่นอน เช่นเดียวกับบน Windows เช่นเดียวกับ macOS หรือ Linux« เดอะปัญหาได้รับการแก้ไขแล้ว การโจมตีสามารถตอบโต้ได้ในระดับระบบปฏิบัติการ จึงไม่มีความเสี่ยงอีกต่อไปตราบใดที่ระบบมีความทันสมัย”Clémentine Maurice นักวิจัยของ CNRS และทำงานที่ IRISA ในเรื่องความปลอดภัยของสถาปัตยกรรมไมโครอธิบาย
การดำเนินการแบบคาดการณ์ จุดอ่อนของโปรเซสเซอร์
ในด้าน Spectre ไม่ใช่เรื่องง่ายนัก เนื่องจากปัญหาอยู่ที่การทำงานของโปรเซสเซอร์ในระดับลึกของการดำเนินการที่คาดการณ์ได้ เมื่อโปรแกรมทำงานและรวมลูปหรือเธรดของการดำเนินการตามเงื่อนไขลอจิคัล โปรเซสเซอร์ปัจจุบันจะไม่รอให้ดำเนินการจริงๆ โดยจะคาดการณ์ผลลัพธ์และดำเนินการตามคำสั่งที่ดูเหมือนเป็นไปได้มากที่สุด ซึ่งจะช่วยประหยัด มีเวลามาก
แต่การโจมตีของ Spectre แสดงให้เห็นว่ามีความเป็นไปได้ที่จะมีอิทธิพลต่อกลไกการคาดหวังนี้ ผู้โจมตีสามารถหลอกให้โปรเซสเซอร์ดำเนินการสาขาที่ไม่ควรดำเนินการ จากนั้นจะสามารถเดาข้อมูลบางอย่างโดยอ้อมผ่านช่องทางเสริม โดยเฉพาะอย่างยิ่งโดยการวัดเวลาการเข้าถึงหน่วยความจำ การโจมตีของ Spectre มี 2 รูปแบบตรวจสอบขอบเขตบายพาส(CVE-2017-5753) และการฉีดเป้าหมายสาขา(CVE-2017-5715) ขึ้นอยู่กับประเภทเกลียวเป้าหมาย ด้านล่างนี้เป็นตัวอย่างโค้ดสองตัวอย่างที่นำเสนอเมื่อเดือนมกราคมปีที่แล้วนักวิจัยจากมหาวิทยาลัยเทคนิคแห่งกราซซึ่งเป็นหนึ่งในทีมที่ค้นพบ Meltdown และ Spectre
ไม่สามารถลบกลไกการคาดหวังนี้โดยสิ้นเชิงได้“ประสิทธิภาพจะลดลงอย่างหายนะ”เน้นย้ำถึง Clémentine Maurice ตัวอย่างเช่น นักพัฒนาได้สร้างไฟล์เวอร์ชันของเกม Doomโดยไม่มีการดำเนินการตามการคาดการณ์ใดๆ แทนที่จะมี 30 เฟรมต่อวินาที เราจะได้หนึ่งเฟรม... ทุก ๆ เจ็ดชั่วโมง เราจึงต้องหาแนวทางที่ละเอียดอ่อนกว่านี้
จนถึงขณะนี้ได้มีการเสนอวิธีแก้ปัญหาหลายประการแล้ว ในด้านซอฟต์แวร์ เป็นไปได้ที่จะวางสิ่งกีดขวางบางอย่างไว้ในโค้ด ซึ่งทำให้การคาดการณ์ถูกบล็อกในช่วงเวลาสำคัญบางช่วงได้ ในบางกรณี สามารถใช้คำแนะนำง่ายๆ (“LFENCE”) ได้ ในกรณีอื่นๆ เราสามารถเพิ่ม "retpolines" ซึ่งเป็นโครงสร้างที่ค่อนข้างแปลกประหลาดที่สร้างโดย Google ซึ่งทำให้การทำนายสาขาเป็นกลางโดยการดักจับมันด้วยการวนซ้ำไม่สิ้นสุด
อุปสรรคเหล่านี้ถูกรวมเข้าด้วยกันผ่านทางคอมไพเลอร์โค้ด ซึ่งบางครั้งสามารถวางได้โดยอัตโนมัติด้วยซ้ำ“ปัญหาคือคอมไพลเลอร์ต้องรู้ว่าจะวางไว้ตรงไหนซึ่งไม่ใช่เรื่องง่าย กฎเกณฑ์ที่นำมาใช้ไม่ดีสามารถหลีกเลี่ยงได้ »Michael Schwarz นักศึกษาปริญญาเอกจากมหาวิทยาลัยเทคนิคแห่งกราซ และสมาชิกของหนึ่งในทีมนักวิจัยที่เปิดเผย Meltdown และ Spectre อธิบาย นักพัฒนายังสามารถเพิ่มอุปสรรคเหล่านี้ด้วยตนเองได้ แต่จะถือว่าเขาเข้าใจถึงผลกระทบของข้อบกพร่อง Spectre ในโค้ดของเขาอย่างถ่องแท้ ซึ่งไม่ชัดเจนจริงๆ
ไมโครโค้ดของ Intel มีเวลาอีกนานที่จะมาถึง
ในส่วนของ Intel นั้นได้ทำงานมาหลายเดือนแล้วในแพทช์ที่อัพเดตไมโครโค้ดของโปรเซสเซอร์ มีเทคนิคหลายอย่างที่ใช้งานได้: Indirect Branch Restricted Speculation (IBRS), Indirect Branch Predictor Barrier (IBPB), Single Thread Indirect Branch Predictors (STIBP)“แนวคิดก็คือเพื่อให้แน่ใจว่าโปรเซสเซอร์จะลืมสิ่งที่เรียนรู้ไป และผู้โจมตีไม่สามารถดักจับได้อีกต่อไป”ระบุ Michael Schwarz ปัญหาคือเทคนิคเหล่านี้ใช้ได้กับตัวแปร Branch Target Injection เท่านั้น
นอกจากนี้เฉพาะไมโครโค้ดสำหรับโปรเซสเซอร์ Intel รุ่นที่หก(สกายเลค) มีอยู่จนกระทั่งเมื่อไม่นานมานี้ ไมโครโค้ดสำหรับรุ่น Haswell และ Broadwell มีทำให้เกิดการพังทลายและถูกถอนตัวออกไปในนาทีสุดท้าย ข่าวดีก็คือว่า Intel มีความก้าวหน้าไปมาก Brian Krzanich หัวหน้าของ Intel เพิ่งประกาศว่าตระกูลโปรเซสเซอร์รุ่นล่าสุดทั้งหมด (ในช่วง 5 ปีที่ผ่านมา) สามารถได้รับประโยชน์จากการป้องกันซอฟต์แวร์ที่เชื่อถือได้- นอกจากนี้ยังช่วยให้แน่ใจว่าการป้องกันระดับฮาร์ดแวร์จะถูกนำไปใช้กับโปรเซสเซอร์รุ่นใหม่ สำหรับ Meltdown และสำหรับหนึ่งในตัวแปร Spectre อื่น ๆ (ตรวจสอบขอบเขตบายพาส)จะต้องได้รับการบรรเทาผลกระทบด้วยวิธีซอฟต์แวร์ต่อไปในตอนนี้
พื้นที่สีเทาอื่นๆ ยังคงมีอยู่“แพตช์ซอฟต์แวร์ทั้งหมดพยายามป้องกันการโจมตีที่มาจากพื้นที่ผู้ใช้ไปยังพื้นที่เคอร์เนล กรณีการโจมตีระหว่างพื้นที่ผู้ใช้ไม่ได้รับการแก้ไข »ไมเคิล ชวาร์ซ กล่าวต่อ ยังมีข้อสงสัยเกี่ยวกับการโจมตีระยะไกลจากเบราว์เซอร์อีกด้วย เพื่อป้องกันไม่ให้ผู้โจมตีสามารถโจมตี Spectre ได้ ผู้เผยแพร่จึงลดความแม่นยำของฟังก์ชันการวัดเวลาใน Javascript API ของตน“ปัญหาก็คือการทำให้ฟังก์ชันการวัดเวลาด้วยมือไม่ใช่เรื่องยากนัก”, ขีดเส้นใต้ผู้วิจัย.
สำหรับตอนนี้เราต้องอยู่กับมัน
กล่าวโดยสรุป Spectre ถูกผนึกไว้อย่างไม่สมบูรณ์ในขณะนี้ แม้ว่าจะมีงานหลายอย่างที่ทำไปแล้วก็ตาม ดูเหมือนว่ายังไม่มีการสำรวจศักยภาพของข้อบกพร่องนี้อย่างเต็มที่ นับตั้งแต่มีการเปิดเผย มีการเปิดเผยอีกสองสายพันธุ์สเปคเตอร์ไพรม์etSgxPectre- ตามที่ Michael Schwarz กล่าว พวกเขาไม่ได้ตั้งคำถามเกี่ยวกับการแก้ไขที่พัฒนาขึ้นจนถึงตอนนี้ ซึ่งน่ามั่นใจ แต่เรารู้สึกว่าบริเวณนี้ยังคงมีสภาพคล่องมากและปัญหาก็ยังคงอยู่“ในระยะสั้น เราจะต้องเรียนรู้ที่จะอยู่กับข้อบกพร่องนี้ และตรวจสอบให้แน่ใจว่าเราได้ลดความน่าจะเป็นของการโจมตี อย่างไรก็ตาม ฉันหวังว่าการวิจัยในด้านโปรเซสเซอร์จะดำเนินต่อไป และวันหนึ่งข้อบกพร่องนี้จะถูกกำจัดไปโดยสิ้นเชิง”, เอสไทม์ ไมเคิล ชวาร์ซ
โชคดีที่การโจมตี Spectre ไม่ใช่เรื่องง่าย ต่างจาก Meltdown ตรงที่ขึ้นอยู่กับการกำหนดค่าฮาร์ดแวร์และซอฟต์แวร์ของคอมพิวเตอร์ ซึ่งไม่รวมการแสวงหาประโยชน์จำนวนมหาศาล มีเพียงแฮ็กเกอร์ที่มีความสามารถเท่านั้นที่สามารถใช้ประโยชน์จากมันเพื่อการโจมตีแบบกำหนดเป้าหมายได้ แต่เราต้องไม่คิดว่ามันเป็นไปไม่ได้“นักศึกษาวิทยาการคอมพิวเตอร์ในระดับปริญญาตรีก็สามารถทำได้”, โซลิกน์ ไมเคิล ชวาร์ซ
🔴 เพื่อไม่ให้พลาดข่าวสารจาก 01net ติดตามเราได้ที่Google ข่าวสารetวอทส์แอพพ์-