- เฟิร์มแวร์แบบกำหนดเอง ของ Flipper Zero ถูกยืนยันว่าสามารถ ทำให้ระบบรักษาความปลอดภัยรหัสหมุนของรถยนต์ไร้ความหมายได้โดยสิ้นเชิง
- การโจมตีนี้ แตกต่างจากวิธี RollJam แบบเดิม เพราะการดักจับสัญญาณเดียวของคีย์เดียวก็สามารถ จำลองฟังก์ชันปุ่มทั้งหมด ได้
- วิธีที่ใช้ในการโจมตีคือการทำ วิศวกรรมย้อนกลับลำดับ หรือการใช้การ Bruteforce จากรายชื่อรหัสขนาดใหญ่
- เฟิร์มแวร์ทำงานบนพื้นฐานหลักการ RollBack ตามการโจมตีที่เผยแพร่ในงานวิจัยล่าสุด
- รถยนต์ของผู้ผลิตหลายราย เช่น Chrysler, Ford, Hyundai ฯลฯ เป็นเป้าหมาย และ ไม่มีทางแก้ไขที่ง่าย
ช่องโหว่ความปลอดภัยรหัสหมุนผ่าน Flipper Zero
ไม่นานมานี้ YouTube channel Talking Sasquach แสดงการสาธิตว่า เฟิร์มแวร์แบบกำหนดเอง ที่ใช้ร่วมกับ Flipper Zero สามารถข้ามระบบ rolling code ที่ใช้ในรีโมตสตาร์ตของรถยนต์ได้
ความปลอดภัย rolling code กับวิธีโจมตีเดิม
- ระบบ rolling code ใช้อัลกอริทึมที่ ซิงโครไนซ์ ระหว่างตัวส่งสัญญาณ (คีย์) กับตัวรับสัญญาณ (รถ) เพื่อสร้างรหัสใช้งานครั้งเดียวใหม่ทุกครั้ง
- รูปแบบนี้ถูกนำมาใช้เพื่อป้องกันการโจมตีแบบ รีเพลย์ (replay) และการเข้าถึงโดยไม่ได้รับอนุญาต
- ในอดีตมีวิธี RollJam ที่ทำการ jam สัญญาณ รถเพื่อจับและนำสัญญาณกลับมาใช้ซ้ำ แต่การนำไปใช้จริงมีความท้าทายสูง
เทคนิคการโจมตีใหม่ที่เกิดขึ้น
- การโจมตีครั้งนี้สามารถจำลองการทำงานทั้งหมดของรีโมต เช่น ล็อก, ปลดล็อก และเปิดฝากระโปรงหลัง ได้เพียงแค่ดักจับสัญญาณของปุ่มเดียว
- การโจมตีนี้ทำได้เฉพาะด้วย Flipper Zero โดยไม่ต้องมีการรบกวนนำสัญญาณหรือใช้อุปกรณ์เสริมเพิ่มเติม
- เมื่อสัญญาณคีย์ถูกดักจับได้แล้ว คีย์รีโมตเดิมจะออกนอกการซิงค์และใช้งานไม่ได้ต่อไป
หลักการโจมตี
- ผู้โจมตีทำนายลำดับด้วยการ วิศวกรรมย้อนกลับลำดับ เมื่อมีการรั่วไหลของลำดับ หรือผ่านการ Bruteforce จากรายการลำดับขนาดใหญ่
- ผู้เชี่ยวชาญบางรายวิเคราะห์ว่าเฟิร์มแวร์นี้อ้างอิงแนวคิดการโจมตี RollBack ที่เผยแพร่ในงานวิจัยล่าสุด
- RollBack ทำงานโดยการเล่นลำดับของ rolling code ที่จับได้ในลำดับเฉพาะ เพื่อผลักระบบซิงโครไนซ์ให้ถอยกลับ
ผลกระทบและสถานะการรับมือ
- ในวิดีโอสาธิตพบว่าการดักจับเพียง ครั้งเดียว ทำให้จำลองการทำงานของรีโมตทั้งหมดได้
- ผู้ผลิตที่ได้รับผลกระทบประกอบด้วย Chrysler, Dodge, Fiat, Ford, Hyundai, Jeep, Kia, Mitsubishi, Subaru เป็นต้น
- ขณะนี้ยังไม่สามารถแก้ด้วยแพตช์ซอฟต์แวร์หรือการปรับแก้แบบง่าย และนอกจากทางเลือกสุดขั้วคือการเรียกคืนรถยนต์จำนวนมากก็ยังไม่พบมาตรการที่นำไปใช้ได้ทันที
2 ความคิดเห็น
"เฟิร์มแวร์ดาร์กเว็บ" เป็นคำที่ถูกหยิบมาใช้แบบกระตุ้นอารมณ์ แต่ที่ทำจริง ๆ ก็แค่สั่งให้เซ็นเซอร์ที่อยู่บนอุปกรณ์ทำงานเท่านั้น
Flipper Zero ก็ไม่ใช่อุปกรณ์อาชญากรรมนักมืออาชีพนะครับ แค่ของเล่นที่ใกล้เคียงการรวมเซ็นเซอร์กับระบบปฏิบัติการที่ใช้งานง่ายเท่านั้น การที่มันถูกเจาะได้เพราะเรื่องแค่นั้นก็ไม่ใช่เรื่องที่ควรภูมิใจครับ
ถ้าระดับความปลอดภัยที่ถูกเจาะได้แค่นี้ ก็เทียบได้กับการเดินไปไหนก็ได้แต่ปล่อยประตูไว้เปิดอยู่เสมอ
ใครๆ ก็สามารถซื้อเซ็นเซอร์ไม่กี่ชิ้นผ่านทางออนไลน์แบบถูกต้องตามกฎหมาย แล้วทำได้เช่นเดียวกัน โดยไม่ต้องเป็น Flipper Zero ก็ตาม
ความคิดเห็นจาก Hacker News
ระบุว่าวิธีการรักษาความปลอดภัยแบบ rolling key ที่มีขายอยู่ในตลาดจำนวนมากอิงพื้นฐาน KeeLoq; KeeLoq เป็นระบบที่ออกแบบได้ค่อนข้างดี แต่มีจุดอ่อนใหญ่พอสมควร มีสิ่งที่เรียกว่า manufacturer key ซึ่งอุปกรณ์ที่รองรับการจับคู่ที่หน้างานทั้งหมดจำเป็นต้องมีคีย์นี้ หากคีย์ผู้ผลิตถูกเปิดเผย ผู้โจมตีอาจคาดเดา sequence key ได้เพียงจากตัวอย่างสัญญาณราวสองครั้งจากตัวรับตัวเดียว ถ้าไม่มี manufacturer key ก็ยังสามารถทำการ replay attack ได้ แต่การ brute-force เพื่อหาค่า sequence key จะไม่สมเหตุสมผล ในทางปฏิบัติ ตัวรับที่รองรับการตั้งค่าแบบ on-site programming ต้องมีคีย์ผู้ผลิตนี้เสมอ ดังนั้นใครก็ตามที่ซื้ออุปกรณ์ประเภทนั้นสามารถดึงคีย์นี้ออกมาได้
ใช่ KeeLoq เองไม่ปลอดภัยอีกต่อไป แต่ Microchip ตอนนี้ย้ายมาใช้ AES แล้ว KeeLoq ใช้กันไม่เฉพาะรถยนต์ แต่ยังใช้กับรีโมตประตูโรงรถอย่างแพร่หลาย ตัวรับบางรุ่นของ KeeLoq มี “โหมดเรียนรู้” (learning mode) หากสัญญาณจากตัวส่ง KeeLoq ที่ใช้ manufacturer key เดียวกันเข้ามา มันก็จะทำการจดจำไว้ การเข้าสู่โหมดนี้สามารถทำได้ด้วยปุ่มที่ติดบน PCB หรือด้วยตัวส่งประเภท “master” ได้ https://en.wikipedia.org/wiki/KeeLoq
ไม่เข้าใจเลยว่าปัญหาอยู่ที่การเปิดเผยบน “darkweb” ตรงไหน ควรเข้าข่ายกฎหมาย USC 18 1029/30 ในสหรัฐฯ ได้ แต่เทคโนโลยีนี้ใช้งานได้บนอินเทอร์เน็ตทั่วไปเช่นเดียวกัน ทำไมประเด็นที่เกี่ยวข้องกับ darkweb จึงมักถูกทำให้เป็นการเมืองและเรื่องชิงคลิกตลอดเวลากัน ทำให้สุดท้ายแล้วมันก็แค่ “อินเทอร์เน็ต” เหมือนเดิม
ด้วยเหตุผลเหล่านี้ ผมคิดว่าฟีเจอร์ “ปุ่มสตาร์ตไร้กุญแจ” ในรถไม่ใช่ทางออกที่ดี เหมือนยุคเก่าให้ใช้ key fob แค่เปิดรถ แต่ใช้กุญแจจริงสำหรับสตาร์ตเครื่องจะปลอดภัยกว่า และการมีหลายชั้นความปลอดภัยย่อมดีกว่า ตอนที่ทำงานในแวดวงความปลอดภัยยานยนต์ เคยเห็นผู้ผลิตรถบางรายไม่ค่อยใส่ใจว่าอยากให้รถลูกค้าถูกขโมยจริง ๆ หรือไม่ เพราะเมื่อประกันค้ำประกันการชดเชยแล้ว ยอดขายรถใหม่ก็มีแนวโน้มเพิ่มตามมา
วิดีโอที่ถูกพูดถึงดูเหมือนอธิบายมากกว่าพิสูจน์ พอลึก ๆ แล้วก็แทบไม่มีเนื้อหาจริงที่จับต้องได้ หลักฐานที่แสดงดูเหมือนห่อข้อบกพร่องของ rolling code เดิมให้ดูโดดเด่นขึ้น https://github.com/jamisonderek/flipper-zero-tutorials/tree/main/subghz/apps/rolling-flaws
ถ้าสัญญาณสื่อสารของรถไม่ใช่ระบบ broadcast และไม่อยู่ในรูปแบบที่มนุษย์รับรู้ได้ง่าย ปัญหาแบบนี้ก็น่าลดลงมาก ผมจึงจินตนาการว่าน่าจะเป็นแบบนี้ได้มากขึ้น เช่น ถ้ามีขั้วไฟฟ้าที่ door handle สัญญาณคงถูกดักรับหรือฉีดได้ยากมากขึ้นมาก หากสัญญาณเป็นออดิโอที่ได้ยินง่าย หากมีการ jamming ผู้ใช้ก็มักจะรู้ทันที ในทางปฏิบัติ ผมคิดว่าผู้ใช้รีโมต keyless จากระยะไกลส่วนใหญ่จะใช้เพื่อ “ล็อก” และสำหรับ “ปลดล็อก” ก็ไม่ค่อยเสี่ยงมาก
แน่ใจว่าอุปถัมภ์การเมืองที่ไม่เข้าใจจะพยายามแบน Flipper Zero แน่ ๆ เพราะไม่ยอมรับความจริงที่ว่า keyless key fob ต้นทางนั้นอ่อนแออยู่แล้ว
อ่านในข่าวได้ว่า “การโจมตีนี้สามารถคัดลอกฟังก์ชัน keyless key ทั้งหมดได้จากการดักสัญญาณการกดปุ่มเพียงครั้งเดียว โดยไม่ต้อง jamming” จึงอยากถามว่า ถ้าผมไม่กดปุ่ม key fob เลย จะปลอดภัยจากการโจมตีนี้จริงหรือไม่ ในการใช้งานจริงของผมคือ ระบบจับเฉพาะปุ่มที่กดบน door handle เมื่อคีย์อยู่ใกล้ ๆ ก็จะถูกรับรู้เพื่อเปิดหรือปิดล็อก
ในมุมมอง rolling code หากมีการ desync ทำให้ keyless key หยุดทำงานอย่างที่บทความชี้ จึงสงสัยว่ากรณีนี้ผู้ใช้สามารถรีเซ็ตเองได้หรือไม่ หรือทำได้เฉพาะที่ศูนย์บริการเท่านั้น
หากการโจมตีทำให้กุญแจต้นทางใช้งานไม่ได้ อาจจะเป็นกรณีที่ผู้โจมตีแค่จับสัญญาณคีย์ในที่จอดรถแล้วดำเนินการ โดยไม่ต้องขโมยรถ แต่ให้ผู้ใช้ต้องเผชิญความวุ่นวายถึงขั้นต้องยอมให้รถโดนยึดและต้องรีโปรแกรมอีกขั้น
สงสัยว่าทำไมรถยนต์ยังไม่ใช้การเข้ารหัสแบบ public-key ในฟีเจอร์ keyless fob อาจเป็นเพราะภาระการคำนวณสูงเกินไปหรือไม่