Google เพิ่งเปิดตัว OSV-Scanner เครื่องมือที่ช่วยให้นักพัฒนาโอเพ่นซอร์สเข้าถึงได้ง่าย เพื่อตรวจสอบช่องโหว่ที่ไม่ได้แพตช์ในโค้ดและแอปพลิเคชันโดยคำนึงถึงห่วงโซ่การพึ่งพาทั้งหมดที่เกี่ยวข้องกับรหัส
OSV-Scanner ช่วยให้สามารถตรวจจับสถานการณ์ที่แอปพลิเคชันมีความเสี่ยงเนื่องจากปัญหาในหนึ่งในไลบรารีที่ใช้เป็นการอ้างอิง ในกรณีนี้ สามารถใช้ไลบรารีที่มีช่องโหว่ทางอ้อมได้ เช่น เรียกผ่านการพึ่งพาอื่น
ปีที่แล้ว เราได้พยายามปรับปรุงการจำแนกประเภทช่องโหว่สำหรับนักพัฒนาซอฟต์แวร์และผู้บริโภคซอฟต์แวร์โอเพ่นซอร์ส สิ่งนี้เกี่ยวข้องกับการเผยแพร่สคีมาช่องโหว่โอเพนซอร์ส (OSV) และการเปิดตัวบริการ OSV.dev ซึ่งเป็นฐานข้อมูลช่องโหว่โอเพนซอร์สแบบกระจายตัวแรก OSV ช่วยให้ระบบนิเวศโอเพ่นซอร์สและฐานข้อมูลช่องโหว่ที่แตกต่างกันทั้งหมดสามารถเผยแพร่และใช้ข้อมูลในรูปแบบที่เรียบง่าย แม่นยำ และเครื่องอ่านได้
โครงการซอฟต์แวร์มักจะสร้างขึ้นบนภูเขาของการพึ่งพา: แทนที่จะเริ่มต้นจากศูนย์ นักพัฒนารวมไลบรารีซอฟต์แวร์ภายนอก ในโครงการและเพิ่มฟังก์ชันเพิ่มเติม อย่างไรก็ตามแพ็คเกจโอเพ่นซอร์สo มักจะมีข้อมูลโค้ดที่ไม่มีเอกสาร ที่ดึงมาจากห้องสมุดอื่น การปฏิบัตินี้สร้างอะไร เรียกว่า "การพึ่งพาสกรรมกริยา" ในซอฟต์แวร์และหมายความว่าอาจมีช่องโหว่หลายชั้นที่ยากต่อการติดตามด้วยตนเอง
การพึ่งพาชั่วคราวได้กลายเป็นแหล่งที่มาของความเสี่ยงด้านความปลอดภัยแบบโอเพ่นซอร์สที่เพิ่มขึ้นในช่วงปีที่ผ่านมา รายงานล่าสุดจาก Endor Labs พบว่า 95% ของช่องโหว่โอเพนซอร์สอยู่ในการพึ่งพาแบบสกรรมกริยาหรือทางอ้อม และรายงานแยกต่างหากจาก Sonatype ยังได้เน้นย้ำว่าการพึ่งพาสกรรมกริยานั้นมีช่องโหว่หกในเจ็ดรายการที่ส่งผลกระทบต่อโอเพนซอร์ส
อ้างอิงจาก Google เครื่องมือใหม่จะเริ่มต้นด้วยการค้นหาการพึ่งพาสกรรมกริยาเหล่านี้ โดยการวิเคราะห์รายการ รายการวัสดุของซอฟต์แวร์ (SBOM) หากมี และคอมมิตแฮช จากนั้นจะเชื่อมต่อกับฐานข้อมูลช่องโหว่โอเพ่นซอร์ส (OSV) เพื่อแสดงช่องโหว่ที่เกี่ยวข้อง
สแกนเนอร์ OSV สามารถสแกนซ้ำอัตโนมัติ โครงสร้างไดเร็กทอรี การระบุโปรเจ็กต์และแอปพลิเคชันโดยการมีอยู่ของไดเร็กทอรี git (ข้อมูลเกี่ยวกับช่องโหว่ที่กำหนดผ่านการวิเคราะห์คอมมิตแฮช) ไฟล์ SBOM (Software Bill Of Material ในรูปแบบ SPDX และ CycloneDX) รายการ หรือบล็อกผู้ดูแลระบบจากแพ็คเกจเก็บถาวร เช่น Yarn , NPM, GEM, PIP และสินค้า นอกจากนี้ยังรองรับการสแกนช่องว่างภายในของอิมเมจคอนเทนเนอร์นักเทียบท่าที่สร้างขึ้นจากแพ็คเกจจากที่เก็บ Debian
OSV-Scanner เป็นขั้นตอนต่อไปในความพยายามนี้ เนื่องจากเป็นอินเทอร์เฟซที่ได้รับการสนับสนุนอย่างเป็นทางการไปยังฐานข้อมูล OSV ที่เชื่อมต่อรายการการขึ้นต่อกันของโครงการกับช่องโหว่ที่ส่งผลกระทบ
La ข้อมูลเกี่ยวกับช่องโหว่นำมาจากฐานข้อมูล OSV (ช่องโหว่โอเพ่นซอร์ส) ซึ่งครอบคลุมข้อมูลเกี่ยวกับปัญหาด้านความปลอดภัยใน Сrates.io (Rust), Go, Maven, NPM (JavaScript), NuGet (C#), Packagist (PHP), PyPI (Python), RubyGems, Android, Debian และ Alpine รวมถึงข้อมูลช่องโหว่เคอร์เนลของ Linux และรายงานช่องโหว่ของโครงการที่โฮสต์บน GitHub
ฐานข้อมูล OSV สะท้อนถึงสถานะการแก้ไขปัญหา การยืนยันด้วยรูปลักษณ์และการแก้ไขช่องโหว่, ช่วงของเวอร์ชันที่ได้รับผลกระทบจากช่องโหว่, ลิงก์ไปยังที่เก็บโครงการพร้อมรหัสและการแจ้งเตือนปัญหา API ที่จัดเตรียมไว้ช่วยให้คุณสามารถติดตามการแสดงช่องโหว่ในระดับคอมมิชชันและแท็ก และวิเคราะห์ความเสี่ยงต่อปัญหาจากผลิตภัณฑ์อนุพันธ์และการอ้างอิง
ท้ายที่สุด เป็นเรื่องที่ควรค่าแก่การกล่าวถึงว่ารหัสโครงการนั้นเขียนด้วยภาษา Go และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 คุณสามารถตรวจสอบรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในลิงค์ต่อไปนี้
นักพัฒนาสามารถดาวน์โหลดและทดลองใช้ OSV-Scanner ได้จากเว็บไซต์ osv.dev หรือใช้ การตรวจสอบช่องโหว่ OpenSSF Scorecard เพื่อเรียกใช้สแกนเนอร์ในโครงการ GitHub โดยอัตโนมัติ