บทนำ
- RyotaK วิศวกรความปลอดภัยจาก Flatt Security Inc. ค้นพบช่องโหว่ด้านความปลอดภัยในกระบวนการอัปเกรดเฟิร์มแวร์ของ OpenWrt
- OpenWrt เป็นเฟิร์มแวร์บนพื้นฐาน Linux สำหรับอุปกรณ์ฝังตัว และได้รับความนิยมอย่างมากโดยเฉพาะกับเราเตอร์
sysupgrade.openwrt.org
sysupgrade.openwrt.org เป็นบริการออนไลน์ที่ช่วยให้ผู้ใช้เลือกแพ็กเกจที่ต้องการเพื่อสร้างอิมเมจเฟิร์มแวร์ใหม่ได้
- กระบวนการสร้างอิมเมจจากซอร์สโค้ดที่ผู้ใช้ส่งเข้ามาอาจก่อให้เกิดปัญหาด้านความปลอดภัยได้
การแทรกคำสั่ง
- เซิร์ฟเวอร์
sysupgrade.openwrt.org เป็นโครงการโอเพนซอร์ส โดยซอร์สโค้ดโฮสต์อยู่ที่ openwrt/asu
- แม้เซิร์ฟเวอร์จะใช้คอนเทนเนอร์เพื่อแยกสภาพแวดล้อมการบิลด์ แต่ก็พบช่องโหว่ที่ทำให้สามารถรันคำสั่งตามอำเภอใจผ่านข้อมูลนำเข้าของผู้ใช้ได้
การชนกันของ SHA-256
- ในกระบวนการสร้างแฮชของคำขอ มีการตัดแฮช SHA-256 ให้เหลือ 12 ตัวอักษรเพื่อนำไปใช้งาน
- ผู้โจมตีสามารถหลอกเซิร์ฟเวอร์ให้ส่งคืนบิลด์อาร์ติแฟกต์ที่ไม่ถูกต้องได้ผ่านการชนกันของแฮช
การ brute-force SHA-256
- มีการพัฒนาโปรแกรมสำหรับ brute-force แฮชบน GPU โดยใช้ OpenCL แต่ประสิทธิภาพไม่ดีนัก
- จากนั้นจึงใช้ Hashcat และสามารถค้นหาการชนกันแบบ 12 ตัวอักษรได้สำเร็จ
การรวมสองการโจมตีเข้าด้วยกัน
- การโจมตีเกิดขึ้นโดยหาคำสั่งแทรกเพย์โหลดที่มีแฮชตรงกับรายการแพ็กเกจที่ถูกต้องตามกฎหมาย
- ผู้โจมตีสามารถบังคับให้ผู้ใช้อัปเกรดไปเป็นเฟิร์มแวร์อันตรายได้
การรายงานปัญหา
- หลังจากรายงานปัญหาให้ทีม OpenWrt ทราบ บริการถูกระงับชั่วคราวและแก้ไขอย่างรวดเร็ว
- มีการออกประกาศให้ผู้ใช้ตรวจสอบว่าอุปกรณ์ของตนไม่ได้รับความเสียหาย
บทสรุป
- บริการ
sysupgrade.openwrt.org สามารถถูกทำให้เสียหายได้ผ่านการแทรกคำสั่งและการชนกันของ SHA-256
- ผู้เขียนขอบคุณทีม OpenWrt สำหรับการตอบสนองอย่างรวดเร็ว และการแจ้งปัญหาให้ผู้ใช้ทราบอย่างทันท่วงที
โฆษณา
- Flatt Security ให้บริการประเมินความปลอดภัยและการทดสอบเจาะระบบ พร้อมมอบส่วนลดพิเศษเพื่อฉลองการอัปเดตหน้าเว็บใหม่
- นอกจากนี้ยังมี Shisho Cloud ซึ่งเป็นเครื่องมือประเมินความปลอดภัยที่ทรงพลัง
1 ความคิดเห็น
ความเห็นจาก Hacker News
การทำให้การรันโค้ดที่ปรับเฉพาะผู้ใช้หรืออุปกรณ์แต่ละเครื่องเป็นเรื่องปกตินั้นมีปัญหา เพราะไม่สามารถตรวจสอบได้ และยืนยันไม่ได้ว่าไม่ได้สร้างบิลด์ที่มีแบ็กดอร์รวมอยู่
การใช้ ".join" อาจมีความเสี่ยง
โอเพนซอร์สสู้ซอฟต์แวร์ปิดระดับองค์กรไม่ได้
คำว่า "supply chain" ไม่ปรากฏในโพสต์บล็อก
เครื่องมือโอเพนซอร์สถูกดัดแปลงไปใช้นอกเหนือจากวัตถุประสงค์ดั้งเดิม
สงสัยว่าไอเดียการตัดแฮชให้สั้นลงเกิดขึ้นได้อย่างไร
แปลกใจที่การหา collision แบบสั้นต้องใช้พลัง GPU มากขนาดนั้น
สังเกตได้ทันทีว่าความยาวของแฮชถูกตัดจาก 64 อักขระเหลือ 12 อักขระ
มีคำถามว่าทำไมประสิทธิภาพของ hashcat ถึงต่างกันมากตามลำดับของอาร์กิวเมนต์
เป็นบทความที่ยอดเยี่ยม ทั้งในแง่การอ่านโค้ดอย่างชาญฉลาดและการพัฒนา exploit