Top 10 Docker security - Kanapakan/MoodMent-Project-SW-dev-tool GitHub Wiki
โครงการหนึ่งของ OWASP ที่จัดอันดับ 10 ความเสี่ยงทางด้านความปลอดภัย เพื่อเป็นแนวทางในการวางแผนและสร้าง container ด้วย Docker อย่างปลอดภัย
Description
- มีไว้สำหรับ developers, auditors, architects, system and networking engineers
- ความปลอดภัยใน Docker มักถูกเข้าใจผิด และเป็นเรื่องที่ถกเถียงกันอย่างมากว่าภัยคุกคามควรเป็นอย่างไร ดังนั้นควรจำลอง threats เพื่อช่วยให้เข้าใจผลกระทบด้านความปลอดภัยมากขึ้น และช่วยจัดลำดับความสำคัญของงานได้อีกด้วย
Licensing
Docker OWASP Top 10 ได้รับอนุญาตภายใต้ CC BY-NC-SA 4.0 และ Creative Commons Attribution-ShareAlike 4.0
D01 Secure User Mapping
คือ ไม่ควร run application ใน container ด้วย root
D02 Patch Management Strategy
คือ host, base image หรือเครื่องมือในการจัดการ container จะมี security bug เสมอ ดังนั้นจำเป็นต้องมีการทำ patch แบบปกติและแบบฉุกเฉิน
D03 Network Segmentation And Firewalling
คือ การออกแบบ network ของระบบเป็นสิ่งสำคัญ ไม่ว่าจะเป็น network ของเครื่องมือในการจัดการ และ network ของ container ต่างๆ ทำการกำหนดสิทธิ์ในการเข้าถึง container ให้ข้าถึงได้จากภายในเท่านั้นหรือภายนอกเท่านั้น
D04 Secure Defaults And Hardening
คือ ตรวจสอบให้แน่ใจว่ามีสิ่งที่ต้องการใช้งานเท่านั้นที่ถูกติดตั้งและทำงานอยู่ ไม่ว่าจะเป็นที่ host, container, เครื่องมือในการจัดการ สำหรับสิ่งที่ใช้งานก็ควร Locked Down ไว้
D05 Maintain Security Contexts
คือ การแยกการทำงานของแต่ละส่วนงาน เช่น frontend กับ backend เพื่อให้ช่วยในเรื่องของการจัดการความปลอดภัย และลดความผิดพลาด
D06 Protect Secrets
คือ การจัดการ secret ต่างๆ เช่น passwords, tokens private keys หรือ certificates เป็นต้น ควรได้รับการป้องกันให้ดีที่สุดเท่าที่จะเป็นไปได้
D07 Resource Protection
คือ การจัดการ resource ของแต่ละ container เช่น CPU, disks, memory และ network เพื่อไม่ให้กระทบต่อการทำงานของ container อื่น
D08 Container Image Integrity And Origin
คือ การจัดการ image ให้ปลอดภัย ไม่ให้ถูกเปลี่ยนแปลงหรือแทรกแซงตั้งแต่ต้นจนถึง deploy
D09 Follow Immutable Paradigm
คือ ควรให้ container ทำงานแบบ read-only ไม่ถูกแก้ไขหรือเขียนข้อมูลทับ เพื่อทำให้มีความปลอดภัยมากขึ้น
D10 Logging
คือ container, host และเครื่องมือในการ deploy จะต้องบันทึกเหตุการณ์ไว้เสมอ เพื่อให้สามารถพิสูจน์การทำงานและตัวตนได้ โดย log ไม่ได้เขียนไว้ใน container แนะนำให้เก็บแบบ remote
ตัวอย่างการนำ Top 10 Docker security จาก OWASP ไปใช้
1. D01 Secure User Mapping
ไม่ทำการ run application ใน container ด้วย root
2. D04 Secure Defaults And Hardening
ทำการตรวจสอบว่ามีสิ่งที่ต้องการใช้งานเท่านั้นที่ถูกติดตั้งและทำงานอยู่
3. D05 Maintain Security Contexts
แยกการทำงานของแต่ละส่วนงาน เช่น frontend กับ backend เพื่อให้ช่วยในเรื่องของการจัดการความปลอดภัย
4. D06 Protect Secrets
จัดการ secret ต่างๆ ให้ได้รับการป้องกันให้ดีที่สุดเท่าที่จะเป็นไปได้
5. D08 Container Image Integrity And Origin
จัดการ image ให้ปลอดภัย ไม่ให้ถูกเปลี่ยนแปลงหรือแทรกแซง
6. D09 Follow Immutable Paradigm
ทำงานแบบ read-only ไม่ถูกแก้ไขหรือเขียนข้อมูลทับ
7. D10 Logging
บันทึกเหตุการณ์ไว้เสมอ เพื่อให้สามารถพิสูจน์การทำงานแ> ละตัวตน