NetSpectre Attack ใหม่ไม่ต้องการให้เหยื่อดาวน์โหลดหรือเรียกใช้โค้ดที่เป็นอันตราย

ความปลอดภัย / NetSpectre Attack ใหม่ไม่ต้องการให้เหยื่อดาวน์โหลดหรือเรียกใช้โค้ดที่เป็นอันตราย

NetSpectre Bombards พอร์ตเครื่องเพื่อรับรายการ

อ่าน 4 นาที

การโจมตีด้วย CPU ระดับ Spectre ใหม่ได้รับความสนใจจากนักวิชาการเมื่อไม่นานมานี้พวกเขาได้เปิดตัวงานวิจัยชื่อ“ NetSpectre: Read Arbitrary Memory over Network” ซึ่งจะกล่าวถึงรายละเอียดเชิงลึกเกี่ยวกับวิธีการทำงานของการโจมตี CPU ระดับนี้



สิ่งที่ทำให้การโจมตี CPU Spectre ใหม่น่ากลัวเล็กน้อยก็คือ ไม่ต้องการ ผู้โจมตีจะหลอกเหยื่อให้ดาวน์โหลดและเรียกใช้สคริปต์ที่เป็นอันตรายบนเครื่องของตนหรือแม้แต่เข้าถึงเว็บไซต์ที่เรียกใช้ JavaScript ที่เป็นอันตรายในเบราว์เซอร์ของผู้ใช้

NetSpectre จะระดมยิงพอร์ตเครือข่ายของเครื่องจนกว่าจะพบวิธีที่จะบรรลุเป้าหมาย



“ การโจมตีของ Spectre ทำให้เหยื่อดำเนินการโดยไม่ตั้งใจซึ่งจะไม่เกิดขึ้นในระหว่างการประมวลผลคำสั่งของโปรแกรมตามลำดับอย่างเคร่งครัดและทำให้ข้อมูลที่เป็นความลับของเหยื่อรั่วไหลผ่านช่องทางแอบแฝงไปยังผู้โจมตี”



NetSpectre ไม่ได้มาโดยปราศจากข้อบกพร่องของตัวเองอย่างไรก็ตาม มีความเร็วในการกรองที่ช้าอย่างไม่น่าเชื่อประมาณ 15 บิตต่อชั่วโมงสำหรับการโจมตีผ่านการเชื่อมต่อเครือข่ายและกำหนดเป้าหมายข้อมูลที่เก็บไว้ในแคชของ CPU



ในเอกสารการวิจัยนักวิชาการสามารถบรรลุได้สูงสุด 60 บิต / ชั่วโมงด้วยรูปแบบพิเศษของ NetSpectre ที่กำหนดเป้าหมายข้อมูลที่ประมวลผลผ่านโมดูล AVX2 ของ CPU ซึ่งเฉพาะสำหรับ CPU ของ Intel

ไม่ว่าในกรณีใด NetSpectre ถือว่าช้าเกินไปที่จะมีประโยชน์สำหรับผู้โจมตีซึ่งหมายความว่า NetSpectre เป็นเพียง ตามทฤษฎี ภัยคุกคามไม่ใช่สิ่งที่ บริษัท ต่างๆควรหลบเลี่ยง แค่ยัง . อย่างไรก็ตามเมื่อเทคโนโลยีก้าวหน้าขึ้นความเร็วในการกรองจะเพิ่มขึ้นอย่างไม่ต้องสงสัยจากนั้นเราก็มีคลาสใหม่ที่ใช้งานได้และง่ายอย่างเหลือเชื่อในการโจมตี CPU ที่ต้องกังวล

การโจมตี NetSpectre ใหม่เกี่ยวข้องกับช่องโหว่ Spectre V1 (CVE-2017-5753) ที่นักวิจัยของ Google เปิดเผยเมื่อต้นปีนี้ (2018) ซึ่งหมายความว่าซีพียูทั้งหมดที่อาจได้รับผลกระทบจาก Spectre V1 นั้นเชื่อว่าเป็น NetSpectre หากมีการปรับใช้กับ OS และเฟิร์มแวร์ CPU ที่เหมาะสม



ขณะนี้มีรูปแบบการโจมตีสองแบบสำหรับ NetSpectre: การดึงข้อมูลจากระบบเป้าหมายและทำลาย ASLR (Address Space Layout Randomisation) จากระยะไกลบนระบบเป้าหมาย

ห่วงโซ่ของเหตุการณ์สำหรับการโจมตีประเภทแรกเป็นดังนี้:

  1. ทำนายผิดตัวทำนายสาขา
  2. รีเซ็ตสถานะขององค์ประกอบสถาปัตยกรรมขนาดเล็ก
  3. รั่วไหลเล็กน้อยไปที่องค์ประกอบสถาปัตยกรรมขนาดเล็ก
  4. เปิดเผยสถานะขององค์ประกอบสถาปัตยกรรมขนาดเล็กไปยังเครือข่าย
  • ในขั้นตอนที่ 1 ผู้โจมตีเข้าใจผิดว่าตัวทำนายสาขาของเหยื่อเรียกใช้การโจมตีของ Spectre หากต้องการใช้ตัวทำนายสาขาในทางที่ผิดผู้โจมตีจะใช้ประโยชน์จากแกดเจ็ตรั่วด้วยดัชนีที่ถูกต้อง ดัชนีที่ถูกต้องช่วยให้มั่นใจได้ว่าตัวทำนายสาขาเรียนรู้ที่จะใช้สาขาเสมอนั่นคือตัวทำนายสาขาคาดเดาว่าเงื่อนไขนั้นเป็นจริง โปรดทราบว่าขั้นตอนนี้ขึ้นอยู่กับอุปกรณ์รั่วเท่านั้น ไม่มีข้อเสนอแนะใด ๆ ต่อผู้โจมตีดังนั้นจึงไม่จำเป็นต้องรีเซ็ตหรือส่งสถานะสถาปัตยกรรมจุลภาค
  • ในขั้นตอนที่ 2 ผู้โจมตีต้องรีเซ็ตสถานะสถาปัตยกรรมขนาดเล็กเพื่อเปิดใช้งานการเข้ารหัสบิตที่รั่วไหลโดยใช้องค์ประกอบสถาปัตยกรรมขนาดเล็ก ขั้นตอนนี้ขึ้นอยู่กับองค์ประกอบจุลภาคที่ใช้เป็นอย่างมากเช่นเมื่อใช้ประโยชน์จากแคชผู้โจมตีจะดาวน์โหลดไฟล์ขนาดใหญ่จากเหยื่อ หากใช้ AVX2 ผู้โจมตีจะรอมากกว่า 1 มิลลิวินาที หลังจากขั้นตอนนี้ข้อกำหนดทั้งหมดพอใจที่จะรั่วไหลเล็กน้อยจากเหยื่อ
  • ในขั้นตอนที่ 3 ผู้โจมตีจะใช้ช่องโหว่ของ Spectre เพื่อรั่วไหลจากเหยื่อเพียงเล็กน้อย เนื่องจากตัวทำนายสาขาผิดพลาดในขั้นตอนที่ 1 การจัดเตรียมดัชนีนอกขอบเขตให้กับแกดเจ็ตการรั่วไหลจะเรียกใช้เส้นทางในขอบเขตและแก้ไของค์ประกอบจุลภาคกล่าวคือบิตถูกเข้ารหัสในองค์ประกอบสถาปัตยกรรมขนาดเล็ก
  • ในขั้นตอนที่ 4 ผู้โจมตีต้องส่งข้อมูลที่เข้ารหัสผ่านเครือข่าย ขั้นตอนนี้สอดคล้องกับขั้นตอนที่สองของการโจมตี Spectre ดั้งเดิม ผู้โจมตีจะส่งแพ็กเก็ตเครือข่ายซึ่งจัดการโดยแกดเจ็ตการส่งและวัดระยะเวลาจากการส่งแพ็กเก็ตจนกว่าการตอบกลับจะมาถึง

วิธีโจมตี # 2: ทำลาย ASLR จากระยะไกล

  1. ทำนายผิดตัวทำนายสาขา
  2. เข้าถึงดัชนีนอกขอบเขตเพื่อแคชตำแหน่งหน่วยความจำ (ที่รู้จัก)
  3. วัดเวลาดำเนินการของฟังก์ชันผ่านเครือข่ายเพื่ออนุมานว่าการเข้าถึงนอกขอบเขตแคชเป็นส่วนหนึ่งของฟังก์ชันหรือไม่

มาตรการรับมือของอสุรกาย

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

เนื่องจาก NetSpectre เป็นการโจมตีบนเครือข่ายจึงไม่สามารถป้องกันได้โดยการลด Spectre เท่านั้น แต่ยังใช้มาตรการตอบโต้บนเลเยอร์เครือข่ายด้วย การโจมตี NetSpectre เล็กน้อยสามารถตรวจพบได้ง่ายโดยการป้องกัน DDoS เนื่องจากแพ็กเก็ตที่เหมือนกันหลายพันแพ็กเก็ตถูกส่งมาจากแหล่งเดียวกัน

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

แม้ว่าการโจมตีจะไม่ได้รับการป้องกันในทางทฤษฎี แต่ในบางจุดการโจมตีก็ไม่สามารถทำได้เนื่องจากเวลาที่ต้องใช้ในการรั่วไหลจะเพิ่มขึ้นอย่างมาก อีกวิธีหนึ่งในการลด NetSpectre คือการเพิ่มเสียงรบกวนลงในเวลาแฝงของเครือข่าย เนื่องจากจำนวนการวัดขึ้นอยู่กับความแปรปรวนของเวลาแฝงของเครือข่ายเสียงรบกวนเพิ่มเติมจึงต้องการให้ผู้โจมตีทำการวัดเพิ่มเติม ดังนั้นหากความแปรปรวนของเวลาแฝงของเครือข่ายสูงพอการโจมตีของ NetSpectre จะไม่สามารถทำได้เนื่องจากต้องมีการวัดจำนวนมาก