เครื่องมือ command-line ใหม่ที่เรียกว่า vet ได้ถือกำเนิดขึ้นเพื่อแก้ไขปัญหาการปฏิบัติที่เสี่ยงอันตรายในการส่ง script จากระยะไกลไปยัง bash โดยตรงสำหรับการติดตั้งซอฟต์แวร์ เครื่องมือนี้สัญญาว่าจะเพิ่มชั้นความปลอดภัยโดยการดาวน์โหลด script มาเก็บไว้ในเครื่อง แสดงการเปลี่ยนแปลงผ่านการเปรียบเทียบ diff ทำการวิเคราะห์ด้วย shellcheck และต้องการการอนุมัติจากผู้ใช้ก่อนการดำเนินการ
คุณสมบัติด้านความปลอดภัยของเครื่องมือ Vet:
- ดาวน์โหลดสคริปต์จากระยะไกลไปยังตำแหน่งชั่วคราวก่อนการดำเนินการ
- แสดงการเปรียบเทียบความแตกต่างของการเปลี่ยนแปลงสคริปต์จากการรันครั้งก่อนหน้า
- รวมเข้ากับ shellcheck สำหรับการวิเคราะห์แบบคงที่และการตรวจจับข้อผิดพลาด
- ต้องการการอนุมัติจากผู้ใช้อย่างชัดเจนก่อนการดำเนินการสคริปต์
- ทำงานแบบออฟไลน์สมบูรณ์โดยไม่ส่งข้อมูลไปยังบุคคลที่สาม
ชุมชนตั้งคำถามถึงประสิทธิผลของเครื่องมือในโลกแห่งความเป็นจริง
ชุมชนนักพัฒนาได้ตั้งคำถามสำคัญเกี่ยวกับประโยชน์ด้านความปลอดภัยในทางปฏิบัติของ vet ความกังวลหลักมุ่งเน้นไปที่ว่าเครื่องมือนี้ช่วยปรับปรุงความปลอดภัยสำหรับสถานการณ์การติดตั้งทั่วไปได้จริงหรือไม่ ตัวติดตั้งซอฟต์แวร์ส่วนใหญ่ดาวน์โหลดไฟล์ binary จากเซิร์ฟเวอร์ HTTPS เดียวกันโดยไม่มีการตรวจสอบเพิ่มเติมนอกเหนือจากสิ่งที่ script ต้นฉบับให้มา ซึ่งหมายความว่าแม้ vet จะสามารถตรวจจับการเปลี่ยนแปลงใน script ตัวติดตั้งได้ แต่ก็ไม่สามารถตรวจสอบความถูกต้องของซอฟต์แวร์จริงที่กำลังถูกติดตั้ง
ผู้สร้างเครื่องมือยอมรับข้อจำกัดนี้ โดยอธิบายว่า vet มุ่งเน้นเฉพาะการรักษาความปลอดภัยของ script ตัวติดตั้งมากกว่า supply chain ของซอฟต์แวร์ทั้งหมด เป้าหมายคือการป้องกันการดัดแปลงที่เป็นอันตรายต่อตัวติดตั้งที่อาจข้าม checksum verification หรือเปลี่ยนเส้นทางการดาวน์โหลดไปยังแหล่งที่เป็นอันตราย
วิธีการหลีกเลี่ยงที่เป็นไปได้และแนวคิดการปรับปรุง
ผู้เชี่ยวชาญด้านความปลอดภัยในชุมชนได้ระบุวิธีการที่อาจใช้หลีกเลี่ยงการป้องกันของ vet ผู้ที่มีเจตนาร้ายอาจปิดการใช้งานคำเตือนของ shellcheck โดยใช้ pragma comments ซึ่งจะลดความสามารถของเครื่องมือในการตรวจจับรูปแบบโค้ดที่น่าสงสัย สิ่งนี้เน้นย้ำถึงความท้าทายที่แท้จริงของการพึ่งพาเครื่องมือ static analysis เพียงอย่างเดียวสำหรับการตรวจสอบความปลอดภัย
สมาชิกบางคนในชุมชนได้แนะนำการรวม AI-powered analysis เพื่อระบุความกังวลด้านความปลอดภัยนอกเหนือจากสิ่งที่ traditional linting สามารถตรวจจับได้ อย่างไรก็ตาม ผู้พัฒนาเครื่องมือเน้นย้ำถึงความสำคัญของการวิเคราะห์แบบ deterministic และ offline เพื่อหลีกเลี่ยงความเสี่ยงด้านความเป็นส่วนตัวและรับประกันผลลัพธ์ที่สม่ำเสมอ
อุปสรรคที่ใหญ่ที่สุดสองประการสำหรับเครื่องมือความปลอดภัยแบบนี้คือความไม่แน่นอนของ LLM และความเสี่ยงด้านความเป็นส่วนตัวที่สำคัญจากการส่งโค้ดไปยัง third-party API
วิธีการติดตั้ง:
curl -sL https://getvet.sh | sh
หมายเหตุ: นักพัฒนาตระหนักถึงความขัดแย้งของการใช้รูปแบบการติดตั้งแบบเดียวกันกับที่เครื่องมือของพวกเขามุ่งเน้นที่จะทำให้ปลอดภัย
ความกังวลเรื่องประสบการณ์ผู้ใช้และการยอมรับ
แม้จะมีการอภิปรายเรื่องความปลอดภัย แต่ผู้ใช้บางคนได้แสดงความกระตือรือร้นต่อแนวคิดนี้ในขณะที่ขอเอกสารที่ดีกว่า คำถามเกี่ยวกับ user interface และการสาธิตขั้นตอนการทำงานของเครื่องมือแสดงให้เห็นว่าตัวอย่างที่ชัดเจนกว่านี้อาจช่วยในการยอมรับ ผู้ใช้ต้องการเข้าใจว่า vet แสดงปัญหาของ shellcheck อย่างไรและจะเปิด editor หรือ pager สำหรับการตรวจสอบ script หรือไม่
เครื่องมือนี้แสดงถึงก้าวหนึ่งสู่การปฏิบัติด้านความปลอดภัยที่มีสติมากขึ้นในการติดตั้งซอฟต์แวร์ แม้ว่าจะไม่ได้แก้ไขทุกแง่มุมของปัญหาความปลอดภัย supply chain ก็ตาม คุณค่าของมันอยู่ที่การทำให้ผู้ใช้ตระหนักมากขึ้นเกี่ยวกับ script ที่พวกเขากำลังดำเนินการและส่งเสริมการตรวจสอบขั้นตอนการติดตั้ง
อ้างอิง: vet