ฉลากโภชนาการที่ซอฟต์แวร์ขาดหายไปเสมอมา

เมื่อวันที่ 9 ธันวาคม 2021 นักวิจัยด้านความปลอดภัยได้พบช่องโหว่ในไลบรารี Java ที่ชื่อว่า Log4j ภายในเวลาเพียง 72 ชั่วโมง ระบบหลายร้อยล้านระบบต้องเผชิญกับความเสี่ยง

ปัญหาไม่ใช่แค่เรื่องของช่องโหว่เท่านั้น แต่ปัญหาคือการมองเห็น (visibility) บริษัทส่วนใหญ่ไม่รู้เลยว่ามี Log4j อยู่ภายในซอฟต์แวร์ของตนเองหรือไม่

เหตุการณ์นี้ทำให้ Software Bill of Materials (SBOM) กลายเป็นสิ่งที่คณะกรรมการบริษัทให้ความสำคัญเป็นอันดับต้นๆ

SBOM คือรายการบัญชีของทุกส่วนประกอบในซอฟต์แวร์ของคุณ มันทำงานเหมือนฉลากโภชนาการสำหรับโค้ด โดยจะระบุรายการไลบรารีโอเพนซอร์ส (open-source libraries), แพ็กเกจจากบุคคลที่สาม (third-party packages) และส่วนประกอบภายใน รวมถึงเวอร์ชันและใบอนุญาต (licenses) ต่างๆ

ซอฟต์แวร์สมัยใหม่มีความซับซ้อน แอปพลิเคชันหนึ่งอาจใช้ส่วนประกอบจากบุคคลที่สามตั้งแต่ 500 ถึง 1,500 รายการ ซึ่งคุณไม่สามารถติดตามสิ่งเหล่านี้ด้วยตนเองได้

ปัจจุบันมีมาตรฐานหลักอยู่สองมาตรฐาน:

• SPDX: เน้นเรื่องการปฏิบัติตามใบอนุญาต (license compliance) เหมาะสำหรับทีมกฎหมาย • CycloneDX: เน้นเรื่องความปลอดภัย เหมาะสำหรับทีม DevSecOps

ความรวดเร็วในการตอบสนองของคุณขึ้นอยู่กับ SBOM ในช่วงวิกฤต Log4j บริษัทที่มี SBOM สามารถระบุความเสี่ยงได้ภายในไม่กี่ชั่วโมง ในขณะที่บริษัทที่ไม่มีต้องใช้เวลาหลายสัปดาห์ในการตรวจสอบด้วยตนเอง

การโจมตีเมื่อเร็วๆ นี้อย่าง XZ Utils พิสูจน์ให้เห็นว่าช่องว่างนี้ยังคงมีอยู่ ผู้โจมตีมักซ่อนประตูหลัง (backdoors) ไว้ในไลบรารีทั่วไป หากไม่มีระบบอัตโนมัติ คุณจะไม่สามารถมองเห็นสิ่งเหล่านี้ได้เลย

กฎระเบียบต่างๆ ก็กำลังเปลี่ยนแปลงเช่นกัน:

• US Executive Order 14028: ผู้ขายให้กับหน่วยงานรัฐบาลกลางต้องจัดทำ SBOM • FDA Guidance: อุปกรณ์ทางการแพทย์จำเป็นต้องมี SBOM • EU Cyber Resilience Act: กำหนดให้ซอฟต์แวร์ในสหภาพยุโรปต้องมี SBOM ภายในปี 2027

วิธีการเริ่มต้น:

  1. เลือกมาตรฐาน: ใช้ CycloneDX สำหรับความปลอดภัย หรือ SPDX สำหรับใบอนุญาต
  2. สร้างแบบอัตโนมัติ: ใช้เครื่องมืออย่าง Syft สำหรับ images หรือ Snyk สำหรับ pipelines
  3. เชื่อมโยงกับฐานข้อมูล: เชื่อมรายการของคุณเข้ากับ NIST NVD หรือ OSV
  4. กำหนดตารางเวลา: สร้าง SBOM ในทุกๆ การ build

อย่าพยายามแก้ไขพอร์ตโฟลิโอทั้งหมดของคุณในคราวเดียว ให้เริ่มจากแอปพลิเคชันเดียวก่อน

จำไว้ว่า SBOM คือเครื่องมือวินิจฉัย มันบอกให้คุณรู้ว่าคุณมีอะไรอยู่ แต่มันไม่ได้แก้ปัญหาให้คุณ หาก SBOM แสดงช่องโหว่ 23 รายการ คุณยังคงต้องมีแผนในการแก้ไข (patch) ช่องโหว่เหล่านั้น

บริษัทที่ดีที่สุดไม่ได้มีแค่เครื่องมือ แต่พวกเขามีกระบวนการ พวกเขารู้ว่าใครเป็นเจ้าของ dependency ก่อนที่วิกฤตจะมาถึง

Source: https://dev.to/spicykim/the-nutrition-label-that-software-always-lacked-213 Full details: lucas8.com/what-is-sbom-software-bill-of-materials