นักแฮ็กฮาร์ดแวร์คนหนึ่งได้สำเร็จในการเข้าถึง debug console ของ Baseboard Management Controller (BMC) บนเมนบอร์ด Supermicro X11SSH โดยตรง ผ่านการบัดกรีสายจัมเปอร์เข้ากับขา UART โดยตรง ความสำเร็จนี้เปิดโอกาสใหม่สำหรับการวิเคราะห์เฟิร์มแวร์และการดีบักบนฮาร์ดแวร์เซิร์ฟเวอร์ที่โดยปกติไม่มีอินเตอร์เฟซดีบักที่เข้าถึงได้
ฮาร์ดแวร์เป้าหมาย: เมนบอร์ด Supermicro X11SSH พร้อมชิป BMC AST2400
ความท้าทายในการเข้าถึงเฟิร์มแวร์เซิร์ฟเวอร์ที่เป็นกรรมสิทธิ์
แพลตฟอร์ม X11SSH นำเสนอความท้าทายเฉพาะสำหรับนักแฮ็กฮาร์ดแวร์และนักวิจัย เนื่องจากไม่มี debug header หรือจุดตรวจสอบอย่างเป็นทางการสำหรับการเข้าถึง BMC สิ่งนี้บังคับให้ผู้ที่สนใจต้องแฮ็กเข้าไปโดยการระบุและเชื่อมต่อโดยตรงกับเส้นทาง UART บนเมนบอร์ดเอง BMC ใช้ระบบปฏิบัติการที่ใช้ Linux เป็นฐานและจัดการฟังก์ชันสำคัญของเซิร์ฟเวอร์ แต่การเข้าถึงคอนโซลของมันโดยทั่วไปต้องใช้ความรู้เฉพาะทางและทักษะการดัดแปลงฮาร์ดแวร์
UART (Universal Asynchronous Receiver-Transmitter) เป็นโปรโตคอลการสื่อสารที่อนุญาตให้มีการส่งข้อมูลแบบอนุกรมระหว่างอุปกรณ์ ซึ่งมักใช้สำหรับการดีบักระบบฝังตัว
ทรัพยากรที่จำเป็น:
- ไฟล์ Gerber สำหรับการวิเคราะห์เลย์เอาต์ PCB
- เอกสารข้อมูลจำเพาะ AST2400 สำหรับการระบุพิน
- อุปกรณ์บัดกรีสำหรับการติดตั้งสายจัมเปอร์
- อินเทอร์เฟซ UART สำหรับการสื่อสารแบบซีเรียล
ข้อมูลเชิงลึกจากชุมชนเผยให้เห็นข้อผิดพลาดทั่วไป
การอภิปรายเผยให้เห็นว่าการดัดแปลงฮาร์ดแวร์ประเภทนี้มีความเสี่ยงอย่างมาก ความพยายามก่อนหน้านี้โดยสมาชิกชุมชนคนอื่นๆ ส่งผลให้บอร์ดเสียหายอย่างถาวรด้วยวิธีต่างๆ ตั้งแต่การทำให้ PCIe root complex เสียหายไปจนถึงการทำลายเส้นทาง SPI flash บางบอร์ดมีเฟิร์มแวร์เสียหายที่กลายเป็นเรื่องยากหรือเป็นไปไม่ได้ที่จะกู้คืนโดยไม่มีอุปกรณ์เฉพาะทาง
ความพร้อมใช้งานของไฟล์ Gerber สำหรับการออกแบบเมนบอร์ดทำให้หลายคนในชุมชนประหลาดใจ เนื่องจากไฟล์การผลิต PCB ที่มีรายละเอียดเหล่านี้โดยทั่วไปเป็นข้อมูลกรรมสิทธิ์ที่ผู้ผลิตเก็บรักษาไว้อย่างเข้มงวด ไฟล์เหล่านี้พิสูจน์ให้เห็นว่ามีคุณค่าอย่างมากสำหรับการระบุจุดเชื่อมต่อที่ถูกต้องและการทำความเข้าใจเลย์เอาต์ของบอร์ด
ไฟล์ Gerber ประกอบด้วยข้อกำหนดที่แม่นยำที่จำเป็นในการผลิตแผงวงจรพิมพ์ รวมถึงเลย์เอาต์ของเส้นทางและการวางตำแหน่งส่วนประกอบ
รูปแบบความล้มเหลวที่พบบ่อย:
- ความเสียหายของ PCIe root complex
- ความเสียหายของ trace ใน BMC SPI flash
- การเสียหายของ firmware ที่ต้องใช้การกู้คืนแบบเฉพาะเจาะจง
ผลกระทบในวงกว้างสำหรับเฟิร์มแวร์เซิร์ฟเวอร์แบบเปิด
การดัดแปลงฮาร์ดแวร์ที่สำเร็จนี้แสดงถึงมากกว่าแค่ความสำเร็จทางเทคนิค มันเป็นส่วนหนึ่งของการเคลื่อนไหวที่ใหญ่กว่าสู่เฟิร์มแวร์เซิร์ฟเวอร์แบบเปิด ความสามารถในการเข้าถึง BMC debug console ช่วยให้สามารถสำรวจระบบเหล่านี้ในขณะทำงาน ซึ่งอาจอำนวยความสะดวกในการพัฒนาทางเลือกโอเพนซอร์สเช่น OpenBMC port สำหรับฮาร์ดแวร์ที่ไม่ได้รับการสนับสนุนก่อนหน้านี้
การเข้าถึงเฟิร์มแวร์ที่ถูกปิดบังเป็นสิ่งที่ดีที่สุดรองจากเฟิร์มแวร์แบบเปิด
งานนี้มีส่วนช่วยในความพยายามอย่างต่อเนื่องโดยโครงการต่างๆ รวมถึง OpenBMC, OpenSIL และ DC-SCM เพื่อหลุดพ้นจากข้อจำกัดของเฟิร์มแวร์เซิร์ฟเวอร์ที่เป็นกรรมสิทธิ์ แม้ว่าความก้าวหน้าจะช้ากว่าที่หวังไว้ แต่ความพยายามในการแฮ็กฮาร์ดแวร์ระดับรากหญ้าเหล่านี้ให้ข้อมูลเชิงลึกที่มีคุณค่าซึ่งเป็นประโยชน์ต่อชุมชนเฟิร์มแวร์แบบเปิดในวงกว้าง
ความสำเร็จทางเทคนิค: เข้าถึงพิน UART ทั้ง TX และ RX ได้สำเร็จเพื่อการสื่อสารคอนโซล BMC แบบสองทิศทางอย่างสมบูรณ์
ความสำเร็จทางเทคนิคแม้จะมีความท้าทาย
การดัดแปลงที่สำเร็จเกี่ยวข้องกับการระบุทั้งขา TX (transmit) และ RX (receive) สำหรับการสื่อสารแบบสองทิศทางอย่างสมบูรณ์กับ BMC ซึ่งเกินกว่าความพยายามก่อนหน้านี้ที่เพียงแค่จับข้อมูลที่ส่งออกมา หลังจากการบัดกรีอย่างระมัดระวังและการประกอบใหม่ ระบบที่ได้รับการดัดแปลงสามารถบูตได้ตามปกติในขณะที่ให้การเข้าถึงคอนโซลอย่างสมบูรณ์กับสภาพแวดล้อม Linux ของ BMC
ความสำเร็จนี้แสดงให้เห็นว่าด้วยความรู้ทางเทคนิคที่เพียงพอ ทรัพยากรชุมชน และการดำเนินการอย่างระมัดระวัง เป็นไปได้ที่จะเข้าถึงฮาร์ดแวร์เซิร์ฟเวอร์อย่างลึกซึ้งที่ผู้ผลิตไม่เคยตั้งใจให้ผู้ใช้เข้าถึงได้ ความสำเร็จนี้ส่งเสริมให้มีการสำรวจและจัดทำเอกสารเทคนิคเหล่านี้เพิ่มเติมเพื่อประโยชน์ของนักวิจัยและนักพัฒนาเฟิร์มแวร์แบบเปิด