- คำเตือนสปอยล์: "ได้"
- หัวข้อ: เมื่อไม่มีบั๊ก ก็ต้องใช้วิธีที่สร้างสรรค์ และการฉีดข้อบกพร่องให้ฮาร์ดแวร์อาจเป็นคำตอบ ซึ่งรวมถึงการทำให้ข้อมูลควบคุมของซอฟต์แวร์เสียหาย, power glitching, clock glitching, electromagnetic pulse และเลเซอร์
- การฉีดข้อบกพร่องให้ฮาร์ดแวร์: โดยทั่วไปต้องใช้อุปกรณ์ราคาแพง แต่มีวิธีประหยัด เช่น ใช้ตัวจุดเตา BBQ แบบ piezoelectric ร่วมกับตัวเหนี่ยวนำเพื่อทำเป็นเครื่องมือ electromagnetic fault injection (EMFI)
เป้าหมายการทดสอบ
- อุปกรณ์: โน้ตบุ๊ก Samsung S3520, CPU Intel i3-2310M, RAM DDR3 1GB
- เป้าหมาย: เขียน local privilege escalation exploit ที่อาศัยข้อบกพร่องของฮาร์ดแวร์
- วิธีการ: ฉีดข้อบกพร่องไปที่หนึ่งในขา DQ ของบัส DDR เพื่อทำให้เกิดข้อผิดพลาดในหน่วยความจำ
Bit flip exploit ใน CPython
- เป้าหมาย: เขียน exploit สำหรับ "หลบหนี sandbox" ใน CPython
- กลยุทธ์: สร้างโครงสร้าง bytearray ปลอมภายในอ็อบเจ็กต์ bytes แล้วทำให้ CPython ส่งต่อการอ้างอิงไปยังอ็อบเจ็กต์ปลอมนั้น
Bit flip exploit บน Linux
- เป้าหมาย: ได้สิทธิ์ root จากผู้ใช้ Linux ที่ไม่มีสิทธิ์พิเศษ
- แนวคิดหลัก: memory caching, virtual memory และ page table, translation lookaside buffer (TLB)
- กลยุทธ์: แมป page table เข้ากับหน่วยความจำที่ผู้ใช้เข้าถึงได้ เพื่อให้สามารถเข้าถึงหน่วยความจำกายภาพใดก็ได้
การใช้งานจริง
- การประยุกต์ใช้: ใช้ EMFI ทำ Windows LPE เพื่อช่วยให้เกมเมอร์ยึดการควบคุมพีซีกลับคืนมาได้
- ความเป็นไปได้ในอนาคต: อาจติดตั้ง RP2040 บน "gaming RAM" เพื่อทำ exploit แบบอัตโนมัติได้
สรุปโดย GN⁺
- บทความนี้อธิบายวิธีสำรวจช่องโหว่ด้านความปลอดภัยของซอฟต์แวร์และฮาร์ดแวร์ผ่านการฉีดข้อบกพร่องให้ฮาร์ดแวร์แบบต้นทุนต่ำ
- การฉีดข้อบกพร่องให้ฮาร์ดแวร์สามารถทำได้โดยไม่ต้องใช้อุปกรณ์ราคาแพง และแสดงให้เห็นถึงความเป็นไปได้ในการข้ามขอบเขตความปลอดภัยหลายรูปแบบ
- บทความนี้ช่วยให้เข้าใจปฏิสัมพันธ์ระหว่างฮาร์ดแวร์กับซอฟต์แวร์ และอาจเป็นประโยชน์ต่อนักวิจัยด้านความปลอดภัยหรือแฮ็กเกอร์
- โปรเจ็กต์ที่มีลักษณะคล้ายกัน ได้แก่ เทคนิคการฉีดข้อบกพร่องในหน่วยความจำอย่าง Rowhammer
2 ความคิดเห็น
นึกถึงตอนถอดตัวจุดไฟออกจากไฟแช็กไปโกงเพิ่มเครดิตเหรียญในตู้เกมอาร์เคดเลย
ความเห็นจาก Hacker News
ได้แรงบันดาลใจมาจากการได้สิทธิ์ root บน Switch 2 และใช้การได้สิทธิ์ root บน Linux เป็น POC เป้าหมายคือการทวงคืนความเป็นเจ้าของฮาร์ดแวร์โดยไม่ทำลาย TPM หรือ anti-cheat ระดับ ring 0 ของเกม
ถ้าเข้าถึงเครื่องทางกายภาพได้ ก็สามารถแฟลช BIOS ใหม่หรือติดตั้ง backdoor ในไดรเวอร์ได้ แต่ถ้าดิสก์ถูกเข้ารหัส การแฮ็กแบบนี้ก็ทำไม่ได้
ตอนแรกนึกว่าเป็นโพสต์เกี่ยวกับใครสักคนที่ได้สิทธิ์ root บนไฟแช็กบุหรี่จริง ๆ พ่อแม่ของฉันมีเตาอบที่ได้รับซอฟต์แวร์อัปเดตเป็นประจำ เลยไม่ได้สงสัยว่าไฟแช็กบุหรี่จะฉลาดขึ้น
จุดประสงค์ของ "_" ใน "0x100_0000" คือไม่เปลี่ยนอะไรเลย ไม่มีผลต่อค่าตัวเลข
ทำให้นึกถึงการ exploit ตู้เกมอาร์เคดในซิดนีย์ช่วงยุค 80 และ 90 ซึ่งสามารถใช้ตัวจุดระเบิด piezoelectric เพื่อเพิ่มเครดิตในเกมได้
นี่คือคอนเทนต์แบบที่คาดหวังจะเห็นใน HN จริง ๆ พรสวรรค์ของบางคนน่าทึ่งมาก สงสัยว่าต้องใช้เวลานานแค่ไหนกว่าจะฝึกทักษะแบบนี้ได้
ไม่ใช่แค่ exploit ที่สนุกเท่านั้น แต่ยังเป็นบทเกริ่นนำสั้น ๆ ที่ยอดเยี่ยมเกี่ยวกับวิธีการทำงานของ CPU caching ด้วย สงสัยว่ามีใครจำเว็บไซต์ที่อธิบายว่าคอมพิวเตอร์ทำงานอย่างไรโดยเริ่มจาก logic gate ได้ไหม
"ต้องใช้เพียงตัวต้านทาน 15 โอห์มหนึ่งตัวกับสายไฟหนึ่งเส้นที่บัดกรีเข้ากับ DQ26 สายไฟจะทำหน้าที่เหมือนเสาอากาศและทุ่มสัญญาณรบกวน EM ที่อยู่ใกล้ลงบน data bus โดยตรง"
ฉันติดตามเขาใน Mastodon และโพสต์นั้นก็เจ๋งมาก มีวิดีโอบน Mastodon ที่แสดงการเข้าถึง root ด้วย