ส่วนขยาย VSCode ขาดระบบสิทธิ์การเข้าถึงขั้นพื้นฐาน เครื่องมือสแกนใหม่เผยช่องโหว่ความปลอดภัยที่แพร่หลาย

ทีมชุมชน BigGo
ส่วนขยาย VSCode ขาดระบบสิทธิ์การเข้าถึงขั้นพื้นฐาน เครื่องมือสแกนใหม่เผยช่องโหว่ความปลอดภัยที่แพร่หลาย

เครื่องมือสแกนความปลอดภัยใหม่ที่เรียกว่า VSCan ได้นำความสนใจมาสู่ความจริงที่น่ากังวล คือส่วนขยาย Visual Studio Code ทำงานโดยไม่มีข้อจำกัดด้านความปลอดภัยที่มีความหมาย ซึ่งอาจทำให้นักพัฒนาเผชิญกับความเสี่ยงที่สำคัญ เครื่องมือนี้ซึ่งได้วิเคราะห์ส่วนขยายมากกว่า 10,000 รายการแล้วและระบุช่องโหว่มากกว่า 500 รายการ เผยให้เห็นว่าแม้แต่ส่วนขยายยอดนิยมก็ได้รับคะแนนความปลอดภัยที่น่ากังวล

สถิติความปลอดภัย VSCan :

  • สแกนส่วนขยายมากกว่า 10,000 รายการ
  • ระบุช่องโหว่มากกว่า 500 จุด
  • ความสามารถในการตรวจสอบตลอด 24/7
  • คะแนนการวิเคราะห์ล่าสุด: markmap-vscode (91 - ความเสี่ยงปานกลาง), kanagawa (91 - ความเสี่ยงปานกลาง), csv-to-table (91 - ความเสี่ยงปานกลาง), rainbow-csv (85 - ความเสี่ยงปานกลาง), VSCodeVim (71 - ความเสี่ยงสูง)

การขาดกรอบการทำงานของสิทธิ์การเข้าถึงสร้างจุดบอดด้านความปลอดภัย

ไม่เหมือนกับแพลตฟอร์มมือถือที่ต้องการการอนุญาตจากผู้ใช้อย่างชัดเจนสำหรับการดำเนินการที่ละเอียดอ่อน ส่วนขยาย VSCode สามารถเข้าถึงไฟล์ สร้างกระบวนการ และดำเนินการเครือข่ายโดยไม่มีการดูแลจากผู้ใช้ ข้อบกพร่องในการออกแบบพื้นฐานนี้ได้คงอยู่มาหลายปี โดยนักพัฒนาแสดงความผิดหวังที่สภาพแวดล้อมการพัฒนาที่ใช้กันอย่างแพร่หลายเช่นนี้ขาดการควบคุมความปลอดภัยขั้นพื้นฐาน

การไม่มีโมเดลสิทธิ์การเข้าถึงหมายความว่าส่วนขยายง่าย ๆ เช่นตัวเน้นไวยากรณ์มีการเข้าถึงระบบเหมือนกับเครื่องมือที่ซับซ้อนเช่น language server ในทางทฤษฎี สิ่งนี้สร้างสภาพแวดล้อมที่ส่วนขยายที่เป็นอันตรายอาจเข้าถึงไฟล์โครงการที่ละเอียดอ่อน ข้อมูลประจำตัว หรือแม้แต่ประนีประนอมระบบการพัฒนาทั้งหมดได้

ความท้าทายด้านความปลอดภัยของ Extension ใน VSCode :

  • ไม่มีโมเดลการอนุญาตสำหรับความสามารถของ extension
  • Extension มีสิทธิ์เข้าถึงระบบไฟล์แบบไม่จำกัด
  • สามารถเรียกใช้โปรเซสภายนอกได้โดยไม่ต้องขออนุญาตจากผู้ใช้
  • อนุญาตให้ทำงานเครือข่ายได้โดยไม่มีการควบคุม
  • Extension ทั้งหมดทำงานในระดับสิทธิ์เดียวกันโดยไม่คำนึงถึงฟังก์ชันการทำงาน

การสร้างสมดุลระหว่างความปลอดภัยกับฟังก์ชันการทำงานเป็นเรื่องท้าทาย

ระบบนิเวศส่วนขยาย VSCode เผชิญกับปัญหาความปลอดภัยแบบคลาสสิก คือการใช้ sandbox ที่เข้มงวดอาจทำลายฟังก์ชันการทำงานที่ทำให้ส่วนขยายมีค่า ส่วนขยายที่จำเป็นหลายตัวเช่น Prettier, Rust Analyzer และ language server ต้องการการเข้าถึงระบบไฟล์และความสามารถในการรันกระบวนการภายนอกเพื่อทำงานอย่างถูกต้อง

มันยากมากที่จะมีระบบปลั๊กอินที่ทั้งทรงพลัง หลากหลาย และมี sandbox ในเวลาเดียวกัน เหมือนกับสิ่งอื่น ๆ คุณสามารถเลือกได้แค่ 2 อย่าง

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

ส่วนขยายยอดนิยมได้รับคะแนนความปลอดภัยที่น่ากังวล

การวิเคราะห์ของ VSCan เผยให้เห็นว่าแม้แต่ส่วนขยายที่ได้รับความไว้วางใจอย่างกว้างขวางก็ได้รับการจัดอันดับความเสี่ยงระดับกลางถึงสูง ส่วนขยายเช่น VSCodeVim ได้คะแนน 71/100 (ความเสี่ยงสูง) ในขณะที่ส่วนขยายอื่น ๆ ที่นักพัฒนาใช้กันทั่วไปแสดงคะแนนที่น่ากังวลในทำนองเดียวกัน เครื่องมือนี้ประเมินส่วนขยายตามสิทธิ์การเข้าถึง การพึ่งพา รูปแบบโค้ด และข้อมูลเมตา

นักวิจารณ์ชี้ให้เห็นว่าระบบการให้คะแนนอาจเข้มงวดเกินไปกับส่วนขยายที่ถูกต้องตามกฎหมายที่ต้องการสิทธิ์การเข้าถึงระดับสูงสำหรับฟังก์ชันการทำงานที่ตั้งใจไว้ ความท้าทายอยู่ที่การแยกแยะระหว่างสิทธิ์ที่จำเป็นสำหรับคุณสมบัติที่ถูกต้องตามกฎหมายและความสามารถที่อาจเป็นอันตรายซึ่งอาจถูกใช้ในทางที่ผิด

ชุมชนเรียกร้องการควบคุมผู้ใช้ที่ดีขึ้น

นักพัฒนาเรียกร้องให้ VSCode ใช้การควบคุมสิทธิ์แบบมือถือ ซึ่งผู้ใช้สามารถอนุญาตหรือปฏิเสธความสามารถเฉพาะให้กับส่วนขยาย สิ่งนี้จะช่วยให้ผู้ใช้ตัดสินใจอย่างมีข้อมูลเกี่ยวกับส่วนขยายใดที่สามารถเข้าถึงทรัพยากรที่ละเอียดอ่อนในขณะที่ยังคงความยืดหยุ่นของระบบนิเวศ

การอภิปรายยังได้เน้นย้ำถึงความจำเป็นในการมีเครื่องมือที่ดีกว่าเพื่อช่วยนักพัฒนาตรวจสอบส่วนขยายที่ติดตั้งไว้ เมื่อผู้ใช้บางคนรายงานว่ามีส่วนขยายติดตั้งไว้มากกว่า 70 ตัว การตรวจสอบแต่ละตัวด้วยตนเองจึงกลายเป็นเรื่องที่ไม่สามารถทำได้หากไม่มีโซลูชันอัตโนมัติหรือความสามารถในการวิเคราะห์จำนวนมาก

ความกังวลด้านความปลอดภัยขยายไปเกินกว่าความเสี่ยงของแต่ละบุคคลไปสู่ความปลอดภัยขององค์กร โดยเฉพาะอย่างยิ่งเมื่อสภาพแวดล้อมการพัฒนาจัดการข้อมูลที่ละเอียดอ่อนมากขึ้นและเชื่อมต่อกับโครงสร้างพื้นฐานที่สำคัญ เมื่อระบบนิเวศ VSCode ยังคงเติบโต การแก้ไขข้อจำกัดด้านความปลอดภัยพื้นฐานเหล่านี้จึงกลายเป็นเรื่องเร่งด่วนมากขึ้นสำหรับการรักษาความไว้วางใจของนักพัฒนาและปกป้องโครงการที่ละเอียดอ่อน

อ้างอิง: Secure Your VSCode Experience