บัญชีรายการวัสดุซอฟต์แวร์ (SBOM)
จัดทำรายการสิ่งที่ซอฟต์แวร์ของคุณประกอบด้วย
บัญชีรายการวัสดุซอฟต์แวร์ (SBOM) เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
SBOM คืออะไร
บัญชีรายการส่วนประกอบซอฟต์แวร์ (SBOM) คือบัญชีรายการอย่างเป็นทางการที่เครื่องสามารถอ่านได้ ซึ่งแสดงส่วนประกอบทุกอย่างภายในซอฟต์แวร์หนึ่งชิ้น ได้แก่ ไลบรารี รุ่น ใบอนุญาต และข้อมูลผู้จัดหา
เช่นเดียวกับฉลากอาหารที่แสดงรายการส่วนผสม SBOM ช่วยให้คุณตอบได้ภายในไม่กี่วินาทีว่า ผลิตภัณฑ์นี้มีรุ่นที่มีช่องโหว่ของ X อยู่หรือไม่ หากไม่มี SBOM คำถามนี้อาจต้องใช้เวลาหลายวันในการค้นหาด้วยตนเอง
เหตุใด SBOM จึงสำคัญในปัจจุบัน
เมื่อเกิดช่องโหว่ร้ายแรง คำถามแรกในการปฏิบัติงานคือเรื่องการเปิดรับความเสี่ยง: ผลิตภัณฑ์ใดของเราที่ส่งมอบส่วนประกอบซึ่งได้รับผลกระทบไปบ้าง
ระหว่างเหตุการณ์ล็อกโฟร์เชลล์ องค์กรที่มี SBOM สามารถค้นคลังรายการของตนและคัดแยกผลกระทบได้ภายในไม่กี่ชั่วโมง ส่วนองค์กรที่ไม่มีต้องใช้เวลาหลายสัปดาห์ค้นหาในไดเรกทอรีการสร้าง หน่วยงานกำกับดูแลและผู้ซื้อรายใหญ่กำหนดให้มี SBOM เป็นเงื่อนไขการจัดซื้อเพิ่มขึ้นเรื่อย ๆ
- วิเคราะห์ผลกระทบของช่องโหว่ได้อย่างรวดเร็ว
- ปฏิบัติตามใบอนุญาตและติดตามภาระหน้าที่
- สร้างความโปร่งใสของห่วงโซ่อุปทานให้ลูกค้าและผู้ตรวจสอบ
รูปแบบมาตรฐานของ SBOM
มีมาตรฐานเปิดสองรูปแบบที่ใช้กันอย่างแพร่หลาย เครื่องมือมักแปลงข้อมูลระหว่างสองรูปแบบนี้ได้
- SPDX — มาตรฐานของมูลนิธิลินุกซ์ มีจุดแข็งด้านใบอนุญาต และได้รับการยอมรับอย่างกว้างขวางจากหน่วยงานกำกับดูแล
- CycloneDX — มาตรฐานของ OWASP ที่เน้นความปลอดภัย และรองรับข้อมูลช่องโหว่กับความสัมพันธ์ของส่วนพึ่งพา
หลีกเลี่ยงการคิดค้นรูปแบบของคุณเอง เพราะผู้ใช้และเครื่องมือสแกนคาดหวังรูปแบบเหล่านี้
ข้อมูลที่ควรอยู่ในรายการ
รายการของแต่ละส่วนประกอบควรมีข้อมูลระบุตัวตนเพียงพอที่จะจับคู่กับแหล่งข้อมูลช่องโหว่ได้ ช่องข้อมูลสำคัญมีดังนี้:
- ชื่อและรุ่น — ต้องเป็นค่าที่เจาะจง ไม่ใช่ช่วง
- PURL (ที่อยู่แพ็กเกจสากล) — ตัวระบุสากล เช่น
pkg:npm/lodash@4.17.21 - ค่าแฮช — ใช้ตรวจสอบความถูกต้อง
- ใบอนุญาต — ตัวระบุใบอนุญาต SPDX
- ผู้จัดหา — ผู้ผลิตสิ่งนั้น
# A PURL uniquely identifies a component across ecosystems
pkg:npm/lodash@4.17.21
pkg:pypi/requests@2.31.0
pkg:golang/github.com/gin-gonic/gin@v1.9.1การสร้าง SBOM
สร้าง SBOM โดยอัตโนมัติจากต้นฉบับหรือจากอาร์ติแฟกต์ที่สร้างเสร็จแล้ว ไซฟต์ เป็นเครื่องมือสร้างที่ใช้กันทั่วไปและทำงานข้ามระบบนิเวศ ซึ่งส่งออกข้อมูลได้ทั้งสองมาตรฐาน
# from a project directory (CycloneDX JSON)
syft dir:. -o cyclonedx-json=sbom.cdx.json
# from a container image (SPDX JSON)
syft my-app:1.4.0 -o spdx-json=sbom.spdx.json
# CycloneDX has native generators per ecosystem too
cyclonedx-npm --output-file sbom.jsonSBOM จากต้นฉบับ เทียบกับจากการสร้างและขณะทำงาน
SBOM ที่สร้างขึ้นในขั้นตอนต่างกันจะสะท้อนข้อเท็จจริงคนละด้าน
- SBOM จากต้นฉบับ — สิ่งที่ไฟล์รายการประกาศไว้ อาจไม่รวมโค้ดที่รวมไว้ในชุดหรือโค้ดที่นำมาไว้ภายใน
- SBOM จากการสร้าง — สิ่งที่กระบวนการสร้างดึงเข้ามาจริง เหมาะสมที่สุดสำหรับรุ่นเผยแพร่
- SBOM ขณะทำงาน / ที่นำไปใช้งาน — สิ่งที่มีอยู่จริงในอิมเมจที่กำลังทำงาน รวมถึงแพ็กเกจ OS
เพื่อรับรองความปลอดภัยของห่วงโซ่อุปทาน ให้สร้าง SBOM ระหว่างการสร้างจากอาร์ติแฟกต์จริง และสแกนคอนเทนเนอร์สุดท้ายเพื่อตรวจหาแพ็กเกจระดับ OS ด้วย
การสแกน SBOM เพื่อหาช่องโหว่
SBOM จะมีประสิทธิภาพมากขึ้นเมื่อป้อนให้เครื่องมือจับคู่ที่เชื่อมโยงส่วนประกอบกับ CVE ที่ทราบแล้ว วิธีนี้แยกการสร้างออกจากการวิเคราะห์ ทำให้คุณสามารถสแกน SBOM เก่าได้ในวันที่มีการเปิดเผย CVE ใหม่
# match an SBOM against vulnerability databases
grype sbom:sbom.cdx.json
# OSV scanner consumes SBOMs directly
osv-scanner --sbom=sbom.spdx.json
# fail CI above a severity threshold
grype sbom:sbom.cdx.json --fail-on highVEX: การระบุสิ่งที่ใช้โจมตีได้
SBOM อาจแสดงส่วนประกอบที่มีช่องโหว่แต่ ไม่สามารถใช้โจมตีผลิตภัณฑ์ของคุณได้จริง (ไม่มีการเรียกใช้ฟังก์ชันที่มีช่องโหว่) เอกสาร VEX (การแลกเปลี่ยนข้อมูลการใช้ประโยชน์จากช่องโหว่ หรือ eXchange) จะบันทึกผลการประเมินดังกล่าว
VEX ช่วยลดสัญญาณรบกวน: แทนที่จะทำให้ลูกค้าทุกรายตื่นตระหนกกับ CVE ที่แสดงอยู่ คุณสามารถเผยแพร่คำชี้แจง not_affected พร้อมเหตุผล หรือ affected พร้อมแนวทางแก้ไขได้ วิธีนี้เปลี่ยนบัญชีรายการดิบให้เป็นการคัดแยกที่นำไปปฏิบัติได้
การแจกจ่ายและลงนาม SBOM
SBOM จะน่าเชื่อถือก็ต่อเมื่อเป็นของแท้และเชื่อมโยงกับอาร์ติแฟกต์ที่ตรงกันทุกประการ ลงนาม SBOM และแนบเป็นคำรับรอง แทนการเก็บไว้เป็นไฟล์เดี่ยวที่ไม่มีการเชื่อมโยง
# attach a signed SBOM attestation to an image with cosign
cosign attest --predicate sbom.cdx.json \
--type cyclonedx \
my-registry/my-app:1.4.0
# verify the attached SBOM attestation
cosign verify-attestation --type cyclonedx my-registry/my-app:1.4.0การทำ SBOM โดยอัตโนมัติในระบบผสานรวมอย่างต่อเนื่อง
SBOM ที่จัดทำด้วยมือจะคลาดเคลื่อนจากความเป็นจริงทันที ให้เชื่อมการสร้างเข้ากับสายงาน เพื่อให้การเผยแพร่ทุกรุ่นสร้างและจัดเก็บ SBOM หนึ่งรายการเป็นอาร์ติแฟกต์จากการสร้าง โดยควรลงนามและสแกนในงานเดียวกัน
- สร้างจากอาร์ติแฟกต์ที่สร้างเสร็จแล้ว ไม่ใช่จากคลังโค้ดเพียงอย่างเดียว
- จัดเก็บ SBOM ไว้ในคลังที่สืบค้นได้ โดยใช้รุ่นเป็นดัชนี
- สแกน SBOM ที่จัดเก็บไว้อีกครั้งตามกำหนดเวลา โดยเปรียบเทียบกับแหล่งข้อมูล CVE ล่าสุด
- ควบคุมการเผยแพร่ด้วยผลการสแกนช่องโหว่
จุดผิดพลาดทั่วไปของ SBOM
SBOM มักล้มเหลวโดยไม่มีใครสังเกตเมื่อถูกจัดทำเพียงเพื่อให้ครบรายการตรวจสอบ
- ล้าสมัย — สร้างเพียงครั้งเดียวและไม่เคยสร้างใหม่
- ไม่ครบถ้วน — ไม่รวมแพ็กเกจ OS โค้ดที่เชื่อมโยงแบบคงที่ หรือโค้ดที่นำมาไว้ภายใน
- ไม่ได้ตรวจสอบ — ไม่มีค่าแฮชที่เชื่อมโยงกับอาร์ติแฟกต์ที่นำไปใช้งาน
- ไม่ถูกนำไปใช้ — สร้างขึ้นแต่ไม่เคยสแกนหรือค้นสอบถาม
เป้าหมายคือ SBOM ที่ถูกต้อง สร้างใหม่ ลงนาม และสแกนอย่างต่อเนื่อง ไม่ใช่ไฟล์ข้อมูลเจสันที่สร้างขึ้นเพียงครั้งเดียว
ตรวจสอบความเข้าใจ: จุดประสงค์ของ SBOM
นำสิ่งที่คุณเรียนรู้ไปประยุกต์ใช้กับสถานการณ์เหตุการณ์หนึ่ง
ทบทวน: SBOM
ขณะนี้คุณสามารถจัดทำบัญชีรายการสิ่งที่ซอฟต์แวร์มีอยู่และดำเนินการกับข้อมูลนั้นได้แล้ว
- SBOM คือรายการส่วนประกอบทุกอย่างที่เครื่องอ่านได้ ในรูปแบบ SPDX หรือ CycloneDX
- ระบุส่วนประกอบด้วย PURL รุ่น ค่าแฮช และใบอนุญาต
- สร้างใน ระหว่างการสร้าง จากนั้นป้อนให้เครื่องมือจับคู่ (ไกรป์, โอเอสวี-สแกนเนอร์) เพื่อค้นหา CVE
- ใช้ VEX เพื่อระบุความสามารถในการใช้โจมตีได้จริงและลดสัญญาณเตือนเท็จ
- ลงนามและทำให้เป็นอัตโนมัติในระบบผสานรวมอย่างต่อเนื่อง แล้วสแกน SBOM ที่จัดเก็บไว้อีกครั้งเทียบกับแหล่งข้อมูลใหม่
ถัดไป: พิสูจน์แหล่งที่มาของอาร์ติแฟกต์ด้วยการลงนาม
เรียนรู้ Cyber Security Academy ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 76
- บทเรียน
- 303
คำถามที่พบบ่อย
บทเรียน “บัญชีรายการวัสดุซอฟต์แวร์ (SBOM)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “บัญชีรายการวัสดุซอฟต์แวร์ (SBOM)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “บัญชีรายการวัสดุซอฟต์แวร์ (SBOM)”
จัดทำรายการสิ่งที่ซอฟต์แวร์ของคุณประกอบด้วย คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “บัญชีรายการวัสดุซอฟต์แวร์ (SBOM)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ภัยคุกคามต่อห่วงโซ่อุปทาน
- บัญชีรายการวัสดุซอฟต์แวร์ (SBOM)
- การลงลายมือชื่อการพึ่งพาและสิ่งส่งมอบ
- การรักษาความปลอดภัยไปป์ไลน์ CI/CD