Cyber Security Academy · บทเรียน

บัญชีรายการวัสดุซอฟต์แวร์ (SBOM)

จัดทำรายการสิ่งที่ซอฟต์แวร์ของคุณประกอบด้วย

บทเรียน 2 จาก 413 ขั้นตอน

บัญชีรายการวัสดุซอฟต์แวร์ (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.json

SBOM จากต้นฉบับ เทียบกับจากการสร้างและขณะทำงาน

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 high

VEX: การระบุสิ่งที่ใช้โจมตีได้

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ภัยคุกคามต่อห่วงโซ่อุปทาน
  2. บัญชีรายการวัสดุซอฟต์แวร์ (SBOM)
  3. การลงลายมือชื่อการพึ่งพาและสิ่งส่งมอบ
  4. การรักษาความปลอดภัยไปป์ไลน์ CI/CD
← กลับไปที่ Cyber Security Academy