0Pricing
Cyber Security Academy · บทเรียน

การรักษาความปลอดภัยไปป์ไลน์ CI/CD

เสริมความแข็งแกร่งให้เส้นทางการสร้างและเผยแพร่

การรักษาความปลอดภัยไปป์ไลน์ CI/CD เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

กระบวนการทำงานในฐานะเป้าหมาย

กระบวนการ CI/CD มีสิทธิ์เข้าถึงซอร์สโค้ด ข้อมูลลับ และระบบจริงในระดับสูง หากผู้โจมตีเจาะระบบนี้ได้ ก็สามารถแทรกช่องทางลับลงในการสร้างครั้งต่อ ๆ ไปทุกครั้งโดยหลบเลี่ยงการตรวจสอบโค้ดได้ กระบวนการนี้จึงเป็นหนึ่งในเป้าหมายที่มีมูลค่าสูงที่สุดในงานวิศวกรรมสมัยใหม่

ให้ถือว่ากระบวนการทำงานเป็นโครงสร้างพื้นฐานของระบบจริง ซึ่งสมควรได้รับการเสริมความปลอดภัย การเฝ้าติดตาม และการจำกัดสิทธิ์ให้น้อยที่สุดในระดับเดียวกับระบบที่ใช้งานจริง

ข้อมูลนำเข้าที่ไม่น่าเชื่อถือในการสร้าง

กระบวนการทำงานจะทำงานโดยอัตโนมัติเมื่อเกิดเหตุการณ์ที่คุณควบคุมไม่ได้ทั้งหมด เช่น คำขอเปลี่ยนแปลง แท็ก และการส่งผลงานจากภายนอก คำขอเปลี่ยนแปลงที่เป็นอันตรายอาจพยายามแก้ไขตัวกระบวนการสร้างเอง

  • คำจำกัดความกระบวนการทำงานที่เป็นพิษในสำเนาแยกอาจพยายามลักลอบนำข้อมูลลับออกไป
  • โค้ดที่ไม่น่าเชื่อถืออาจทำงานด้วยสิทธิ์เดียวกับการสร้างที่เชื่อถือได้

แยกกระบวนการทำงานที่เชื่อถือได้และไม่น่าเชื่อถือออกจากกัน: อย่าเปิดเผยข้อมูลลับให้กับงานที่ถูกเรียกใช้โดยคำขอเปลี่ยนแปลงจากภายนอก

ตรึงแอ็กชันและอิมเมจของคุณ

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

# BAD: mutable tag can be moved under you
uses: some/action@v3

# GOOD: pinned to an immutable commit SHA
uses: some/action@a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0

# pin container steps by digest too
image: build-tools@sha256:9f86d081884c7d659a2feaa0c55ad015...

สิทธิ์น้อยที่สุดสำหรับโทเค็น

โทเค็นเริ่มต้นของกระบวนการทำงานมักมีสิทธิ์มากเกินไป โดยให้สิทธิ์เขียนแก่ทั้งที่เก็บหรือรีจิสทรี จำกัดขอบเขตให้เหลือเพียงสิ่งที่แต่ละงานต้องใช้เท่านั้น

# scope the default token to read-only, grant more only where needed
permissions:
  contents: read

jobs:
  publish:
    permissions:
      contents: read
      packages: write   # only this job can publish

การจัดการข้อมูลลับอย่างปลอดภัย

ข้อมูลลับที่ฝังตายตัวหรือใช้ร่วมกันอย่างกว้างขวางเป็นช่องทางหลักที่ทำให้ข้อมูลรั่วไหล ควรจัดการอย่างเข้มงวด:

  • จัดเก็บข้อมูลลับไว้ในตัวจัดการข้อมูลลับหรือที่จัดเก็บข้อมูลลับของ CI ห้ามเก็บไว้ในโค้ด
  • ควรใช้การเชื่อมโยง OIDC แบบอายุสั้นแทนกุญแจระบบคลาวด์แบบคงที่
  • ปิดบังข้อมูลลับในบันทึกและป้องกันการพิมพ์ข้อมูลดังกล่าวซ้ำ
  • จำกัดขอบเขตของข้อมูลลับแต่ละรายการให้เหลือเฉพาะงานและสภาพแวดล้อมขั้นต่ำที่จำเป็น

การเชื่อมโยง OIDC ช่วยให้กระบวนการทำงานแลกเปลี่ยนตัวตนขณะสร้างกับข้อมูลรับรองระบบคลาวด์อายุสั้น จึงนำกุญแจที่มีอายุการใช้งานยาวนานออกไปได้ทั้งหมด

ตัวประมวลผลชั่วคราวแบบแยกเดี่ยว

ตัวประมวลผลการสร้างที่นำกลับมาใช้ใหม่อาจนำมัลแวร์หรือข้อมูลลับที่รั่วไหลจากงานหนึ่งไปยังงานถัดไปได้ ตัวประมวลผลชั่วคราวจะถูกสร้างขึ้นใหม่สำหรับแต่ละงานและทำลายทิ้งภายหลัง จึงไม่มีสิ่งใดตกค้าง

  • สภาพแวดล้อมสะอาดหนึ่งชุดต่อการสร้างหนึ่งครั้ง แล้วทิ้งไป
  • ไม่มีสถานะร่วมกันระหว่างงานที่เชื่อถือได้และไม่น่าเชื่อถือ
  • จำกัดการส่งข้อมูลออกเครือข่ายให้เหลือเฉพาะปลายทางที่จำเป็น

สิ่งนี้สนับสนุนเป้าหมายการแยกออกจากกันของ SLSA L3 โดยตรง

ปกป้องสาขาต้นทาง

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

  • กำหนดให้มีการตรวจสอบ PRก่อนผสานรวม
  • บังคับใช้คอมมิตที่ลงลายมือชื่อบนสาขาที่ได้รับการปกป้อง
  • กำหนดให้การตรวจสอบสถานะ (การทดสอบ การสแกน) ผ่าน
  • ห้ามการส่งแบบบังคับและการส่งโดยตรงไปยัง main
# require signed commits on a branch
git config commit.gpgsign true

# verify a commit signature locally
git verify-commit HEAD

สแกนภายในกระบวนการทำงาน

ฝังด่านความปลอดภัยไว้ใน CI โดยตรง เพื่อให้ปัญหาทำให้การสร้างล้มเหลวแทนที่จะไปถึงระบบจริง

# secret leak detection
gitleaks detect --source . --redact

# dependency vulnerabilities
osv-scanner --lockfile=package-lock.json

# IaC and config misconfig
trivy config .

# fail the job on critical findings (non-zero exit stops CI)

การควบคุมการเผยแพร่โดยสองบุคคล

การดำเนินการที่มีผลกระทบสูงควรมีด่านตรวจสอบโดยมนุษย์ การนำไปใช้งานในระบบจริงและการเปลี่ยนแปลงข้อมูลรับรองควรต้องได้รับอนุมัติจากบุคคลอื่นที่ไม่ใช่ผู้เขียน

  • กฎการปกป้องสภาพแวดล้อมกำหนดให้มีผู้ตรวจสอบก่อนนำไปใช้งาน
  • แยกตัวตนสำหรับการสร้างออกจากตัวตนสำหรับการนำไปใช้งาน
  • ไม่มีผู้ดำเนินการเพียงคนเดียวที่สามารถทั้งเขียนโค้ดและส่งโค้ดขึ้นระบบจริงโดยไม่มีการตรวจสอบ

สิ่งนี้จำกัดทั้งความเสี่ยงจากบุคคลภายในและขอบเขตความเสียหายจากบัญชีผู้ใช้หนึ่งบัญชีที่ถูกเจาะระบบ

การตรวจสอบและหลักฐานการแก้ไข

คุณต้องสามารถสร้างภาพย้อนหลังได้ว่ากระบวนการทำงานดำเนินการอะไรไปบ้าง จัดเก็บบันทึกไว้ที่ศูนย์กลางและปกป้องบันทึกเหล่านั้น

  • ส่งบันทึก CI ไปยังที่จัดเก็บแบบเพิ่มข้อมูลได้อย่างเดียวซึ่งควบคุมสิทธิ์การเข้าถึง
  • บันทึกว่าใครแก้ไขคำจำกัดความของกระบวนการทำงานและแก้ไขเมื่อใด
  • สร้างข้อมูลแหล่งที่มาที่ลงลายมือชื่อเพื่อให้อาร์ติแฟกต์ย้อนกลับไปยังการสร้างครั้งใดครั้งหนึ่งได้
  • แจ้งเตือนความผิดปกติ: ตัวประมวลผลที่โฮสต์เองรายใหม่ การเข้าถึงข้อมูลลับที่ไม่คาดหมาย การเปลี่ยนแปลงการตั้งค่านอกกระบวนการตรวจสอบ

รายการตรวจสอบการเสริมความปลอดภัยให้กระบวนการทำงาน

กระบวนการทำงานที่ป้องกันได้ดีจะผสานการควบคุมต้นทาง การสร้าง และการเผยแพร่เข้าด้วยกัน:

  • การปกป้องสาขา คอมมิตที่ผ่านการตรวจสอบและลงลายมือชื่อ
  • แอ็กชันและอิมเมจที่ตรึงด้วยไดเจสต์
  • โทเค็น OIDC ที่มีสิทธิ์น้อยที่สุดและมีอายุสั้น
  • ตัวประมวลผลชั่วคราวแบบแยกเดี่ยว
  • การสแกนข้อมูลลับ ส่วนพึ่งพา และการตั้งค่าภายในกระบวนการทำงาน
  • การอนุมัติการเผยแพร่โดยสองบุคคล
  • อาร์ติแฟกต์ที่ลงลายมือชื่อ SBOM และข้อมูลแหล่งที่มา พร้อมการบันทึกการตรวจสอบ

ตรวจสอบความเข้าใจอย่างรวดเร็ว: สิทธิ์ของโทเค็น

ตัดสินใจว่ามาตรการควบคุมใดเหมาะสมสำหรับโทเค็นการสร้างที่มีสิทธิ์สูง

สรุป: การรักษาความปลอดภัยกระบวนการ CI/CD

คุณได้เรียนรู้วิธีเสริมความปลอดภัยให้เส้นทางการสร้างและการเผยแพร่ทั้งหมด

  • ถือว่ากระบวนการทำงานเป็นระบบจริง เพราะสามารถฝังช่องทางลับในการสร้างครั้งต่อ ๆ ไปทุกครั้ง
  • แยกการสร้างจาก PR ที่ไม่น่าเชื่อถือออกจากข้อมูลลับ
  • ตรึงแอ็กชันและอิมเมจด้วยไดเจสต์ และใช้โทเค็น OIDC ที่มีสิทธิ์น้อยที่สุดและมีอายุสั้น
  • ใช้ตัวประมวลผลชั่วคราวแบบแยกเดี่ยวและปกป้องสาขาต้นทาง
  • สแกนภายในกระบวนการทำงาน กำหนดให้มีการอนุมัติการเผยแพร่โดยสองบุคคล และเก็บบันทึกการตรวจสอบที่แสดงหลักฐานการแก้ไข

จบหลักสูตร: ตอนนี้คุณสามารถรักษาความปลอดภัยให้ห่วงโซ่อุปทานซอฟต์แวร์ตั้งแต่ต้นจนจบได้แล้ว

คำถามที่พบบ่อย

บทเรียน “การรักษาความปลอดภัยไปป์ไลน์ CI/CD” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การรักษาความปลอดภัยไปป์ไลน์ CI/CD” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การรักษาความปลอดภัยไปป์ไลน์ CI/CD”

เสริมความแข็งแกร่งให้เส้นทางการสร้างและเผยแพร่ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การรักษาความปลอดภัยไปป์ไลน์ CI/CD” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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