ã¢ãã¹ããŒã·ã§ã³
Docker Hardened ImagesïŒDHIïŒã«ã¯ãã€ã¡ãŒãžã®ãã«ãããã»ã¹ãå 容ãã»ãã¥ãªãã£ç¶æ ãæ€èšŒããããã®å æ¬çãã€çœ²åä»ãã®ã»ãã¥ãªãã£ã¢ãã¹ããŒã·ã§ã³ãå«ãŸããŠããŸãã
ãããã®ã¢ãã¹ããŒã·ã§ã³ã¯ãã»ãã¥ã¢ãªãœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ã®å®è·µã«ãããäžæ žçèŠçŽ ã§ãããã€ã¡ãŒãžã®ä¿¡é Œæ§ãããªã·ãŒæºæ æ§ããŠãŒã¶ãŒãæ€èšŒããããã®ææ®µãšãªããŸãã
ã¢ãã¹ããŒã·ã§ã³ãšã¯ïŒ
ã¢ãã¹ããŒã·ã§ã³ïŒattestationïŒãšã¯ãã€ã¡ãŒãžã«é¢ããæ å ±ïŒãã«ãæ¹æ³ãæ§æå 容ã宿œæžã¿ã®ã»ãã¥ãªãã£ãã§ãã¯ãªã©ïŒãèšèŒããæ€èšŒå¯èœãªçœ²åä»ãã®èšŒæææžã§ãã
ãããã¯éåžžãSigstore ã®ããŒã«ïŒäŸïŒCosignïŒã䜿çšããŠçœ²åãããŠãããæ¹ããã®çè·¡ãåããä»çµã¿ïŒæ¹ããæ€ç¥æ§ïŒãšæå·åŠçãªæ€èšŒå¯èœæ§ãåããŠããŸãã
ã¢ãã¹ããŒã·ã§ã³ã¯ãin-toto ãCycloneDX ãSLSA ãªã©ã®æšæºãã©ãŒãããã«åŸããOCI æºæ ã®ã¡ã¿ããŒã¿ãšããŠã€ã¡ãŒãžã«æ·»ä»ãããŸãã
ãããã¯ã€ã¡ãŒãžã®ãã«ãæã«èªåçæãããããšãããã°ã远å ã®ãã¹ãçµæãã¹ãã£ã³çµæãç¬èªã®ããããã³ã¹æ å ±ãªã©ãèšé²ããããã«æåã§ä»äžãããããšããããŸãã
ãªãã¢ãã¹ããŒã·ã§ã³ãéèŠãªã®ãïŒ
ã¢ãã¹ããŒã·ã§ã³ã¯ããœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ã«ãããéèŠãªå¯èŠæ§ãæäŸãã以äžã®ç¹ã§äŸ¡å€ãçºæ®ããŸã:
-
ã€ã¡ãŒãžã«äœãå«ãŸããŠããããèšé²ïŒäŸïŒSBOMãœãããŠã§ã¢éšå衚ïŒ
-
ã©ã®ããã«ãã«ããããããæ€èšŒïŒäŸïŒãã«ãããããã³ã¹ïŒ
-
ã©ã®ã»ãã¥ãªãã£ã¹ãã£ã³ãééã»å€±æããããèšé²ïŒäŸïŒCVE ã¬ããŒããã·ãŒã¯ã¬ããã¹ãã£ã³ããã¹ãçµæãªã©ïŒ
-
çµç¹ã ã»ãã¥ãªãã£ããã³ã³ã³ãã©ã€ã¢ã³ã¹ããªã·ãŒãé©çšããããã®æ¯æŽ
-
ã©ã³ã¿ã€ã ã«ããã ä¿¡é Œå€æã CI/CD ã®ããªã·ãŒã²ãŒãããµããŒã
ã¢ãã¹ããŒã·ã§ã³ã¯ãSLSAïŒSupply-chain Levels for Software ArtifactsïŒãªã©ã®æ¥çæšæºã®èŠä»¶ãæºããããã«äžå¯æ¬ ã§ããããã«ããšã»ãã¥ãªãã£ã«é¢ããæ å ±ãéæãã€æ€èšŒå¯èœã«ããããšã§ããµãã©ã€ãã§ãŒã³æ»æã®ãªã¹ã¯ãäœæžããã®ã«åœ¹ç«ã¡ãŸãã
Docker Hardened Images ã«ãããã¢ãã¹ããŒã·ã§ã³ã®æŽ»çš
ãã¹ãŠã® Docker Hardened ImagesïŒDHIïŒã¯ãSLSA Build Level 3 ã«æºæ ããææ³ã§ãã«ããããŠãããåã€ã¡ãŒãžããªã¢ã³ãã«ã¯çœ²åä»ãã¢ãã¹ããŒã·ã§ã³ã®å®å šãªã»ãããä»å±ããŠããŸãã
ãããã®ã¢ãã¹ããŒã·ã§ã³ã«ããããŠãŒã¶ãŒã¯ä»¥äžãè¡ãããšãã§ããŸãïŒ
-
ã€ã¡ãŒãžãä¿¡é ŒããããœãŒã¹ããã»ãã¥ã¢ãªç°å¢ã§ãã«ããããããšãæ€èšŒ
-
è€æ°åœ¢åŒã® SBOM ãé²èЧããã³ã³ããŒãã³ãåäœã®è©³çްæ å ±ãææ¡
-
è匱æ§ãåã蟌ãŸããã·ãŒã¯ã¬ããã®æç¡ãªã©ãã¹ãã£ã³çµæã®ç¢ºèª
-
åã€ã¡ãŒãžã®ãã«ãããã³ãããã€å±¥æŽãæ€èšŒ
ã¢ãã¹ããŒã·ã§ã³ã¯ãDocker Hub äžã§ Organization ã«ãã©ãŒãªã³ã°ãããå DHI ã«å¯ŸããŠèªåçã«å ¬éã»é¢é£ä»ããããŸãã
Docker Scout ã Cosign ã®ãããªããŒã«ã䜿ã£ãŠç¢ºèªã§ããCI/CD ããŒã«ãã§ãŒã³ãã»ãã¥ãªãã£ãã©ãããã©ãŒã ã§ã掻çšå¯èœã§ãã
å©çšå¯èœãªã¢ãã¹ããŒã·ã§ã³
ãã¹ãŠã® DHI ããªã¢ã³ãã«ã¯ã¢ãã¹ããŒã·ã§ã³ã®ã»ãããå«ãŸããŠããŸãããå«ãŸããå 容ã¯ããªã¢ã³ãã«ãã£ãŠç°ãªãå ŽåããããŸãã
ããšãã°ãäžéšã®ã€ã¡ãŒãžã«ã¯ STIG ã¹ãã£ã³ã®ã¢ãã¹ããŒã·ã§ã³ãå«ãŸããŠããããšããããŸãã
以äžã®è¡šã«ã¯ãDHI ã«å«ãŸããå¯èœæ§ã®ãããã¹ãŠã®ã¢ãã¹ããŒã·ã§ã³ã®äžèЧã瀺ãããŠããŸãã
ç¹å®ã®ã€ã¡ãŒãžããªã¢ã³ãã«ã©ã®ã¢ãã¹ããŒã·ã§ã³ãå«ãŸããŠãããã確èªãããå Žåã¯ãã€ã¡ãŒãžããªã¢ã³ãã®è©³çްã確èªãããåç §ããŠãã ããïŒDocker Hub äžã§ç¢ºèªå¯èœã§ãïŒã
ã¢ãã¹ããŒã·ã§ã³ã®çš®é¡ | 説æ | Predicate type URI |
---|---|---|
CycloneDX SBOM | CycloneDX 圢åŒã®ãœãããŠã§ã¢éšå衚ïŒSBOMïŒãã³ã³ããŒãã³ããã©ã€ãã©ãªãããŒãžã§ã³ã®äžèЧãå«ãŸããŸãã | https://cyclonedx.org/bom/v1.5 |
STIG ã¹ãã£ã³ | STIG ã¹ãã£ã³ã®çµæãHTML ããã³ XCCDF 圢åŒã§åºåãããŸãã | https://docker.com/dhi/stig/v0.1 |
CVEïŒIn-Toto 圢åŒïŒ | ããã±ãŒãžããã³ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ã¹ãã£ã³ã«åºã¥ããæ¢ç¥ã®è匱æ§ïŒCVEïŒã®äžèЧã | https://in-toto.io/attestation/vulns/v0.1 |
VEX | Vulnerability Exploitability eXchange (VEX) ããã¥ã¡ã³ããã€ã¡ãŒãžã«åœ±é¿ããªãè匱æ§ãšãã®çç±ïŒå°éäžå¯ãæªå«æãªã©ïŒãæç€ºããŸãã | https://openvex.dev/ns/v0.2.0 |
Scout ãã«ã¹ã¹ã³ã¢ | ã€ã¡ãŒãžã®ã»ãã¥ãªãã£ããã³åè³ªç¶æ ãèŠçŽãã Docker Scout ã«ãã眲åä»ãã¢ãã¹ããŒã·ã§ã³ã | https://scout.docker.com/health/v0.1 |
Scout ããããã³ã¹ | Git ã³ãããããã«ããã©ã¡ãŒã¿ããã«ãç°å¢ã®æ å ±ãå«ã Docker Scout ã«ãã£ãŠçæãããããããã³ã¹ã¡ã¿ããŒã¿ã | https://scout.docker.com/provenance/v0.1 |
Scout SBOM | Docker åºæã®ã¡ã¿ããŒã¿ãå«ãã ãDocker Scout ã«ãã£ãŠçæã»çœ²åããã SBOMã | https://scout.docker.com/sbom/v0.1 |
ã·ãŒã¯ã¬ããã¹ãã£ã³ | 誀ã£ãŠå«ãŸããŠããå¯èœæ§ã®ããè³æ Œæ å ±ãããŒã¯ã³ãç§å¯éµãªã©ãæ€åºããã¹ãã£ã³ã®çµæã | https://scout.docker.com/secrets/v0.1 |
ãã¹ã | æ©èœãã§ãã¯ãããªããŒã·ã§ã³ã¹ã¯ãªãããªã©ãã€ã¡ãŒãžã«å¯ŸããŠå®è¡ãããèªåãã¹ãã®èšé²ã | https://scout.docker.com/tests/v0.1 |
ãŠã€ã«ã¹ã¹ãã£ã³ | ã€ã¡ãŒãžã¬ã€ã€ãŒã«å¯ŸããŠå®è¡ããããŠã€ã«ã¹ã¹ãã£ã³ã®çµæã | https://scout.docker.com/virus/v0.1 |
CVEïŒScout 圢åŒïŒ | Docker Scout ã«ãã£ãŠçæãããè匱æ§ã¬ããŒããæ¢ç¥ã® CVE ãšãã®æ·±å»åºŠããŒã¿ãå«ã¿ãŸãã | https://scout.docker.com/vulnerabilities/v0.1 |
SLSA ããããã³ã¹ | 䜿çšããããã«ãããŒã«ããã©ã¡ãŒã¿ããœãŒã¹ãªã©ãå«ããSLSAÂ æšæºã«åºã¥ããã«ãããããã³ã¹ã¹ããŒãã¡ã³ãã | https://slsa.dev/provenance/v0.2 |
SLSA æ€èšŒãµããªãŒ | ã€ã¡ãŒãžã SLSA èŠä»¶ã«æºæ ããŠããããšã瀺ããµããªãŒã¢ãã¹ããŒã·ã§ã³ã | https://slsa.dev/verification_summary/v1 |
SPDX SBOM | ãªãŒãã³ãœãŒã¹ãšã³ã·ã¹ãã ã§åºãæ¡çšãããŠãã SPDX 圢åŒã® SBOMã | https://spdx.dev/Document |
FIPS compliance | ã€ã¡ãŒãžã FIPS 140 æ€èšŒæžã¿ã®æå·ã¢ãžã¥ãŒã«ã䜿çšããŠããããšã確èªããã¢ãã¹ããŒã·ã§ã³ã | https://docker.com/dhi/fips/v0.1 |
ã¢ãã¹ããŒã·ã§ã³ãè¡šç€ºã»æ€èšŒãã
ç¹å®ã®ã€ã¡ãŒãžã«å¯Ÿããã¢ãã¹ããŒã·ã§ã³ãè¡šç€ºã»æ€èšŒããã«ã¯ãDocker Hardened Image ãæ€èšŒãã ãã芧ãã ããã
ç¬èªã®ã¢ãã¹ããŒã·ã§ã³ã远å ãã
Docker Hardened Images ã«å«ãŸããå æ¬çãªã¢ãã¹ããŒã·ã§ã³ã«å ããŠã掟çã€ã¡ãŒãžããã«ãããéã«ç¬èªã®çœ²åä»ãã¢ãã¹ããŒã·ã§ã³ã远å ããããšãå¯èœã§ãã
ç¹ã«ãDHI ãããŒã¹ã«æ°ããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããå Žåã«ã¯ãéææ§ããã¬ãŒãµããªãã£ãä¿¡é Œæ§ãç¶æããããã«æå¹ã§ãã
SBOMããã«ãããããã³ã¹ãã«ã¹ã¿ã ã¡ã¿ããŒã¿ãªã©ã®ã¢ãã¹ããŒã·ã§ã³ãä»äžããããšã§:
-
ã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ã®éæ
-
ã»ãã¥ãªãã£ç£æ»ã®éé
-
Docker Scout ã®ãããªããªã·ãŒè©äŸ¡ããŒã«ãšã®é£æº
ãšãã£ãç®çã«å¯Ÿå¿ã§ããŸãã
ãããã®ã¢ãã¹ããŒã·ã§ã³ã¯ãCosign ã Docker Scout ãªã©ã®ããŒã«ã§åŸç¶ããã»ã¹ã«ãããŠæ€èšŒå¯èœã§ãã
ç¬èªã¢ãã¹ããŒã·ã§ã³ããã«ãæã«ä»äžããæ¹æ³ã«ã€ããŠã¯ãBuild attestations ãã芧ãã ããã