การตรวจสอบ Homebrew

  • ภาพรวมของการตรวจสอบ Homebrew
    • ตรวจสอบประเด็นด้านความปลอดภัยของ Homebrew ซึ่งรวมถึง Homebrew/brew และรีโพซิทอรีที่เกี่ยวข้องอีกสามแห่ง
    • ปัญหาที่พบนั้นไม่ถึงขั้นวิกฤต แต่ผู้โจมตีอาจโหลดโค้ดที่สามารถรันได้ในจังหวะที่ไม่คาดคิด ทำให้ความถูกต้องสมบูรณ์ของ Homebrew เสียหายได้
    • ดำเนินการด้วยการสนับสนุนจาก Open Tech Fund

Homebrew

  • แนะนำ Homebrew

    • ตัวจัดการแพ็กเกจสำหรับ macOS และ Linux
    • ถูกใช้อย่างแพร่หลายในหมู่นักพัฒนาซอฟต์แวร์ และรองรับการติดตั้งแพ็กเกจนับล้านครั้ง
    • รวมถึงแพ็กเกจสำคัญอย่าง Golang, Node.js, OpenSSL เป็นต้น ดังนั้นความปลอดภัยของ Homebrew จึงสำคัญต่อความปลอดภัยของระบบนิเวศซอฟต์แวร์โดยรวม
  • ประวัติของ Homebrew

    • นับตั้งแต่เริ่มต้นในปี 2009 ได้ผ่านการเปลี่ยนแปลงด้านสถาปัตยกรรมหลายครั้ง
    • นำการติดตั้งแบบไบนารีบิลด์ (bottle) มาใช้เป็นกลไกการติดตั้งหลักแทนการบิลด์จากซอร์สบนเครื่อง
    • รักษาความถูกต้องสมบูรณ์ของการบิลด์ผ่าน CI/CD

ขอบเขตการตรวจสอบ

  • คำถามในการตรวจสอบ
    • ผู้กระทำการในเครื่องสามารถรัน DSL ทางการได้โดยไม่ต้องใช้ brew install หรือไม่
    • ผู้กระทำการในเครื่องสามารถประเมินผล DSL ทางการได้ด้วยเพียง brew tap หรือไม่
    • สามารถก่อให้เกิดความสับสนหรือการชนกันของเนมสเปซได้หรือไม่
    • formula ทางการที่ติดตั้งในเครื่องสามารถข้ามกลไกการแยกการบิลด์ของ Homebrew ได้หรือไม่
    • ผู้กระทำการ CI/CD สิทธิ์ต่ำสามารถยกระดับเป็นสิทธิ์สูงได้หรือไม่
    • ผู้กระทำการ CI/CD สิทธิ์ต่ำสามารถทำให้การบิลด์ bottle ปนเปื้อนได้หรือไม่
    • ผู้กระทำการ CI/CD สิทธิ์ต่ำสามารถคงอยู่ใน CI/CD ได้อย่างต่อเนื่องหรือไม่

สิ่งที่ค้นพบหลัก

brew
  • สิ่งที่ค้นพบหลัก
    • formula สามารถหลบหนี sandbox ได้ผ่านการแทรกสตริง
    • สามารถก่อให้เกิด runtime confusion ได้ด้วยการใช้ฟังก์ชันแฮชที่ชนกันได้ง่าย (MD5)
    • formula สามารถรวมทรัพยากรเครือข่ายที่ไม่ได้ระบุไว้ในการบิลด์ได้
    • สามารถหลบหนี sandbox ได้ผ่าน socket pivot
    • สามารถยกระดับสิทธิ์ได้ผ่านโทเค็น sudo
    • สามารถติดตั้ง formula จาก URL ที่ไม่ใช่โลคัลได้
CI/CD ของ Homebrew
  • สิ่งที่ค้นพบหลัก
    • การใช้ทริกเกอร์ pull_request_target ทำให้ PR จากบุคคลที่สามสามารถรันโค้ดบนรีโพซิทอรีหลักของ Homebrew ได้
    • สามารถแทรกเชลล์ได้ผ่านอินพุต workflow_dispatch
    • การขาด sandboxing/การแยกที่เพียงพอระหว่างการแตกไฟล์อาร์ไคฟ์อาจนำไปสู่การยกระดับสิทธิ์
    • การติดตั้ง formula จาก URL ที่ไม่ใช่โลคัลสามารถนำไปสู่การรันโค้ดตามอำเภอใจได้

ประเด็นสำคัญ

  • ความท้าทายของการตรวจสอบระบบนิเวศตัวจัดการแพ็กเกจ

    • เครื่องมือตัวจัดการแพ็กเกจถูกออกแบบมาให้ติดตั้งและรันโค้ดของบุคคลที่สามตามอำเภอใจโดยธรรมชาติ
    • ในระบบนิเวศการแพ็กเกจอย่าง Homebrew รูปแบบแพ็กเกจ (formula) ก็คือโค้ดที่สามารถรันได้ด้วยตัวเอง
  • ความร่วมมือในการตรวจสอบ

    • ทำงานร่วมอย่างใกล้ชิดกับผู้ดูแล Homebrew และ Homebrew PLC
    • ขอขอบคุณ Patrick Linnane ผู้จัดการด้านความปลอดภัยของ Homebrew

สรุปโดย GN⁺

  • Homebrew เป็นตัวจัดการแพ็กเกจที่ถูกใช้อย่างแพร่หลายบน macOS และ Linux
  • ผลการตรวจสอบพบปัญหาด้านความปลอดภัย แม้จะไม่ถึงขั้นวิกฤต
  • ความปลอดภัยของ Homebrew มีความสำคัญต่อความปลอดภัยของระบบนิเวศซอฟต์แวร์โดยรวม
  • ด้วยธรรมชาติของเครื่องมือตัวจัดการแพ็กเกจที่สามารถรันโค้ดของบุคคลที่สามตามอำเภอใจได้ การตรวจสอบความปลอดภัยจึงมีความสำคัญ
  • เครื่องมือตัวจัดการแพ็กเกจที่มีฟังก์ชันคล้ายกัน ได้แก่ apt, yum เป็นต้น

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น