- ชุดอิมเมจคอนเทนเนอร์แบบน้ำหนักเบาที่ออกแบบมาเพื่อ ลดช่องโหว่ด้านความปลอดภัย (CVE) ในสภาพแวดล้อมโปรดักชันให้เหลือน้อยที่สุด
- รีบิลด์ทุกวันบนพื้นฐานของ apko ของ Chainguard และ แพ็กเกจ Wolfi เพื่อให้รวมแพตช์ความปลอดภัยล่าสุด
- ตัดแพ็กเกจที่ไม่จำเป็นออกเพื่อ ลดพื้นที่ผิวการโจมตี และอิมเมจส่วนใหญ่มี CVE เพียง 0~5 รายการหรือน้อยกว่า
- มี อิมเมจสำหรับรันไทม์และบริการหลัก เช่น Python, Node.js, Bun, Go, Nginx, HTTPD, Jenkins, Redis, PostgreSQL, SQLite
- แต่ละอิมเมจทำงานด้วย ผู้ใช้ที่ไม่ใช่รูท (non-root) และโดยค่าเริ่มต้น ไม่มีเชลล์รวมมาให้
- การออกแบบที่เน้นความปลอดภัย
- หากไม่ผ่าน CVE gate จะถือว่าบิลด์ล้มเหลว
- มี การลงนามด้วย cosign และสร้าง SBOM (Software Bill of Materials) อัตโนมัติ
- ทุกอิมเมจสามารถตรวจสอบความถูกต้องได้ด้วย ลายเซ็นแบบ keyless ของ Sigstore
- โครงสร้างของบิลด์ไปป์ไลน์
- แพ็กเกจ Wolfi → สร้างอิมเมจ OCI ด้วย apko → สแกน CVE ด้วย Trivy → ลงนามและเผยแพร่ด้วย cosign+SBOM
- Jenkins, Redis และอื่น ๆ ถูกรวมเข้ามาหลังบิลด์จากซอร์สผ่าน melange
- แนวทางการอัปเดตอัตโนมัติและการบำรุงรักษา
- บิลด์อัตโนมัติทุกวันเวลา 02:00 UTC เพื่อรวมแพตช์ CVE ล่าสุด
- เมื่อมีการ merge เข้า main branch จะปรับใช้การเปลี่ยนแปลงคอนฟิกอัตโนมัติ
- รองรับการรีบิลด์ฉุกเฉินผ่านการทริกเกอร์แบบแมนนวล
- ผลลัพธ์ด้านความปลอดภัยและการรองรับคอมพลายแอนซ์
- ช่วยให้ผ่าน การตรวจสอบความปลอดภัยและข้อกำกับดูแล เช่น SOC2, FedRAMP, PCI-DSS ได้ง่ายขึ้น
- ความเร็วในการออกแพตช์ดีขึ้นมากกว่า 10 เท่า (ภายใน 48 ชั่วโมง) เมื่อเทียบกับ Debian/Ubuntu
- การตรวจสอบลายเซ็นและการมี SBOM ให้ใช้งาน ช่วยเสริมความปลอดภัยของซัพพลายเชน
- เผยแพร่ภายใต้ MIT License
- แพ็กเกจ third-party ที่รวมอยู่ในแต่ละอิมเมจระบุ ไลเซนส์แยกต่างหาก เช่น Apache-2.0, MIT, GPL, BSD
- สามารถตรวจสอบข้อมูลไลเซนส์ของทุกแพ็กเกจได้ผ่าน SBOM
2 ความคิดเห็น
ช่วงนี้การโจมตีซัพพลายเชนของไลบรารีก็มีเยอะ เลยรู้สึกว่าการอัปเดตเป็นเวอร์ชันล่าสุดทุกวันอาจไม่ได้ปลอดภัยกว่าเสมอไป
https://github.com/GoogleContainerTools/distroless ผมยังไม่ค่อยเข้าใจว่ามันต่างจากอันนี้อย่างไร