ไม่
การโจมตีตามที่อธิบายไว้ในตอนแรกไม่เคยเป็นภัยคุกคาม ในขณะที่คอมไพเลอร์สามารถทำสิ่งนี้ในทางทฤษฎีจริง ๆ แล้วการดึงออกจากการโจมตีจะต้องเขียนโปรแกรมคอมไพเลอร์
- รับรู้เมื่อซอร์สโค้ดที่คอมไพล์แล้วเป็นคอมไพเลอร์และ
- หาวิธีแก้ไขซอร์สโค้ดโดยพลการเพื่อทำการแฮ็คเข้าไป
สิ่งนี้ทำให้ทราบว่าคอมไพเลอร์ทำงานอย่างไรจากซอร์สโค้ดเพื่อที่จะสามารถแก้ไขได้โดยไม่ต้องแตก
ตัวอย่างเช่นสมมติว่ารูปแบบการเชื่อมโยงเก็บความยาวข้อมูลหรือออฟเซ็ตของรหัสเครื่องที่คอมไพล์ไว้ที่ใดที่หนึ่งในปฏิบัติการ คอมไพเลอร์จะต้องคิดออกเองซึ่งสิ่งเหล่านี้จำเป็นต้องได้รับการปรับปรุงและที่ไหนเมื่อใส่น้ำหนักบรรทุกเอาเปรียบ คอมไพเลอร์รุ่นต่อมา (เวอร์ชันไม่มีพิษภัย) สามารถเปลี่ยนแปลงรูปแบบนี้โดยพลการดังนั้นโค้ดที่ใช้ประโยชน์จะต้องเข้าใจแนวคิดเหล่านี้อย่างมีประสิทธิภาพ
นี่คือการเขียนโปรแกรมด้วยตนเองระดับสูงปัญหา AI ที่ยาก (ล่าสุดที่ฉันตรวจสอบสถานะของศิลปะคือการสร้างรหัสที่กำหนดตามประเภทของมัน) ดู: มนุษย์น้อยคนสามารถทำได้ คุณจะต้องเรียนรู้ภาษาการเขียนโปรแกรมและทำความเข้าใจกับรหัสฐานก่อน
แม้ว่าปัญหา AI จะได้รับการแก้ไขผู้คนจะสังเกตเห็นว่าการรวบรวมคอมไพเลอร์เล็ก ๆ ของพวกเขาส่งผลให้เป็นไบนารี่กับห้องสมุด AI ขนาดใหญ่ที่เชื่อมโยงเข้าด้วยกัน
การโจมตีแบบอะนาล็อก: ความไว้วางใจในการบู๊ต
อย่างไรก็ตามการวางแนวทั่วไปของการโจมตีนั้นมีความเกี่ยวข้อง ปัญหาพื้นฐานคือห่วงโซ่ความไว้วางใจของคุณต้องเริ่มต้นที่ไหนสักแห่งและในหลาย ๆ โดเมนต้นกำเนิดของมันอาจทำลายสายโซ่ทั้งหมดในวิธีที่ยากต่อการตรวจจับ
ตัวอย่างที่สามารถดึงออกมาได้อย่างง่ายดายในชีวิตจริง
ระบบปฏิบัติการของคุณเช่น Ubuntu Linux รับประกันความปลอดภัย (ความสมบูรณ์) ของการอัปเดตโดยการตรวจสอบแพ็คเกจการดาวน์โหลดที่ดาวน์โหลดกับคีย์การลงนามของที่เก็บ (โดยใช้การเข้ารหัสคีย์สาธารณะ) แต่นี่เป็นการรับประกันความถูกต้องของการอัปเดตเท่านั้นหากคุณสามารถพิสูจน์ได้ว่าคีย์การเซ็นชื่อนั้นเป็นของแหล่งที่ถูกต้องตามกฎหมาย
คุณได้รับกุญแจลงนามที่ไหน เมื่อคุณดาวน์โหลดการกระจายระบบปฏิบัติการครั้งแรก
คุณต้องเชื่อมั่นว่าแหล่งที่มาของห่วงโซ่ความเชื่อใจของคุณซึ่งเป็นกุญแจสำคัญในการลงนามนี้ไม่ใช่ความชั่วร้าย
ทุกคนที่สามารถเชื่อมต่ออินเทอร์เน็ตMITMระหว่างคุณกับเซิร์ฟเวอร์ดาวน์โหลด Ubuntu ซึ่งอาจเป็น ISP ของคุณรัฐบาลที่ควบคุมการเข้าถึงอินเทอร์เน็ต (เช่นจีน) หรือผู้ให้บริการโฮสต์ของ Ubuntu สามารถขโมยกระบวนการนี้ได้:
- ตรวจสอบว่าคุณกำลังดาวน์โหลดอิมเมจซีดีของ Ubuntu ง่ายมาก: ดูว่าคำขอจะไปที่ Ubuntu ที่เปิดเผยในรายการ (ต่อสาธารณชน) แล้วถามชื่อไฟล์ของอิมเมจ ISO
- ให้บริการคำขอจากเซิร์ฟเวอร์ของพวกเขาให้ภาพอิมเมจที่มีรหัสกุญแจสาธารณะของผู้โจมตีและตำแหน่งที่เก็บข้อมูลแทนอูบุนตู
จากนั้นคุณจะได้รับการอัปเดตของคุณอย่างปลอดภัยจากเซิร์ฟเวอร์ของผู้โจมตี การอัปเดตทำงานเป็นรูทดังนั้นผู้โจมตีจึงมีการควบคุมเต็มรูปแบบ
คุณสามารถป้องกันการโจมตีโดยทำให้แน่ใจว่าของจริงเป็นของแท้ แต่สิ่งนี้ต้องการให้คุณตรวจสอบความถูกต้องของอิมเมจซีดีที่ดาวน์โหลดโดยใช้แฮช (มีเพียงไม่กี่คนที่ทำสิ่งนี้ ) - และแฮชนั้นจะต้องดาวน์โหลดอย่างปลอดภัยเช่นผ่าน HTTPS และหากผู้โจมตีของคุณสามารถเพิ่มใบรับรองบนคอมพิวเตอร์ของคุณ (พบได้ทั่วไปในสภาพแวดล้อมขององค์กร) หรือควบคุมผู้ออกใบรับรอง (เช่นจีน) HTTPS ก็ไม่ให้การป้องกันใด ๆ