ãœãããŠã§ã¢ææç©ã®ãµãã©ã€ãã§ãŒã³ã¬ãã«ïŒSLSAïŒ
SLSA ãšã¯ïŒ
SLSAïŒSupply-chain Levels for Software ArtifactsïŒ ã¯ããœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ã®æŽåæ§ãšã»ãã¥ãªãã£ã匷åããããã«èšèšãããã»ãã¥ãªãã£ãã¬ãŒã ã¯ãŒã¯ã§ãã
Google ã«ãã£ãŠéçºãããOpen Source Security FoundationïŒOpenSSFïŒã«ãã£ãŠç®¡çãããŠãããSLSA ã¯æ¹ããã®é²æ¢ãæŽåæ§ã®åŒ·åããœãããŠã§ã¢ãã€ã³ãã©ã®ä¿è·ãç®çãšããã¬ã€ãã©ã€ã³ãšãã¹ããã©ã¯ãã£ã¹ãæäŸããŸãã
SLSA ã§ã¯ããã«ãããããã³ã¹ïŒç±æ¥ã®èšŒæïŒããœãŒã¹ã®æŽåæ§ããã«ãç°å¢ã®å®å šæ§ãªã©ã«çŠç¹ãåœãŠãã»ãã¥ãªãã£å³æ ŒåºŠã®ç°ãªã 4 ã€ã®ãã«ãã¬ãã«ïŒ0ã3ïŒ ãå®çŸ©ããŠããŸããã¬ãã«äžèЧã¯ãã¡ã ãã
åã¬ãã«ã¯äžäœã¬ãã«ã®èŠä»¶ãåºç€ãšããŠãããæ®µéçã«ããé«ãã»ãã¥ãªãã£ä¿èšŒãå®çŸã§ããæ§é ãšãªã£ãŠããŸãã
ãªã SLSA ãéèŠãªã®ãïŒ
ãœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ããŸããŸãè€éãã€çžäºæ¥ç¶ãããŠããçŸä»£ã®ãœãããŠã§ã¢éçºã«ãããŠãSLSA ã¯æ¥µããŠéèŠãªã»ãã¥ãªãã£ãã¬ãŒã ã¯ãŒã¯ã§ãã
ããšãã° SolarWinds æ»æã®ãããªãµãã©ã€ãã§ãŒã³æ»æã¯ãéçºããã»ã¹ã«æœãè匱æ§ãäžçäžã«ç¥ããããŸããã
SLSA ãå°å ¥ããããšã§ãçµç¹ã¯ä»¥äžãå®çŸã§ããŸã:
-
ã¢ãŒãã£ãã¡ã¯ãã®æŽåæ§ã®ç¢ºä¿: ãœãããŠã§ã¢ã®ãã«ãããã³ãããã€ããã»ã¹ã«ãããŠãã¢ãŒãã£ãã¡ã¯ããæ¹ãããããŠããªãããšãæ€èšŒã§ããŸãã
-
ãã«ãããããã³ã¹ã®åŒ·å: ãœãããŠã§ã¢ã¢ãŒãã£ãã¡ã¯ããããã€ãã©ã®ããã«ãçæãããã®ãã蚌æå¯èœãªèšé²ãšããŠä¿æããéææ§ãšèª¬æè²¬ä»»ã確ä¿ããŸãã
-
ãã«ãç°å¢ã®ä¿è·: ãã«ãã·ã¹ãã ãžã®äžæ£ã¢ã¯ã»ã¹ãäžæ£ãªå€æŽãé²ãããã®ã»ãã¥ãªãã£å¶åŸ¡ãå®è£ ã§ããŸãã
-
ãµãã©ã€ãã§ãŒã³ãªã¹ã¯ã®è»œæž: ãµãã©ã€ãã§ãŒã³çµç±ã§è匱æ§ãæªæããã³ãŒããå°å ¥ããããªã¹ã¯ãäœæžããŸãã
SLSA Build Level 3 ãšã¯ïŒ
SLSA Build Level 3ïŒHardened BuildsïŒ ã¯ãSLSA ãã¬ãŒã ã¯ãŒã¯ã«ããã 4 ã€ã®ã¬ãã«ã®ãã¡ãæãé«ãã¬ãã«ã§ãã
ãã®ã¬ãã«ã§ã¯ããœãããŠã§ã¢ã¢ãŒãã£ãã¡ã¯ããå®å šãã€ãã¬ãŒãµãã«ã«ãã«ããããããšãä¿èšŒããããã®å³æ ŒãªèŠä»¶ãå®ããããŠããŸãã
SLSA Build Level 3 ã«æºæ ããã«ã¯ããã«ãã以äžã®èŠä»¶ãæºãããŠããå¿ èŠããããŸã:
-
å®å šã«èªååã»ã¹ã¯ãªããåãããŠããã人æã«ããæ¹ãããäžå¯èœã§ããããš
-
ä¿¡é Œããããã«ããµãŒãã¹ã䜿çšãããœãŒã¹ã³ãŒããšãã«ããŒã®èªèšŒãè¡ãããŠããããš
-
ã¢ãŒãã£ãã¡ã¯ãã®ãã«ãæ¹æ³ãèšé²ããã眲åä»ããã€æ¹ããèæ§ã®ããããããã³ã¹æ å ±ãçæãããŠããããš
-
ãã«ãç°å¢ããœãŒã¹ãªããžããªããã«ãã¹ããããªã©ã«é¢ããã¡ã¿ããŒã¿ãèšé²ãããŠããããš
ãã®ã¬ãã«ã«æºæ ããããšã§ããœãããŠã§ã¢ãä¿¡é Œã§ãããœãŒã¹ãããå¶åŸ¡ãããç£æ»å¯èœãªç°å¢ã§ãã«ããããããšã匷ãä¿èšŒã§ããŸãã
ãã®çµæããµãã©ã€ãã§ãŒã³æ»æã®ãªã¹ã¯ãå€§å¹ ã«äœæžã§ããŸãã
Docker Hardened Images ãš SLSA
Docker Hardened ImagesïŒDHIïŒã¯ãæ¬çªç°å¢åãã«ç¹åããŠèšèšãããã»ãã¥ã¢ããã©ã«ãã®ã³ã³ããã€ã¡ãŒãžã§ãã
ãã¹ãŠã® DHI ã¯æå·çã«çœ²åãããŠãããSLSA Build Level 3 èŠæ ŒÂ ã«æºæ ããŠããããã«ãããããã³ã¹ãšæŽåæ§ã®æ€èšŒå¯èœæ§ãåããŠããŸãã
SLSA æºæ ã® DHI ãéçºã»ãããã€ããã»ã¹ã«çµ±åããããšã§ã以äžã®ã¡ãªãããåŸãããŸã:
-
ã»ãã¥ãªãã£ã¬ãã«ã®åäž: 峿 Œãªã»ãã¥ãªãã£åºæºãæºããã€ã¡ãŒãžã掻çšããããšã§ãè匱æ§ãæ»æãªã¹ã¯ãäœæžã§ããŸãã
-
ã³ã³ãã©ã€ã¢ã³ã¹å¯Ÿå¿ã®ç°¡çŽ å: 眲åä»ãã® SBOMïŒãœãããŠã§ã¢éšå衚ïŒã VEXïŒæªçšäžå¯è匱æ§ã«é¢ããäŸå€æ å ±ïŒãªã©ã®æ©èœã掻çšããFedRAMP ã®ãããªèŠå¶ãžã®å¯Ÿå¿ã容æã«ãªããŸãã
-
éææ§ã®åŒ·å: åã€ã¡ãŒãžã®æ§æèŠçŽ ããã«ãããã»ã¹ã«é¢ãã詳现æ å ±ãžã¢ã¯ã»ã¹ã§ããéææ§ãšä¿¡é Œæ§ãåäžããŸãã
-
ç£æ»å¯Ÿå¿ã®å¹çå: æ€èšŒå¯èœãªãã«ãèšé²ãšçœ²åæ å ±ã«ãããã»ãã¥ãªãã£ç£æ»ãè©äŸ¡ããã»ã¹ãã¹ã ãŒãºã«ãªããŸãã
Docker Hardened Images ã® SLSA ããããã³ã¹ãååŸã»æ€èšŒãã
Docker Hardened ImagesïŒDHIïŒã¯ãæå·çã«çœ²åãããŠãããSLSA Build Level 3 ã«æºæ ããæ€èšŒå¯èœãªãã«ãããããã³ã¹æ å ±ïŒã¢ãã¹ããŒã·ã§ã³ïŒãå«ãŸããŠããŸãã
DHI ã® SLSA ããããã³ã¹ãååŸããæ€èšŒããã«ã¯ Docker Scout ã䜿çšããŸã:
$ docker scout attest get <your-namespace>/dhi-<image>:<tag> \
--predicate-type https://slsa.dev/provenance/v0.2 \
--verify
äŸ:
$ docker scout attest get docs/dhi-node:20.19-debian12-fips-20250701182639 \
--predicate-type https://slsa.dev/provenance/v0.2 \
--verify
ãã®ã³ãã³ãã«ãããæå®ããã€ã¡ãŒãžã«å¯Ÿã㊠SLSA æºæ ã®ãã«ãããããã³ã¹ãæ£ãã眲åãããŠãããæ¹ãããããŠããªãããšãæ€èšŒã§ããŸãã
é¢é£ãªãœãŒã¹
SLSA ã®å®çŸ©ã Docker Build ã«ãããæ±ãã«ã€ããŠè©³ããç¥ãããæ¹ã¯ã以äžãã芧ãã ãã: