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

การสแกนความปลอดภัยของอิมเมจคอนเทนเนอร์

ผสานเครื่องมือสแกนอิมเมจเข้ากับไปป์ไลน์ CI/CD เพื่อระบุช่องโหว่ในอิมเมจ Docker

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

เหตุใดจึงต้องสแกนอิมเมจคอนเทนเนอร์

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

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

การสแกนความปลอดภัยของอิมเมจคอนเทนเนอร์ — ภาพประกอบ 1

อันตรายที่ซ่อนอยู่ในอิมเมจ

ช่องโหว่ประเภทใดบ้างที่อาจซ่อนอยู่ในอิมเมจคอนเทนเนอร์ของคุณ

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

วิธีการทำงานของเครื่องมือสแกนอิมเมจ

เครื่องมือสแกนอิมเมจคอนเทนเนอร์ทำงานโดย:

  • วิเคราะห์เลเยอร์: ตรวจสอบแต่ละเลเยอร์ของอิมเมจ Docker
  • แยกส่วนประกอบ: ระบุแพ็กเกจ ไลบรารี และส่วนพึ่งพาที่ติดตั้งไว้ทั้งหมด (เช่น แพ็กเกจระบบปฏิบัติการ ไลบรารี Python และโมดูล Node.js)
  • เปรียบเทียบกับฐานข้อมูล: ตรวจสอบส่วนประกอบเหล่านี้กับฐานข้อมูลช่องโหว่ขนาดใหญ่ที่มีการอัปเดตเป็นประจำ (เช่น ฐานข้อมูล CVE)
  • สร้างรายงาน: แสดงรายการช่องโหว่ที่ตรวจพบ ระดับความรุนแรง และมักมีคำแนะนำในการแก้ไข

เครื่องมือที่ใช้

มีเครื่องมือที่ทรงพลังหลายรายการสำหรับสแกนอิมเมจคอนเทนเนอร์ ทั้งแบบโอเพนซอร์สและเชิงพาณิชย์:

  • Trivy: เครื่องมือสแกนแบบโอเพนซอร์สยอดนิยม ซึ่งขึ้นชื่อเรื่องการใช้งานง่ายและครอบคลุม
  • Clair: ตัวเลือกแบบโอเพนซอร์สที่มีประสิทธิภาพอีกตัวหนึ่ง มักผสานรวมอยู่ในรีจิสทรีคอนเทนเนอร์ขนาดใหญ่
  • Docker Scout (ผ่าน docker scan): เครื่องมือที่มีอยู่ใน Docker Desktop ซึ่งใช้ฐานข้อมูลช่องโหว่ของ Snyk เพื่อสแกนภายในเครื่องได้อย่างรวดเร็ว

การสแกนอิมเมจภายในเครื่อง

มาลองสแกนอิมเมจ Docker ทั่วไปอย่างรวดเร็วโดยใช้คำสั่งในตัว docker scan กัน คำสั่งนี้ใช้ Docker Scout (ขับเคลื่อนโดย Snyk) เพื่อตรวจหาช่องโหว่

ลองเรียกใช้ตัวอย่างนี้:

docker scan nginx:latest

ทำความเข้าใจผลลัพธ์

หลังจากสแกนแล้ว คุณจะได้รับรายงาน สิ่งที่ควรดูมีดังนี้:

  • รหัส CVE: ตัวระบุเฉพาะสำหรับช่องโหว่ (เช่น CVE-2023-1234)
  • ระดับความรุนแรง: ระบุว่าช่องโหว่มีความร้ายแรงเพียงใด (เช่น วิกฤต สูง ปานกลาง ต่ำ)
  • แพ็กเกจ: คอมโพเนนต์ซอฟต์แวร์หรือไลบรารีเฉพาะที่มีข้อบกพร่อง
  • เวอร์ชันที่แก้ไขแล้ว: บ่อยครั้งรายงานจะแนะนำเวอร์ชันของแพ็กเกจหรืออิมเมจพื้นฐานที่แก้ไขปัญหานั้นแล้ว

การสแกนในกระบวนการทำงานของคุณ

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

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

ทำให้การสแกนด้วย CI เป็นอัตโนมัติ

ต่อไปนี้คือตัวอย่างแนวคิดของการผสานการสแกนด้วย Trivy เข้ากับกระบวนการทำงานของ GitHub Actions วิธีนี้ช่วยให้มั่นใจว่าอิมเมจทุกตัวที่สร้างจะได้รับการสแกนโดยอัตโนมัติ

# .github/workflows/scan.yml
name: Image Scan

on:
  push:
    branches: [ main ]

jobs:
  build-and-scan:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Build Docker Image
      run: docker build -t my-app:latest .
    - name: Run Trivy Scan
      uses: aquasecurity/trivy-action@master
      with:
        image-ref: 'my-app:latest'
        format: 'table'
        exit-code: '1' # Fail build on critical issues

แก้ไขสิ่งที่ค้นพบ

การค้นพบช่องโหว่เป็นเพียงครึ่งหนึ่งของงาน การแก้ไขช่องโหว่คืออีกครึ่งหนึ่ง! ต่อไปนี้คือกลยุทธ์การแก้ไขที่ใช้กันทั่วไป:

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

ตรวจสอบการสแกน

การสแกนอิมเมจเป็นส่วนสำคัญของการพัฒนาคอนเทนเนอร์อย่างปลอดภัย มาทดสอบความเข้าใจของคุณกัน

ประเด็นสำคัญที่ควรจำ

คุณได้เรียนรู้บทบาทสำคัญของการสแกนความปลอดภัยของอิมเมจคอนเทนเนอร์แล้ว:

  • การสแกนนี้ระบุช่องโหว่ที่รู้จัก (CVE) ในอิมเมจพื้นฐานและสิ่งที่ต้องพึ่งพา
  • เครื่องมืออย่าง Trivy, Clair และ Docker Scout ช่วยทำให้กระบวนการนี้เป็นอัตโนมัติ
  • การผสานการสแกนเข้ากับไปป์ไลน์ CI/CD ช่วยให้ตรวจพบปัญหาได้ตั้งแต่เนิ่น ๆ และป้องกันไม่ให้นำอิมเมจที่ไม่ปลอดภัยไปใช้งาน
  • อัปเดตอิมเมจเป็นประจำและลดการพึ่งพาให้น้อยที่สุดเพื่อลดพื้นที่โจมตี

สแกนอิมเมจของคุณต่อไปเพื่อรักษาระดับความปลอดภัยที่แข็งแกร่ง!

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

บทเรียน “การสแกนความปลอดภัยของอิมเมจคอนเทนเนอร์” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การสแกนความปลอดภัยของอิมเมจคอนเทนเนอร์”

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

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

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

บทเรียน “การสแกนความปลอดภัยของอิมเมจคอนเทนเนอร์” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การสแกนความปลอดภัยของอิมเมจคอนเทนเนอร์
  2. ความปลอดภัยของคอนเทนเนอร์ขณะทำงาน
  3. การจัดการข้อมูลลับและ RBAC
  4. นโยบายเครือข่ายและเครือข่ายตามสิทธิ์น้อยที่สุด
← กลับไปที่ DevOps Bootcamp