DevOps Bootcamp · บทเรียน

ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)

ปกป้องไปป์ไลน์จากแพ็กเกจของบุคคลที่สามที่มีช่องโหว่ด้วยการวิเคราะห์องค์ประกอบซอฟต์แวร์ Dependabot การตรวจสอบทรัพยากรพึ่งพา และแอ็กชันที่ตรึงเวอร์ชันไว้

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

ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยใน CI/CD
  2. การจัดการข้อมูลลับด้วย GitHub
  3. การทดสอบความปลอดภัยแอปพลิเคชันแบบคงที่ (SAST)
  4. ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)
← กลับไปที่ DevOps Bootcamp