0Pricing
DevOps Bootcamp · บทเรียน

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยใน CI/CD

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

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

เหตุใดความปลอดภัยของ CI/CD จึงสำคัญ

ในการพัฒนาซอฟต์แวร์สมัยใหม่ ไปป์ไลน์ CI/CD มีความสำคัญอย่างยิ่ง เพราะช่วยทำให้การสร้าง การทดสอบ และการนำโค้ดของคุณไปใช้งานเป็นไปโดยอัตโนมัติ

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

ระบุช่องโหว่ในไปป์ไลน์

ก่อนจะรักษาความปลอดภัย เราต้องเข้าใจก่อนว่ากำลังป้องกันภัยประเภทใด ไปป์ไลน์ CI/CD อาจมีช่องโหว่ต่อการโจมตีหลายประเภท:

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

ใช้การเข้าถึงตามหลักสิทธิ์น้อยที่สุด

หลักการให้สิทธิ์เท่าที่จำเป็น (PoLP) หมายถึงการให้ผู้ใช้และกระบวนการอัตโนมัติ เช่น งาน CI/CD มีสิทธิ์เพียงขั้นต่ำที่จำเป็นต่อการทำงานของตน และไม่มากไปกว่านั้น

วิธีนี้จะจำกัดความเสียหายที่อาจเกิดขึ้นหากข้อมูลรับรองหรืองานถูกบุกรุก สำหรับการทำงานของ GitHub ให้กำหนดสิทธิ์เฉพาะสำหรับแต่ละงาน

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read # Only read access to repo code
      packages: write # Only write to package registry
      id-token: write # Needed for OIDC authentication
    steps:
      - uses: actions/checkout@v4
      - run: echo "Build logic here"

ปกป้องโค้ดและส่วนพึ่งพา

โค้ดต้นฉบับคือหัวใจของแอปพลิเคชัน คุณควรตรวจสอบให้มั่นใจว่าโค้ดปลอดภัยตั้งแต่เริ่มต้น

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

จัดการส่วนพึ่งพาจากบุคคลที่สาม

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

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

เสริมความปลอดภัยให้สภาพแวดล้อมการสร้าง

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

  • ตัวประมวลผลชั่วคราว: ใช้สภาพแวดล้อมใหม่ที่แยกจากกันสำหรับแต่ละงาน โดยตัวประมวลผลที่โฮสต์โดย GitHub จะเป็นแบบชั่วคราวโดยค่าเริ่มต้น
  • เครื่องมือเท่าที่จำเป็น: ติดตั้งเฉพาะเครื่องมือที่จำเป็นเพื่อลดพื้นที่การโจมตี
  • อิมเมจพื้นฐานที่ปลอดภัย: หากใช้คอนเทนเนอร์ ให้ใช้อิมเมจพื้นฐานที่เชื่อถือได้และเสริมความปลอดภัยแล้ว

อย่าฝังข้อมูลลับในโค้ด

ข้อมูลสำคัญ เช่น คีย์ API ข้อมูลรับรองฐานข้อมูล หรือโทเค็นส่วนตัว ไม่ควรถูกฝังไว้โดยตรงในที่เก็บโค้ดหรือไฟล์เวิร์กโฟลว์ของคุณโดยเด็ดขาด NEVER

ใช้ระบบจัดการข้อมูลลับที่ปลอดภัยเสมอ วิธีนี้จะเก็บข้อมูลสำคัญออกจากระบบควบคุมเวอร์ชันและเข้ารหัสข้อมูลเหล่านั้น

ตรวจสอบอินพุตของเวิร์กโฟลว์

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

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

on:
  workflow_dispatch:
    inputs:
      deploy_env:
        description: 'Environment to deploy to (e.g., staging, production)'
        required: true
        type: choice
        options:
          - 'staging'
          - 'production'
      version_tag:
        description: 'Git tag for the release version'
        required: true
        type: string

บันทึกและตรวจสอบกิจกรรมของไปป์ไลน์

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

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

ตรวจสอบความเข้าใจของคุณ

มาทดสอบความรู้ของคุณเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ CI/CD กัน

สรุปบทเรียนและขั้นตอนถัดไป

ขอแสดงความยินดี คุณได้เรียนรู้แนวทางปฏิบัติที่ดีที่สุดที่จำเป็นสำหรับความปลอดภัยของไปป์ไลน์ CI/CD แล้ว

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

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

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

บทเรียน “แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยใน CI/CD” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยใน CI/CD”

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

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

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

บทเรียน “แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยใน CI/CD” ใช้เวลานานแค่ไหน

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

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

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

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

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