ããŒããã³ã°ã€ã¡ãŒãžãšã¯ïŒãªã䜿ãã®ãïŒ
çŸåšã®å€æ§ãªãœãããŠã§ã¢ç°å¢ã§ã¯ãã³ã³ããã€ã¡ãŒãžã¯æè»æ§ãšåºç¯ãªäºææ§ãéèŠããŠèšèšãããããšãäžè¬çã§ããããã¯å€ãã®ãŠãŒã¹ã±ãŒã¹ã«ãšã£ãŠçæ³çã§ããäžæ¹ã§ãç¹å®ã®ã¯ãŒã¯ããŒãã«ã¯äžèŠãªã³ã³ããŒãã³ããå«ãŸããããŠããŸãããšããããŸãã
Docker Hardened Images ã¯ããããŠæå°æ§æã«èšèšãããã¢ãããŒããæ¡çšããããšã§ãã€ã¡ãŒãžãµã€ãºã®åæžãæ»æå¯Ÿè±¡é åã®æå°åããããŠã»ãã¥ãªãã£ãã³ã³ãã©ã€ã¢ã³ã¹å¯Ÿå¿ã®å¹çåãå®çŸããŸãã
ããŒããã³ã°ã€ã¡ãŒãžã¯ãã³ã³ããã€ã¡ãŒãžã«å«ãŸããå 容ãæå°éã«æããããšã§ãããã解決ããŸãã
ãœãããŠã§ã¢ãå°ãªããšããããšã¯ãè匱æ§ã®æ°ãå°ãªããªãããããã€ãé«éåããæ¯é±è¿œããããèµ€ãã¢ã©ãŒãïŒããã·ã¥ããŒãïŒãæžãããšãæå³ããŸãã
ãã©ãããã©ãŒã ãšã³ãžãã¢ãã»ãã¥ãªãã£ããŒã ã«ãšã£ãŠãããŒããã³ã°ã€ã¡ãŒãžã¯ãCVEïŒè匱æ§èå¥åïŒãã®å¯Ÿå¿ã«è¿œããããµã€ã¯ã«ããã®è±åŽææ®µãšãªããŸãã
ãã®çµæãçµ¶ãéãªãç«æ¶ãäœæ¥ã§ã¯ãªããå®å šã§ã³ã³ãã©ã€ã¢ã³ã¹ã«æºæ ããã€ã³ãã©ã®æäŸã«éäžããããšãã§ããŸãã
ããŒããã³ã°ã€ã¡ãŒãžãšã¯ïŒ
ããŒããã³ã°ã€ã¡ãŒãžãšã¯ãè匱æ§ãæžããã峿 Œãªã»ãã¥ãªãã£ããã³ã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ãæºããããã«ãæå³çã«æå°åã»ã»ãã¥ã¢åãããã³ã³ããã€ã¡ãŒãžã®ããšã§ãã
æšæºçãªã€ã¡ãŒãžãšã¯ç°ãªããããŒããã³ã°ã€ã¡ãŒãžã«ã¯ãªã¹ã¯ãé«ããäžèŠãªã³ã³ããŒãã³ããå«ãŸããŠããããã¢ããªã±ãŒã·ã§ã³ãå®å šã«å®è¡ããããã«å¿ èŠãªãã®ã ããå³éžããŠå«ãŸããŠããŸãã
ããŒããã³ã°ã€ã¡ãŒãžã®å©ç¹
-
æ»æå¯Ÿè±¡é åã®çž®å°: äžèŠãªã³ã³ããŒãã³ããåãé€ãããšã§ãæ»æè ã«ãšã£ãŠã®äŸµå ¥ãã€ã³ããå¶éããŸãã
-
ã»ãã¥ãªãã£ã®åäž: 宿çãªã¢ããããŒããšè匱æ§ã¹ãã£ã³ã«ãããã€ã¡ãŒãžã®ã»ãã¥ãªãã£ãé·æã«ããã£ãŠç¶æãããŸãã
-
ã³ã³ãã©ã€ã¢ã³ã¹å¯Ÿå¿ã®æ¯æŽ: SBOMïŒãœãããŠã§ã¢éšå衚ïŒãªã©ã®çœ²åä»ãã¡ã¿ããŒã¿ãå«ãããšã§ãæ³èŠå¶ã瀟å åºæºã®éµå®ããµããŒãããŸãã
-
éçšå¹çã®åäž: ã€ã¡ãŒãžãµã€ãºãå°ãããªãããšã§ãpull ã®é«éåãå®è¡æã®è² è·è»œæžãã¯ã©ãŠããªãœãŒã¹ã³ã¹ãã®åæžã«ã€ãªãããŸãã
Docker Hardened Image ãšã¯ïŒ
Docker Hardened ImagesïŒDHIïŒã¯ãããŒããã³ã°ã€ã¡ãŒãžã®æŠå¿µãããã«çºå±ããããã®ã§ãæå°æ§æãã€ã»ãã¥ã¢ãªèšèšã«ããšã³ã¿ãŒãã©ã€ãºåãã®ãµããŒããããŒã«ãçµã¿åããããã®ã§ãã
ã»ãã¥ãªãã£ãæ žã«æ®ããŠæ§ç¯ããããããã®ã€ã¡ãŒãžã¯ãçŸä»£ã®å³æ ŒãªãœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ããã³ã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ãæºããããã«ãç¶ç¶çã«ä¿å®ã»ãã¹ãã»æ€èšŒãããŠããŸãã
Docker Hardened Images ã¯ããããã©ã«ãã§ã»ãã¥ã¢ããèšèšäžãããã«ããä¿å®äžèŠïŒDocker ã管çïŒããšããç¹é·ãåããŠããŸãã
Docker Hardened Images ãšäžè¬çãªããŒããã³ã°ã€ã¡ãŒãžã®éã
-
SLSA æºæ ã®ãã«ã: Docker Hardened Images 㯠SLSA Build Level 3 ã«æºæ ããŠãã«ããããŠãããæ¹ããèæ§ã»æ€èšŒå¯èœæ§ã»ç£æ»å¯èœæ§ãåãããã«ãããã»ã¹ãéããŠããµãã©ã€ãã§ãŒã³æ»æããä¿è·ããŸãã
-
Distroless ã¢ãããŒã: åŸæ¥ã®ããŒã¹ã€ã¡ãŒãžãã·ã§ã«ãããã±ãŒãžãããŒãžã£ããããã°ããŒã«ãå«ã OS å šäœããã³ãã«ããã®ã«å¯Ÿããdistroless ã€ã¡ãŒãž ã¯ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ã«å¿ èŠãªæå°éã® OS ã³ã³ããŒãã³ãã®ã¿ãä¿æããŸããäžèŠãªããŒã«ãã©ã€ãã©ãªãæé€ããããšã§ãæ»æå¯Ÿè±¡é åãæå€§ 95% åæžããããã©ãŒãã³ã¹ãšã€ã¡ãŒãžãµã€ãºã®åäžã«ãã€ãªãããŸã
-
ç¶ç¶çãªã¡ã³ããã³ã¹: ãã¹ãŠã® DHI ã¯åžžæç£èŠã»æŽæ°ãããŠãããæ¢ç¥ã®æªçšå¯èœãª CVE ãã»ãŒãŒãã«ä¿ã€ããšãç®æããŠããŸããããã«ããããããç²ããçªçºçãªã¢ã©ãŒããžã®å¯Ÿå¿è² è·ã軜æžããŸãã
-
ã³ã³ãã©ã€ã¢ã³ã¹å¯Ÿå¿ïŒåã€ã¡ãŒãžã«ã¯æå·çœ²åãããã¡ã¿ããŒã¿ãå«ãŸããŠããŸã:
-
ã€ã¡ãŒãžã®æ§æå 容ã瀺ã SBOMïŒãœãããŠã§ã¢éšå衚ïŒ
-
å®éã«æªçšå¯èœãªè匱æ§ãç¹å®ãã VEX ããã¥ã¡ã³ã
-
ã€ã¡ãŒãžãã©ã®ããã«ãã©ãã§ãã«ãããããã蚌æãã ãã«ãããããã³ã¹
-
-
äºææ§ãéèŠããèšèš: Docker Hardened Images ã¯ããããã«ãªå®è¡ç°å¢ãæäŸãã€ã€ããäžè¬ç㪠Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ãšã®äºææ§ãç¶æããŠããŸããã»ãã¥ãªãã£åŒ·åã®ããã«ã·ã§ã«ãããã±ãŒãžãããŒãžã£ãªã©ã®äžèŠãªã³ã³ããŒãã³ãã¯åé€ãããŠããŸãããããŒã¹å±€ã«ã¯æšæºçãªãã£ã¹ããªãã¥ãŒã·ã§ã³ã«åºã¥ãå°ããªæ§æãæ¡çšãããŠããŸããéåžžã
musl libc
ïŒAlpine ããŒã¹ïŒããã³glibc
ïŒDebian ããŒã¹ïŒã®äž¡æ¹ã§æäŸãããŠãããå¹ åºãã¢ããªã±ãŒã·ã§ã³ã®äºææ§ã«å¯Ÿå¿ããŸãã
ãªã Docker Hardened Images ã䜿ãã®ãïŒ
Docker Hardened ImagesïŒDHIïŒã¯ãããã©ã«ãã§ã»ãã¥ã¢ãèšèšäžãããã«ãç¶ç¶çã«ã¡ã³ããã³ã¹æžã¿ãããªããä¿å®ããªããŠãå®å¿ããŠäœ¿ããã€ã¡ãŒãžã§ããDHI ã䜿ãçç±ã¯ä»¥äžã®ãšããã§ã:
-
å®å¿ããŠäœ¿ããã€ã¡ãŒãž: 極éãŸã§ãããã«ã〠distroless ãªèšèšã«ãããåŸæ¥ã®ã³ã³ããã«æ¯ã¹ãŠæ»æå¯Ÿè±¡é åãæå€§ 95% åæžããŸãã
-
ããã察å¿ã«è¿œãããªã: ç¶ç¶ç㪠CVE ã¹ãã£ã³ãš SLA ã«åºã¥ãä¿®æ£å¯Ÿå¿ã«ãããè åšã®å æãåããŸãã
-
ç£æ»ã«åããã€ã¡ãŒãžïŒãã¹ãŠã® DHI ã«ã¯çœ²åä»ã SBOMãVEXããã«ãããããã³ã¹ãå«ãŸããŠãããã»ãã¥ãªãã£ããã³ã³ã³ãã©ã€ã¢ã³ã¹å¯Ÿå¿ãæ¯æŽããŸãã
-
æ¢åã¹ã¿ãã¯ãšã®äºææ§: Alpine ããŒã¹ããã³ Debian ããŒã¹ã§æäŸãããŠãããæ¢åã® Dockerfile ã CI/CD ãã€ãã©ã€ã³ã«ãã®ãŸãŸçµã¿èŸŒããŸãã
-
ãšã³ã¿ãŒãã©ã€ãºãµããŒãä»ãã®å®å¿æ: Docker ã«ãããµããŒããšãé倧ãªè匱æ§ãžã®è¿ éãªå¯Ÿå¿ã«ãããããå®å¿ããŠå©çšã§ããŸãã