ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)
ปกป้องไปป์ไลน์จากแพ็กเกจของบุคคลที่สามที่มีช่องโหว่ด้วยการวิเคราะห์องค์ประกอบซอฟต์แวร์ Dependabot การตรวจสอบทรัพยากรพึ่งพา และแอ็กชันที่ตรึงเวอร์ชันไว้
ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
ความเสี่ยงของห่วงโซ่อุปทาน
แอปพลิเคชันสมัยใหม่สร้างขึ้นจาก การพึ่งพาจากบุคคลที่สาม เป็นส่วนใหญ่ แพ็กเกจที่มีช่องโหว่เพียงรายการเดียวซึ่งอยู่ลึกในโครงสร้างการพึ่งพา อาจทำให้แอปทั้งหมดถูกโจมตีได้
นี่คือความเสี่ยงของ ห่วงโซ่อุปทานซอฟต์แวร์ และการรักษาความปลอดภัยให้ห่วงโซ่นี้เป็นส่วนสำคัญของ DevSecOps
SCA คืออะไร
การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA) จะสแกนการพึ่งพาของโครงการและเปรียบเทียบกับฐานข้อมูลช่องโหว่ที่ทราบ (CVE)
SAST ตรวจสอบโค้ดของคุณ แต่ SCA มุ่งเน้นที่ไลบรารีที่คุณนำเข้า
- ตรวจจับเวอร์ชันที่มีช่องโหว่ที่ทราบ
- แจ้งใบอนุญาตที่มีความเสี่ยงหรือเข้ากันไม่ได้
- แนะนำเวอร์ชันที่ปลอดภัยสำหรับการอัปเกรด
การแจ้งเตือนของ Dependabot
GitHub มี Dependabot ซึ่งจะสแกนไฟล์แมนนิเฟสต์ของคุณอย่างต่อเนื่อง และแจ้งเตือนเมื่อการพึ่งพารายการใดมีช่องโหว่ที่ทราบ
คุณเปิดใช้งานได้ที่ การตั้งค่า > ความปลอดภัยของโค้ดและการวิเคราะห์ การแจ้งเตือนจะแสดงในแท็บความปลอดภัยพร้อมระดับความรุนแรง
การอัปเดตการพึ่งพาอัตโนมัติ
Dependabot ยังสามารถเปิดคำขอดึงเพื่อปรับเพิ่มเวอร์ชันของการพึ่งพาที่มีช่องโหว่โดยอัตโนมัติได้อีกด้วย ให้กำหนดค่าด้วยไฟล์ dependabot.yml
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule:
interval: weeklyการตรวจสอบการพึ่งพาใน PR
dependency-review-action จะทำงานกับคำขอดึง และบล็อกการผสานหาก PR นั้นเพิ่มการพึ่งพาที่มีช่องโหว่ที่ทราบ
วิธีนี้ทำให้ตรวจสอบความปลอดภัยได้ตั้งแต่เนิ่น ๆ โดยตรวจจับแพ็กเกจที่มีความเสี่ยงก่อนจะไปถึงสาขาหลัก
- name: Dependency Review
uses: actions/dependency-review-action@v4
with:
fail-on-severity: highการตรึงเวอร์ชันแอ็กชัน
แอ็กชันที่คุณเรียกใช้ในเวิร์กโฟลว์ก็เป็นการพึ่งพาเช่นกัน การอ้างอิง @v4 หมายถึงการไว้วางใจผู้ที่ควบคุมแท็กนั้น
เพื่อความปลอดภัยสูงสุด ให้ตรึงแอ็กชันไว้กับ ค่า SHA ของคอมมิต แบบเต็ม ซึ่งไม่สามารถเปลี่ยนแปลงได้
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11ไฟล์ล็อกมีความสำคัญ
ไฟล์ล็อก เช่น package-lock.json หรือ poetry.lock จะตรึงเวอร์ชันและค่าแฮชของการพึ่งพาไว้แบบเจาะจง
ใน CI ให้ใช้คำสั่งติดตั้งแบบกำหนดผลแน่นอน เพื่อให้บิลด์สร้างซ้ำได้เหมือนเดิมและไม่สามารถดึงเวอร์ชันที่ถูกแก้ไขโดยมิชอบมาใช้อย่างเงียบ ๆ
- name: Install (locked)
run: npm ciการสร้าง SBOM
บัญชีรายการวัสดุซอฟต์แวร์ (SBOM) คือรายการส่วนประกอบทุกอย่างที่อยู่ในบิลด์ของคุณอย่างครบถ้วน และเป็นสิ่งที่ข้อกำหนดด้านการปฏิบัติตามกฎระเบียบต้องการมากขึ้นเรื่อย ๆ
GitHub สามารถส่งออก SBOM ในรูปแบบ SPDX ได้ และเครื่องมืออย่าง Syft ก็สามารถสร้างรายการดังกล่าวภายใน CI ได้
- name: Generate SBOM
uses: anchore/sbom-action@v0
with:
format: spdx-jsonการปฏิบัติตามใบอนุญาต
SCA ยังครอบคลุม ความเสี่ยงด้านใบอนุญาต ด้วย การนำไลบรารีที่ได้รับอนุญาตภายใต้ GPL มาใช้ในผลิตภัณฑ์กรรมสิทธิ์อาจก่อให้เกิดภาระผูกพันทางกฎหมาย
กำหนดค่าเครื่องมือสแกนให้แจ้งหรือปฏิเสธใบอนุญาตที่ไม่อนุญาต เพื่อให้ปัญหาปรากฏใน CI แทนที่จะเกิดขึ้นระหว่างการตรวจสอบ
การทำให้บิลด์ล้มเหลว
การตรวจจับจะมีประโยชน์ก็ต่อเมื่อสามารถหยุดโค้ดที่ไม่ปลอดภัยได้ กำหนดเกณฑ์ SCA ให้ ทำให้ไปป์ไลน์ล้มเหลว เมื่อพบช่องโหว่ระดับวิกฤต
กำหนดเกณฑ์ระดับความรุนแรง เพื่อให้ผลการตรวจพบที่มีความเสี่ยงต่ำแสดงคำเตือน ส่วนผลการตรวจพบระดับวิกฤตจะบล็อกการผสานหรือการปรับใช้
with:
fail-on-severity: criticalการตรวจสอบอย่างต่อเนื่อง
มีการเปิดเผยช่องโหว่ใหม่ทุกวัน ดังนั้นการสแกนเพียงครั้งเดียวจึงไม่เพียงพอ ให้เรียกใช้ SCA ตามกำหนดเวลาและทุกครั้งที่มี PR
วิธีนี้จะตรวจจับแพ็กเกจที่ปลอดภัยในเวลาผสาน แต่กลายเป็นมีช่องโหว่ในภายหลัง
on:
schedule:
- cron: '0 6 * * 1'ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจของคุณเกี่ยวกับความปลอดภัยของห่วงโซ่อุปทาน
ทบทวน
คุณได้เรียนรู้การรักษาความปลอดภัยให้กับ ห่วงโซ่อุปทานซอฟต์แวร์
- SCA สแกนการพึ่งพาเพื่อค้นหาช่องโหว่ที่ทราบ
- Dependabot แจ้งเตือนและอัปเดตแพ็กเกจที่มีความเสี่ยงโดยอัตโนมัติ
- การตรวจสอบการพึ่งพา บล็อก PR ที่มีความเสี่ยง
- ตรึงแอ็กชันไว้กับค่า SHA ใช้ไฟล์ล็อก และสร้าง SBOM
เมื่อทำงานร่วมกับ SAST และการจัดการความลับ องค์ประกอบเหล่านี้จะช่วยให้ไปป์ไลน์มีความปลอดภัยครบถ้วนยิ่งขึ้น
เรียนรู้ DevOps Bootcamp ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 142
- บทเรียน
- 568
คำถามที่พบบ่อย
บทเรียน “ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)”
ปกป้องไปป์ไลน์จากแพ็กเกจของบุคคลที่สามที่มีช่องโหว่ด้วยการวิเคราะห์องค์ประกอบซอฟต์แวร์ Dependabot การตรวจสอบทรัพยากรพึ่งพา และแอ็กชันที่ตรึงเวอร์ชันไว้ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยใน CI/CD
- การจัดการข้อมูลลับด้วย GitHub
- การทดสอบความปลอดภัยแอปพลิเคชันแบบคงที่ (SAST)
- ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)