å®å šãªãµãã©ã€ãã§ãŒã³ã®ã¡ã¿ããŒã¿ããããããã説æãã
仿¥ã¯ããµãã©ã€ãã§ãŒã³ã®ã¡ã¿ããŒã¿ããããå®éã«äœãæå³ããã®ãããããäœã§ãããããããŠä»æ¥ã©ã®ããã«äœ¿çšã§ããã®ãã«ã€ããŠã話ãããããã«ããã«ããŸããç§ã¯åºèª¿è¬æŒã以åã®ãã¬ãŒã³ããŒã·ã§ã³ãéããŠã蚌æã«ã€ããŠéåžžã«é »ç¹ã«èšåããŠããŸããããããŠããã®æ©äŒãå©çšããŠããããã®ãã®ãäœã§ããããã©ã®ããã«äœæã§ãããã ãããŠDocker Scoutã§ãããã䜿ãå§ããæ¹æ³ãããå°ãæ·±ã説æããããšæããŸãã
ç§ã¯è©±ã3ã€ã®ã»ã¯ã·ã§ã³ã«åããŸããã ãŸãããããã©ãããæ¥ãŠããã®ãããµãã©ã€ãã§ãŒã³ãšã¯äœãªã®ãã«ã€ããŠå°ãã話ãããŸãã 2 çªç®ã®ã»ã¯ã·ã§ã³ã§ã¯ãããã€ãã®äŸã玹ä»ããŸãã æ§æèšŒæãšã¯äœããã©ã®ããã«èŠãããã ãããŠãæåŸã®æåŸã«ãã¢ãããŸãã
ãµãã©ã€ãã§ãŒã³ã®äŸ
ãŸããå°ãäŸãæããŸãããã ç§ã¯ãšã³ãžãã¢ã§ããç§ã¯ã³ãŒããŒã倧奜ãã§ããããªããããããããã§ãããã ããã«ã¯ãµãã©ã€ãã§ãŒã³å šäœãé¢ä¿ããŠããããã®äŸãã䜿ã£ãŠããœãããŠã§ã¢ã«ã€ããŠè©±ããšãã®ãµãã©ã€ãã§ãŒã³ã®æå³ãçè§£ããããšæããŸãã ã³ãŒããŒãæ¬åœã«çŸå³ããããããã«ãã³ãŒããŒã«å ¥ããå¿ èŠã®ããæåã¯ãããããããŸãã ãããŠãããã«ã¯ãããã®ã³ãŒããŒè±ãããã誰ãããããã«ãã§ã¢ãã¬ãŒãã®èãå ¥ããŠããŸããã? ã³ãŒããŒãšæ°Žãè±ãã³ãŒããŒãã·ã³ãã«ããã«åãŸããšèããæ¹æ³ã¯ããµãã©ã€ãã§ãŒã³ã®ãããªãã®ã§ãã ãããŠã誰ããè±ã®ããã«èãã€ããŸããã
ã³ãŒããŒãå®éã«å ¬æ£ã«ååŒãããŠããããšã確èªããããã«ãã³ãŒããŒãæ œå¹ãããŠããå Žæã¯ã©ãã§ãããã«è¡ãã€ããã¯ãããŸããã ããªãã¯ã誰ããããªãã®ããã«ãã®äž»åŒµãããŠããããšä¿¡ããŠããŸãã ã€ãŸããçç£è ãé¢äžããŠããŠããã®ãµãã©ã€ãã§ãŒã³ã¯ãå®éã«å ¬æ£ã«ååŒãããŠããããšã確èªããããã«ãåãã§ä»ã®èª°ãã«å§ä»»ãããã®ã§ããã? ããã¯ããªããããããã£ãŠããã®ã§ã¯ãããŸããã
ããæå³ãããã¯å€§ããªä¿¡é Œã§ãã ãããŠãåãååããœãããŠã§ã¢æ§ç¯ã«ãé©çšã§ããŸããã? æ°Žãæ°Žæºã«ãªããã³ãŒããŒã¡ãŒã«ãŒãçãäžã®ãã«ãã«ãªããããã±ãŒãžã«ãªããŸãã ã ãããããã¯ããªãã®ããã»ã¹ã§ãã ãããŠãããã«ã¯ããµãã©ã€ãã§ãŒã³ã«è¡ãçãäŸåé¢ä¿ããããŸãã ãã¹ãŠã®äŸåé¢ä¿ãšãã®æšç§»çãªäŸåé¢ä¿ã远ããããããã§ã¯ãããŸããã ç¹°ãè¿ãã«ãªããŸãããããªãã¯èª°ããããªãã®ããã«ãã®ä»äºããã圌ãã®ã»ãã¥ãªãã£ã䞻匵ããŠããããšä¿¡ããŠããŸãã
ãããããããããªã¹ã¯ã¯ã©ãããæ¥ãã®ã§ãããã? ãµãã©ã€ãã§ãŒã³ã«ã¯ãããŸããããªãå ŽæããããããããŸãã ããšãã°ããã®äŸåé¢ä¿ã¯ãæ¬åœã«ããªããèããŠããçºè¡å ããæ¥ãŠããã®ãããããšã誰ããGitHubãªããžããªãä¹ã£åã£ãŠãã¢ãŒãã£ãã¡ã¯ããåœè£ ããã®ããªã©ã§ãã ãããã¥ãŒãµãŒã¯èª°ã§ãã? ãã«ãç°å¢ãå±éºã«ãããããŠããŸããã? ãœãŒã¹ãæ¹ãããããŠããŸããã? èããŠã¿ãã°ããããã¯ãã¹ãŠãµãã©ã€ãã§ãŒã³å šäœã§æ»æãããå¯èœæ§ããããŸãã
ããããã¹ãŠäžè²«ããŠãããæåŸ ã©ããã§ããããšã確èªããã«ã¯ã©ãããã°ããã§ããããã ãã®åé¡ã解決ããã«ã¯ã©ãããã°ããã§ããããã ããŠãããã§ã§ããããšãããã€ããããŸãã ãŸããææç©ã«äœãå«ãŸããŠãããããŸãã¯çæ³çã«æ¶è²»ããææç©ã«äœãå«ãŸããŠããããææžåã§ããŸãã ããã§ãSBOMããœãããŠã§ã¢ãã«ãã®åºçªã§ãã ã·ãªã¢ã«ã®ç®±ã®ææã«å°ã䌌ãŠããŸããã? ããã¯ãããªããæ¶è²»ããŠããããããã¯ããããããªããèªåã§æ§ç¯ããŠãããã®ã¢ãŒãã£ãã¡ã¯ãã«äœãããã¹ãããçè§£ãããŸãã æ¬¡ã«ãæ¥æŽãšã¯ãç¹å®ã®ã¢ãŒãã£ãã¡ã¯ããã©ãããæ¥ãŠãããã«é¢ãããã®ã§ãã 誰ããã©ã®ãããªç°å¢ã§ããã€ãã©ã®ããã«ãã«ãããã®ããã©ãããã°ãã®ãã«ããåçŸã§ããã®ãã
æ¥æŽãšããªã·ãŒ
ãããã¯ãã¹ãŠãæ¥æŽã§æããããŠããŸãã ãã«ãã«äœ¿çšããããã¹ãŠã®ãããªã¢ã«ãåºæ¬ã€ã¡ãŒãžããã«ãç°å¢èªäœããã§ããã°ãã®æ¥æŽæ§æèšŒæå ã«ãã£ããã£ãããŠããŸãã ãããŠæåŸã«ãä¿¡é Œé¢ä¿ãç¯ãããšã倧åã§ããã? 誰ãããããã®ææç©ããããã®ææç©ã§ãããã®èšŒæãå ¬éããã ãã§ã¯ååã§ã¯ãããŸããã ãŸãããããã®ããšãä¿¡é Œã§ããæ©é¢ããã®ãã®ã§ããããšã確èªã§ããç¶æ³ã«ããå¿ èŠããããŸãã ããã§çœ²åã®åºçªã§ãã ããã«ã€ããŠãå°ãã話ãããããšæããŸãã æ§æèšŒæãžã®çœ²åã¯ããœãããŠã§ã¢äŸçµŠã®ã»ãã¥ãªãã£ã«ãšã£ãŠéåžžã«éèŠã§ãã ãããã«çœ²åããŠæ€èšŒããããšã¯ãæ¬åœã«éèŠãªåŽé¢ã§ãã
ãã®ããŒã¿ãå ¥æããSBOMãåºæããããŠçæ³çã«ã¯ãããã«çœ²åããŠããããšã倧éã®ããŒã¿ãåŸãããŸãã ããããåé¡ã¯ããã®ããŒã¿ã§å®éã«äœãã§ããããšããããšã§ãã ããã§æ¿çã®åºçªã§ãã ç¹°ãè¿ãã«ãªããŸãããåºèª¿è¬æŒã§è¿°ã¹ãããšã¯ããã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãææç©ã«æåŸ ãããã®ã®äŒæ¥æšæºãäœæã§ããããã«ããããšã§ãã 眲åãããŠããŸãã? 誰ã«ãã£ãŠçœ²åãããŠããŸãã? ãããã¯ã©ãã«æ§ç¯ãããŠããŸãã (GitHub äžã«ããå¯èœæ§ããããŸãã? 誰ã眲åãããããªã©ãªã©ã ããã§ããªã·ãŒã®åºçªãšãªããããªã·ãŒã®å®æœãšè©äŸ¡ãéå§ã§ããã®ã§ãã ããæå³ãç§ã¯ãµã€ã¯ãªã¹ãã§ãããããŒããµã€ã¯ãªã¹ãã§ãã ç§ã¯ãã€ãã«äœãã§ããŸãããããã¯ããã®å°ããªå°å³ã®ãããªãã®ã§ãã
å¥ã®äŸãã«ç¶ããŠãããªã·ãŒãšã¯ãç§ã«ãšã£ãŠãGPSãèªè»¢è»ã§èµ°ããããšããæ¬åœã«äœã§ããããšããããšã§ããã? éå€ã§ããã²ãŒãããå¿ èŠãããããŒã¿ã¯éåžžã«å€ããããŸãã ãããŠãå·çäžã«æºåž¯é»è©±ã§ãããè¡ãããšãã§ããŸããããåæã«ãããããçš®é¡ã®éç¥ãåãåãããšãã§ããŸããã ããããªé³ãããããæ¬åœã«éäžãããã®ã¯ãµã€ã¯ãªã³ã°ã§ãã ãããŠãç§ã¯ããã²ãŒããããã ãã§ãã ã€ãŸããããªã·ãŒã«é¢ããŠã¯ããŸãã«ç§ãã¡ãããããšããŠããããšã§ããã?
ä¿¡é Œã§ããã³ã³ãã³ã
ããŒã¿ã«åºã¥ããŠãã客æ§ã«ãšã£ãŠæ¬åœã«éèŠãªããšã«éäžã§ããããã«æ¯æŽããããšèããŠããŸãã ãããã®æºè¶³æã¯ã€ã³ãããã«ãªããŸãã ãã®äžã§ããªã·ãŒãè©äŸ¡ããããŸãããã°ãå°æ¥çã«ã¯ä¿®åŸ©ãæšé²ããŸãã ã€ãŸããDocker Scoutããµãã©ã€ãã§ãŒã³ã«ããŒã¿ãåã蟌ã¿ããã®äžã§ããªã·ãŒã®è©äŸ¡ãéå§ãããšããããšã§ãã ããã¯ãã¹ã«ãŠããã¹ã«ãŠãã«ãã3ã€ã®ãã®ã®å°ããªãµã³ãã€ããå³ã§ãã ãã®ãããäžéšã«ä¿¡é Œã§ããã³ã³ãã³ãããããŸãã ãŸããDockerãŠãŒã¶ãŒã§ããã°ãDockerã®å ¬åŒã€ã¡ãŒãžã䜿çšããããšãããã§ãããã ãããŠãããã¯ç§ãã¡ãä¿¡é Œã§ããã³ã³ãã³ããšåŒã¶ãã®ã®äžéšã§ãã
Dockerã«ã¯ãDockerå ¬åŒã€ã¡ãŒãžãDockeræ€èšŒæžã¿ãããªãã·ã£ãŒãDockerã¹ãã³ãµãŒä»ããªãŒãã³ãœãŒã¹ã®3ã€ã®ä¿¡é Œã§ããã³ã³ãã³ãããã°ã©ã ããããŸãã å®å šãªåºç€ããªããã°ãå®å šãªãœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ãæ§ç¯ããããšã¯ã§ããŸããã ããã§ãç§ãã¡ (Scout ããŒã ãš Docker) ã¯ãä¿¡é Œã§ããã³ã³ãã³ãç»åã«çœ²åä»ã蚌æã远å ããããšã§ããµã³ãã€ããå³ã®äžéšã«å€é¡ã®æè³ãè¡ã£ãŠããŸãã ããšãã°ãNodeãAlpineãäŸã«ãšããšãè¿ãå°æ¥ããããã®ãã®ã®ã¢ãã¹ããŒã·ã§ã³ãå¿ èŠã«ãªããšäºæ³ãããŸãã? ãããæ¬åœã«Dockerããæ¥ãŠããããšããããããã«ãç¹å®ã®ããã±ãŒãžããã®ã€ã¡ãŒãžã«ããããšãã¢ãµãŒãããŸãã ãã®ã€ã¡ãŒãžã¯ããã®æš©éã«ãã£ãŠããã®Gitã³ããããã£ãŒãã«å¯Ÿãããã®ã¯ãŒã¯ãããŒã«ãã£ãŠGitHubäžã«æ§ç¯ãããããšãã¢ãµãŒãããŸãã ãã®ããããããã®ç»åãã©ãããæ¥ãŠããã®ãã«ã€ããŠåŒ·åãªäž»åŒµãè¡ãããšãã§ããŸãã ãããŠããã®èæ¯ã«ã¯ãç§ãã¡ãèšé²ã·ã¹ãã ãšåŒãã§ãããã®ããããŸãã
ãããã£ãŠãå ¥ã£ãŠãããã¹ãŠã®ããŒã¿ã¯ããã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãããã§é¢é£ãããã®è¬æŒã§ã¯ãSBOMããã±ãŒãžããŒã¿ã𿥿ŽããŒã¿ãšçœ²åã§ãã ãã®ããŒã¿ã¯ãã¹ãŠä¿åãããScoutã®ãŠãŒã¶ãŒã¯ãã®ããŒã¿ã«åºã¥ããŠããªã·ãŒãè©äŸ¡ã§ããŸãã ããšãã°ãç»åã«ã¯çœ²åãããŠããŸãã? ãããšããå¿ èŠãªãã¹ãŠã®æ§æèšŒæãç»åã«æ·»ä»ãããŠããŸãã? ãããã¯ãScoutã芳å¯ããå°æ¥çã«ä¿®æ£ããŠæ¹åããã®ã«åœ¹ç«ã¡ãŸãã
æ§æèšŒæ
æ§æèšŒæã䜿çšããã€ã¡ãŒãžã®æ§ç¯ã«é£ã³èŸŒã¿ãŸãããã 誰ãbuildkitã§ããã調ã¹ãã®ãã¯ããããŸããã ããããæ¥æŽãšSBOMãšSBOMæ§æèšŒæã®æ§ç¯ãéå§ããããã«å¿ èŠãªã®ã¯ãå®è³ªçã«ããã ãã§ãã SBOM 㯠1 ã€ã®ãã©ã¡ãŒã¿ãŒã«çãããæ¥æŽã¯ 1 ã«çããããããã¯ããé·ããã©ã¡ãŒã¿ãŒã®çç¥åœ¢ã§ãã ãªãå¿ èŠãªã®ãã¯èããªãã§ãã ããã ããã¯ãDocker CLIã®ã¬ã¬ã·ãŒã§ãã 圌ãã¯ãã©ã°ã ããè¡ãã®ã§ã¯ãããŸããã åžžã«äŸ¡å€ãæããªããã°ãªããŸããã æ¬åœã«äžæè°ã§ãã ããããç¹°ãè¿ãã«ãªããŸãããããã¯SBOMãšæ¥æŽãæäŸããŸãã ãã®æç¹ã§ã¯çœ²åãããŠããŸããããå§ããã®ã¯éåžžã«ç°¡åã§ãã
ããã¯ãã©ã® CI ã·ã¹ãã ã§ãå®è¡ã§ããŸãã ããã¯ããã«ããšããã·ã¥ã®ã¢ã¯ã·ã§ã³ã䜿çšãã GitHub ã¢ã¯ã·ã§ã³ã䜿çšããŠãããã«å®è¡ã§ããŸãã ããã«ã¯å°ããªæãæ²ããããŠããŸãã ãããæå¹ã«ããã ãã§ãæºåå®äºã§ãã ãããããšã©ããªãã§ãããã? ãŸããããã€ããããŸãã ããã¯äŸã§ãããBuildX ã€ã¡ãŒãž ããŒã«ã® "inspect" ã³ãã³ãã䜿çšããŠã€ã¡ãŒãž ãããã§ã¹ãã確èªããŠããŸãã
ããã«ã¯å€ãã®JSONããããŸãããããã§åãäžããŠããã ãããã®ã¯ã以åã«ã€ã¡ãŒãžãæ§ç¯ããŠãããã¬ãžã¹ããªã«ããã·ã¥ãããšããããã§æåã«ã€ã¡ãŒãžãåç §ããOCIã€ã³ããã¯ã¹ãæ§ç¯ããŠãããšããããšã§ãã ããã¯ãæšæºã®Dockerã€ã¡ãŒãžãŸãã¯ã³ã³ããã€ã¡ãŒãžã§ãã
ããã«ã¯ããã€ãžã§ã¹ãã«ãã£ãŠããã«ããå ã®ã€ã¡ãŒãžã广çã«åç §ããŠããæªç¥ã®ã¢ãŒããã¯ãã£ãæã€æ°ããã€ã¡ãŒãžããããŸãã ãããŠãããã蚌æã§ãã ããã§ãããã¯ããªãã®ç»åã«æ·»ä»ãããŠããŸãã ããã¯OCIã€ã³ããã¯ã¹ã®äžéšã§ãã ãã®ããããã¹ãŠã®OCIã¬ãžã¹ããªãšäžäœäºææ§ããããŸãã ä»åŸãåç §åã䜿çšå¯èœã«ãªã£ããšãã«ãåç §åã®ãµããŒããæ€èšããäºå®ã§ãã ãã®ãããOCI仿§ã®æ°ããéšåã«ã¯åç §åããããå€éšã¢ãŒãã£ãã¡ã¯ããä»ã®ãã®ã«ã¢ã¿ããã§ããŸãã æ®åããŠããªãããšãèãããšããŸã æçµããŒãžã§ã³ãšããŠãªãªãŒã¹ãããŠãããããã¹ãŠã®ã¬ãžã¹ããªã§å©çšã§ããããã§ã¯ãããŸããã Buildkit ã¯ããã®æç¹ã§ãã¹ãŠã®ã¬ãžã¹ããªã§æ©èœãããããã® OCI ã€ã³ããã¯ã¹ãçæããŠããŸãã
ããå°ãæ·±ãæãäžããŠã¿ãŸãããã ãã®æ§æèšŒæã®ç»åãèŠãŠã¿ãŸãããã ããã¯ããããã®æ§æèšŒæã€ã¡ãŒãžã® 1 ã€ãèŠãŠãããšãã«åŸããããã®ã§ãã 2ã€ã®ã¬ã€ã€ãŒããããŸãã éåžžãDockerã€ã¡ãŒãžãèŠããšãDockerã¬ã€ã€ãŒããšã«ã¬ã€ã€ãŒãååŸãããããããã€ããªã³ã³ãã³ãã«ãªããŸãã ããã¯ãã¡ã€ã«ã·ã¹ãã ã®ããŒãã«ã§ããã? ãªãŒããŒã¬ã€ãã¡ã€ã«ã·ã¹ãã ã ãã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãç»åã§ã¯ãããŸããã æ§æèšŒæããšã« 1 ã€ã®ã¬ã€ã€ãŒã§ãã ãããŠããããã©ã®æ§æèšŒæã§ãããã¯ããã®è¿°èªåã«ãã£ãŠå°çšãããŸãã ããã¯ãSBOM ã®æšæºåœ¢åŒã® 1 ã€ã§ãã SPDX ããã¥ã¡ã³ãã§ããããšãããããŸãã ãããã£ãŠããã®å Žåããã®ã¬ã€ã€ãŒã¯ SBOM ã衚ãããã®ã¬ã€ã€ãŒ (SLSA ã®æ¥æŽ) ã¯æ¥æŽæ§æèšŒæã§ãã
ãããã®æ§æèšŒæã¬ã€ã€ãŒã® 1 ã€ãæãäžããŠã¿ãŸãããã ã ãããä»ãç§ã¯ãããæ¬åœã«intotoã¹ããŒãã¡ã³ãã§ããããšãããããŸãã ãããŠãin-totoã¹ããŒãã¡ã³ãã¯ããµããžã§ã¯ãããã€ã³ãããæ¹æ³ã§ãã ããšãã°ãç¹å®ã®è¿°èªã«å¯ŸããŠäœãã¢ãã¬ã¹æå®ããŸãã? ãã®å Žåã2ã€ã®ã¿ã°ã«å¹æçã«å¯ŸåŠããŠãããããã¯ããã§ç¢ºèªã§ããŸãã ããã¯ææ°ã®ãã®ã§ãããã«ã¯å¥ã®ã¿ã°ãã³ããããã£ãŒãããããŸãã ãããã£ãŠããããã¯ç§ãããã€ãã®ã³ã³ãã³ãã蚌æãããäž»é¡ã§ãããããã§ã¯ãã¹ãŠãåé€ããŸããã
ãããSBOMãç®æããšããã§ãã ããšãã°ãæšæºã®SPDXããã¥ã¡ã³ãã¯ããã«é 眮ãããŸãã ããã«ãããæ¥æŽãšSBOMæ§æèšŒæãå«ãæ§æèšŒæã€ã¡ãŒãžãå«ãOCI玢åŒãæäŸãããŸãã ãã¡ããããã«ãã¢ãŒããã¯ãã£ã®ã€ã¡ãŒãžãæ§ç¯ããŠããå Žåãããã¯å¢ããäžæ¹ã§ãã ãã®ãããAMD64ãªã©ã®ã€ã¡ãŒãžã 1 ã€ãããæ§æèšŒæã€ã¡ãŒãžããããArm64 ãšæ§æèšŒæã€ã¡ãŒãžããããŸãã ã ããã圌ãã¯ãã€ããã¢ã§è¡ããŸãã ãããŠãããªãã¯ããããã³ããŒããããšãã§ããŸããã? ãããã®ç»åãåŒã£åŒµããšãäžã«åŒã£åŒµãããããã«åããŸãã ããããç¬èªã®ãªã³ãã¬ãã¹ã¬ãžã¹ããªã«ã³ããŒãããšãããã§ã䜿çšã§ããŸãã
ãªãŒãã³ããããŒ
ããŠã仿¥ã®åºèª¿è¬æŒã§ã¯ãæ¬åœã«è峿·±ãããšãããªãéãã«çºè¡šãããŸãããããããDockerã¯ã€ãã«ãããã®æ§æèšŒæã«çœ²åãå§ããŸããããããŠã OpenPubkey ãšåŒã°ãããã¯ãããžãŒã䜿çšããŸãããããŠããã®ãã¯ãããžãŒã¯ãç§ãã¡ãææºããŠãã BastionZero ãšããäŒç€Ÿã«ãã£ãŠéæãããŸããããããŠãéçºè ã«ãšã£ãŠããããŠããŸãããã°ãã®èŽè¡ã«ãšã£ãŠæ¬åœã«è峿·±ãã®ã¯ãããããŒãæ§æã®çœ²åãœãªã¥ãŒã·ã§ã³ã§ãããšããããšã§ãã
ãããã£ãŠããã®æŒç¿ã®ç®æšã¯ãçµå±ã®ãšãããGitHub ã¢ã¯ã·ã§ã³ã䜿çšã㊠Docker ã€ã¡ãŒãžãæ§ç¯ããŠããå ŽåããŸãã¯å¥ã® OIDC ãããã€ããŒãå©çšå¯èœãªç°å¢ (Amazon äž) ãæ§ç¯ããŠããå ŽåãGoogle ã§ãããååŸã§ããããã«ããããšã§ããäœãããå¿ èŠã¯ãããŸããããããŠããããã®èªèšŒã¯ãããšãã° GitHub ã§å®è¡ããŠãããšããäºå®ãããšãã° Google ã®ã¯ã©ãŠã ãã«ãã§å®è¡ããŠãããšããäºå®ã«ãã£ãŠçœ²åããå§ããŸããããã§æ¬æ¥ãBastion Zeroãšã® ããŒãããŒã·ãããçºè¡š ããŸããã
ãŸããLinux Foundationã®ã€ãã·ã¢ãããçºè¡šããŸããã ããã§ããœãŒã¹ã³ãŒãå šäœãLinux Foundationã«å¯èŽããŸããã ã ããããã調ã¹å§ããŠãã ããã ããã¯ããã®ãã¹ãŠã®ã³ãŒããååšãã GitHub ãªããžããªãš GitHub çµç¹ã§ãã ãããŠãç§ãã¡ãçºè¡šãããã®ã¯æçµè£œåã§ã¯ãããŸããã ããã¯æ ã®å§ãŸãã§ãããä¿¡é Œã確ç«ããã«ã¯å€ãã®äœæ¥ãå¿ èŠã«ãªããããã³ãã¥ããã£ãå·»ã蟌ã¿ãããšèããŠããŸãã ææ¡ãæ€èšŒããããã®ã»ãã¥ãªãã£ç ç©¶è ãªã©ãå¿ èŠã§ãã
ãããããã®æ©äŒã«ãããšãã° buildkit ã§ OpenPubkey ã䜿ãå§ãããšäœãå€ããã®ãããèŠãããããšæããŸãã 以åã«ãäž»èªãšè¿°èªãæã€ in-toto ã¹ããŒãã¡ã³ãããã£ãããšãæãåºããŠãã ããã ä»ãç§ãã¡ã¯ãã®ã¹ããŒãã¡ã³ããå°çã«çœ®ãæããŠããŸããin-toto仿§ã®äžéšã§ãã ãããŠãããã«ã¯ãã€ããŒããããããããin-totoã¹ããŒãã¡ã³ãã§ãããããŒã¹64 ãšã³ã³ãŒããããŠããŸãã ãããŠãsignaturesé åã«ã¯ãOIDC OpenPubkey眲åããããŸãã
ãããŠããã®çœ²åããããŠç§ã¯ããã«ããªãã«ãããèŠããŸãã å€ãã®ã¢ãµãŒã·ã§ã³ãè¡ãããšãã§ããŸãã ããã¯ãããç©ãç¹å®ã®IDã«ãã£ãŠçœ²åãããŠããããšã確èªããã ãã§ã¯ãããŸããã ããã¯GitHub ActionsããåºãŠãããã®ã§ãã ããã«ã¯ãã£ãšãããããããŸãã
ãããã£ãŠãããšãã°ãã¿ã°ãæ€èšŒã§ããŸãã çæãããGitHub Actionã¯ãŒã¯ãããŒã®ååã確èªã§ããŸãã ããã¯ãããçã¿åºããŸããâããã¯ããªããæåŸ ããŠãããã®ã§ãã? 確èªã§ããããã¯ããã§ãªããžããªèªäœã® ID ã§ãã GitHub ã¯ããã¹ãŠã®çµç¹ããšã«äžæã® ID ãä¿æããŸãã ãã®ãããçµç¹ãåé€ããŠããä»ã®ãŠãŒã¶ã¯ãã®çµç¹ã«ååãããããããšã¯ã§ããŸããã ã§ããããããã¯Dockerçµç¹ã ãšèšã£ãŠãéèšã§ã¯ãããŸããã ãã®æç¹ã§ããããDockerããæ¥ãŠããããšãæ£ç¢ºã«ç¥ã£ãŠããŸãã ãããŠãGitHubã¯ããã«ç«ã£ãŠããããä¿¡é Œã§ãããã®ã§ããããšã確èªããŠããŸãã
åè¿°ããããã«ãæ¥æŽæ§æèšŒæã«ã¯ Git å ±æãå«ãŸããŠããŸãã ãŸãã眲åããã OIDC ã«ãåãæ å ±ãå«ãŸããŠããŸãã ãããã£ãŠãããã2ã€ãå®éã«äžèŽããŠããããšãæ¯èŒã§ããŸãã ã€ãŸããç§ã®ã€ã¡ãŒãžã«ãããã®ã¯ãå®éã«ã¯GitHubãç§ãã¡ã®ããã«ã¯ããŒã³ãããã®ã ã£ãã®ã§ããã? ããã«ãã£ãããšæ¥ç¶ããããç©ãæ±ããŠããªãããšã確èªããŠãã ããã ããã¯æ¬åœã«éèŠãªããšã§ãã ããã«ãããããã«ã€ããŠå€ãã®åŒ·åãªã¢ãµãŒã·ã§ã³ãè¡ãããšãã§ããŸãã
ããã§åŒ·èª¿ãããã®ã¯ãçŸåšã³ã³ãã眲åã«é¢ããå€ãã®çœ²åãœãªã¥ãŒã·ã§ã³ã§ã¯ãæ€èšŒããªããã€ã³ã®ãããªãã®ã«ãªã£ãŠãããšããããšã§ãã ãã®ããããã€ã§ããã€ãã¹ã§ããŸãã ãã®ããã眲åãããã€ã¡ãŒãžã眲åãããæ§æèšŒæãã§ãããããŸãã ã§ããããªãã¯æ¬åœã«èŠªåã§ã¯ãããŸãããç§ã¯åŒ·å¶ãšã¯èšããŸããã ãããããªããã€ã³ã¯ããã»ã©åŒ·åãªã»ãã¥ãªãã£äœå¶ã§ã¯ãããŸãããã? éçºè ã Docker ã®ãã«ã Docker ã®å®è¡ãè¡ããã³ã«ãããªããšããªãã®çµç¹ããããããããã®ã€ã¡ãŒãžã¯ Docker ã§çœ²åããå¿ èŠãããããšå€æããããã«ããå¿ èŠããããŸãã äžèŽããæ¥æŽã®ç Žçãå¿ èŠã§ãã ããããããããåºãŠããã¯ãã®ã¯ãŒã¯ãããŒã§ããããšãç¥ãå¿ èŠããããŸãã
Docker CLI
ãããã®DockerCLIæäœã®äžéšã«ããŸãã ãããŠãCLIã§åºè·ããªã·ãŒãéå§ããŸãã ãã¡ãããäžæžãããããšãã§ããŸãã ããããã°ãå°ãªããšããããã®DOIã€ã¡ãŒãžãDockerã®å ¬åŒã€ã¡ãŒãžãæ€èšŒãããæ¬ç©ã®Dockerã§ã¯ãªããã®ãã§ããããããšã¯ãããŸããã ããã¯ããDocker runããšå ¥åããå Žåãåãã§ãã ãããŠãã¡ãããDocker pull ã«ã€ããŠãè§ŠããŸããã ä»ã«ãæ€èšäžã®ã©ã³ã¿ã€ã çµ±åãããã眲åãå¯èœãªã¡ã¿ããŒã¿ã§ãã
ããããããããªãããœãããŠã§ã¢ã®ãããã¥ãŒãµãŒã§ãè匱æ§ã¹ãã£ããŒããã£ãŠããŠãæ¶è²»è ã«ãã³ã³ããã¯äœãã«å¯ŸããŠè匱ã§ããããšããããªãã®ã€ã¡ãŒãžã¯äœãã«å¯ŸããŠè匱ã§ããããšäŒããã®ã§ããã°ããã®æŠå¿µå šäœã«ã€ããŠèšåãã䟡å€ããããšæããŸãã ããªãã¯ãXãç§ã¯ã³ã³ããã«ç·©åçãæã£ãŠããã®ã§ãå®éã«ã¯åœ±é¿ãåããŠããªããšèšããããããããŸããã ããã¯å®è¡æã«ã¯å®è¡ãããŸããã ãããã¯ãããã ãç§ã¯åœ±é¿ãåããŠããããšèšããããªãã ãããŠãããã¯ããªããããå¿ èŠãããããšã§ãã ãããä¿®æ£ããã€ã¡ãŒãžã®æ¬¡ã®ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãããå¿ èŠããããŸãã
VEX(ããã¯ã¹)
ããã§ç»å Žããã®ããVulnerability Exploitation eXchangeã®ä»æ§ã§ãã ããã¯ãCISAãæšæºåããŠãããã®ã®1ã€ã§ãããæ¿åºæ©é¢ãåºè·ããããšãæåŸ ãããã®ãªã©ã§ãã ã€ãŸããSBOMã§è¡ã£ãŠããããšãšäŒŒãŠããŸãã æ°ãã仿§ã Vexã¯è匱æ§ã®é€å€ãæå³ããŠããªãããšãç¥ã£ãŠããããšãæ¬åœã«éèŠã ãšæããŸãã ãŸãããããœãããŠã§ã¢ã®ãããã¥ãŒãµãŒããç§ã圱é¿ãåããŠããããšãããªãã«äŒããããšããããšãæå³ããŸãã ã€ãŸããããã¯ãç¹å®ã®è£œåã«å¯Ÿããç¹å®ã®CVEãç¹å®ã®è匱æ§ã®ã¹ããŒã¿ã¹ãäŒããæ¹æ³ã§ãã
ãããŠãããã§ããäžã€èŠããŠãããŠããã ãããã®ã¯ããã®çºèšãä¿¡çšããå¿ èŠã¯ãªããšããããšã§ããã? ç¹°ãè¿ãã«ãªããŸããã眲åã¯å¯èœã§ããã眲åãããã¹ãã§ãããæçµçã«ã¯æ¶è²»è ãããŸããDockerãä¿¡é ŒããŠããŸããDockerã®å ¬åŒã€ã¡ãŒãžã«ã¯ãããã¯æªçšã§ããªããšããVEXã¹ããŒãã¡ã³ããããã¯ãã§ãã ç§ã¯ãMicrosoftãããããWindowsã³ã³ãããªã©ã«æªçšã§ããªããšä¿¡ããŠããŸãã ããããç§ã¯Docker Hubã®ã©ã³ãã ãªäººãä¿¡çšããŠããããããã¯æªçšã§ããªããšèšã£ãŠããŸãã å³ã ã§ããããããã§ã眲åã«ã¯ããçšåºŠã®ä¿¡é ŒããããŸãã ãããã®äºæã眲åãããŠãããç§ãã¡ã¯ããã匷å¶ãå§ããããšãã§ããŸãã
ãããŠãããã¯éåžžã«åºæ¬çãªVEXããã¥ã¡ã³ãã§ãã ããã«å°ãã¡ã¿ããŒã¿ãããããšãããããŸãããäœæè ã¯èª°ã§ãã? ãããŠãã¹ããŒãã¡ã³ãã«åãæãããŸãã ããã«ã¯è€æ°ã®ã¹ããŒãã¡ã³ããå«ããããšãã§ããŸãã ç·ãããŸãèªã¿ã«ããããšã¯æ¿ç¥ããŠããŸãã ããããããŸãããã°ãç§ã¯ãããããå°ã詳ãã説æããããšãã§ããŸãã ããã§CVE IDãååŸããç¹å®ã®Dockerã€ã¡ãŒãžå ã§ãç¹å®ã®NPMããã±ãŒãžãè匱ã«ããªãããã«ããŸãã 圱é¿ãåããªããšèšãããã®ã§ããã圱é¿ãåããŠããªããšèšããšãã¯ãæ£åœåãæç€ºããªããã°ãªããŸããã ãããåé¿ããæ¹æ³ã¯ãããŸããããããã§ãªããã°æå¹ãªVEXã¹ããŒãã¡ã³ãã«ã¯ãªããŸããã ãããŠããã®å ŽåããŸãã¯ç§ã¯åã«ã€ã³ã©ã€ã³ç·©åçããã§ã«ååšãããšèšããŸãã ãããã£ãŠãããã¯ãã§ã«ã³ã³ããã§ä¿®æ£ãããŠããŸãã 倧äžå€«ã§ãã 詊ããŠã¿ãŠãããŸããããã©ããèŠãŠã¿ãŸãããã
ãã¢
ããã§ã¯ããã¢ãèŠãŠãããŸãããã ããã§ãœãŒã¹ã³ãŒããæçã«ç޹ä»ããŸãããã ããã¯éåžžã«åçŽãªã¢ããªã±ãŒã·ã§ã³ãã€ãŸãNodeã¢ããªã±ãŒã·ã§ã³ã§ãã ã¢ã«ãã€ã³ã䜿çšããŠããŸãã PINãã€ãžã§ã¹ãã䜿çšããŠè匱æ§ãäœæããDockerãã«ããå®è¡ãããšãã«æéãããã®ãŒããè匱æ§ã®ããã€ã¡ãŒãžããã£ããããŸãã ããã§ã¯ãããããã°ããå®è¡ããŠãããã§Dockerãã«ããå®è¡ããŸãããã ãã®ã€ã¡ãŒãžãæ¥æŽãšSBOMã§æ§ç¯ãããããDocker Hubã«ããã·ã¥ããããšæããŸãã ãããŠããããè¡ããšããã®buildkitã¹ãã£ããŒãå ¥ã£ãŠããããšãããããŸãã ããã¯ãSBOMãäœæããããã«ãã«ããããã«è¿œå ãããŠããŸãã
ãŸããããã§ããããã 1 ã€ã®ããšã¯ã1 ã€ã®ã¢ãŒããã¯ã㣠ã€ã¡ãŒãžã«å¯Ÿã㊠1 ã€ã®ãããã§ã¹ããããã·ã¥ããã ãã§ãªããå®éã«ã¯æ§æèšŒæãããã§ã¹ããšãããã§ã¹ã ãªã¹ããããã·ã¥ããŠãããšããããšã§ãã ãããã£ãŠãåè¿°ã®ããã«ãããããã¹ãŠã®ã¢ãŒãã£ãã¡ã¯ãã ããŠãããã§ãã®ã¿ã°ãã€ããã§ãããå°ãèŠèŠçã«ããŸãããã ããã¯éåžžã«ã·ã³ãã«ãªã¢ããªã±ãŒã·ã§ã³ã§ãâãªã³ã©ã€ã³ãµãŒãã¹ã Dockerã€ã¡ãŒãžã«é¢ããã¡ã¿ããŒã¿ãã€ã³ããã¹ãã¯ããããå Žåãããã¯ãããè¡ãã®ã«æé©ãªæ¹æ³ã§ãã
ãããèŠããšãå ã»ã©ããããªæãã§ã ããã§ãOCIã€ã³ããã¯ã¹ãäœæãããŸããã ããã¯ãå ã»ã©äœæããã€ã¡ãŒãžã§ãã ãããŠãããã«æ§æèšŒæç»åããããŸãã ããã§ããããã¯ãªãã¯ããŠããªã«ã€ã³ãéå§ã§ããŸããã? ã ãããããããã¯æ¬åœã«äŸ¿å©ã§ãã 2 ã€ã®æ§æèšŒæã衚瀺ãããŸãã SBOM ãæ§ç¯ããæ¥æŽæ§æèšŒæãæ§ç¯ããŸããã
ããã§åºæãå°ãæãäžãããšãéåžžã«å€ãã®æ å ±ã衚瀺ãããŸãã ãããããŸããäž»é¡ãèŠãŸãã ããã§ãç¹å®ã®ãã©ãããã©ãŒã çšã®ã¿ã° cd ãäœæããŸããã ããã¯ãŸããç¹å®ã®ãã€ãžã§ã¹ãã®ããã§ããããŸããã ã§ããããããããã¹ãããŠããŸãã ãããŠããã®buildkitãç§ãã¡ã®ããã«ãã£ããã£ãããã¹ãŠã®æ å ±ã¯æ¬¡ã®ãšããã§ãã ã¿ã°ãšãã€ãžã§ã¹ãã§ããŒã¹ã€ã¡ãŒãžã远å ãããŠããã®ããããã®ã§ãæšæž¬ã¯ãããããŸããã åºæ¬ã€ã¡ãŒãžã®æ£ããããŒãžã§ã³ã䜿çšããŠããŸãã? ããã¯æä»£é ãã§ãã? ãã¹ãŠããã®å Žã§ãã£ããã£ãããŠããŸãã ãœãŒã¹ãããã®ããã«ãªããŸãã ãã®ãããåã ã®ãã«ã ã¹ãããããã¹ãŠååŸãããŸãã ãããã¯å ¥åãšç°å¢ã§ãã buildkit ã®åæããŒãžã§ã³ã§ã¯ãããã«ãç§å¯ãèŠããŠããŸããã ãããã圌ãã¯ãã®éã«ãããä¿®æ£ããŸããã
ãããŠãç§ãã¡ãæåŸãŸã§è¡ããªãã°ããããã¯ãã¹ãŠãã«ãã¹ãããã§ãã ãããŠãã©ãã«ã衚瀺ãããŸãã ææãå ¥ã£ãŠããã®ãèŠããŸãã ããã«ãããã©ã® buildkit ã¹ãã£ããŒã䜿çšãããŠããããã©ã®ããŒãžã§ã³ã® buildkit ã䜿çšãããããããããŸãã ãã«ãã«å«ãŸãããã¹ãŠã®ãã®ãã©ã®ããã«ææžåãããŠãããããããå§ããŸãã ãã«ããã©ã®ããã«é¢äžããŠãããããããŠã©ã®ã¬ã€ã€ãŒããã£ãšäžãŸã§çæãããŠãããã確èªã§ããŸãã
ãã®ãšãªã¢ã¯æ¬åœã«é¢çœãã§ãã ã©ããã§èŠã€ããã€ã¡ãŒãžããDockerãã¡ã€ã«ãåæ§ç¯ããããšããããšããããŸãã? ç§ã¯åæã®é ã«ãããéåžžã«å€ãè¡ã£ãŠããŸããã ããã¯ãããã§ããŒã¹64 æååããŒã¿ãšããŠäœ¿çšããã³ã³ãŒãåãããŠããDockerãã¡ã€ã«ã§ãã ãããŠãããã¯ããã¹ãŠã®ãœãŒã¹ãããã®ãããªãã®ãããããã«è¡ãããŸãã ãã®ãããã€ã¡ãŒãžã®åã¬ã€ã€ãŒãDockerãã¡ã€ã«å ã®ç¹å®ã®åœä»€ã«é¢é£ä»ããããšãã§ããŸãã ãããŠãããã¯ãã¹ãŠæ¥æŽèšŒæã«ã«ãã»ã«åãããŠããŸãã ããã«ã¯ãGit ã¡ã¿ããŒã¿ã®ãããªãã®ããããŸãã äœãäœãããŠããã®ã? ç§ã¯Gitãªããžããªãããã«ãããŸããã ããã¯ãGit ãªã¢ãŒã URL ãšã³ããã SHA ã§ãã
äžæ©æ»ã£ãŠãSBOMã«ã€ããŠç°¡åã«èŠãŠã¿ãŸãããã ããã§ãäž»èªãšè¿°èªã§ãã ãã®å Žåã¯ãSPDX ããã¥ã¡ã³ãã§ãã SPDX ããã¥ã¡ã³ãã¯ã3 ã€ã®æäžäœèŠçŽ ã§æ§æãããŠããŸãã ããã¯ããã¡ã€ã«ãããã±ãŒãžããããŠããã 2 ã€ã®éã®é¢ä¿ã§ãã ãããã£ãŠãæåã«ãèå¥ãããŠãããã¹ãŠã®ãã¡ã€ã«ã確èªããŸãã éåžžã«é·ãæéã¹ã¯ããŒã«ãããšãããã±ãŒãžã衚瀺ãããŸãã ããã§ã¯ãã©ã®ããã±ãŒãžãã©ã®ãã¡ã€ã«ãåç §ããŠããããªã©ã®åç §ã衚瀺ãããŸãã ç§ã¯ããªãã®ããã®ããã±ãŒãžãæ¬åœã«éãèŠã€ããããŠãã ããã 倧éã®ããŒã¿ã ããè¡ããã
ããã¯ãããã±ãŒãžã衚çŸãããæ¹æ³ã§ãã ãããã«ã¯ãååãã¡ã¿ããŒã¿ãå€éšåç §ããããŸãã ããã«ã¯ãpurlãããããŸãããããã¯Dockerã§äœ¿çšããCVEãšç §åããããã«éåžžã«éèŠã§ãã ç¹°ãè¿ãã«ãªããŸãããããå€ãã®ã¡ã¿ããŒã¿ã§ãã ãã®åŸããã¡ã€ã«ãšã®é¢ä¿ã確ç«ãããšããã®ããã±ãŒãžãã³ã³ãããŒã®ã©ãã«è¿œå ãããããããã«ç¥ãããšãã§ããŸãã ãdocker scoutããšå ¥åããŠãããããã°ããå®è¡ããŸãããã ãã®ã€ã¡ãŒãžãæ¬åœã«æ©ãåãå ¥ãããã§ãã ãããŠãä»ããã§ãããã®ã¯ãå®éã«ã¯ç»åããã«ããŠã³ããå¿ èŠããªãã£ããšããããšã§ãã ããã 2 ã€ã®æ§æèšŒæãããã¹ãŠã®æ å ±ãååŸããã®ã§ãããŒã¹ ã€ã¡ãŒãžãäœã§ãã£ãããæ£ç¢ºã«äŒããããšãã§ããŸãã
ããã§ããããªãã¯ãããæ¥æŽã§ææãããŠããã®ãèŠãŸããã ãã®ç»åãã©ãããæ¥ãŠããã®ããã©ã®gitãªããžããªãªã®ããæ£ç¢ºãªå ŽæãæããŠãããŸãã ããã«ã¯ãããŸãããã°GitHubã«é£ããŠè¡ã£ãŠããããªã³ã¯ããããŸãã ãããŠãéåžžã«éèŠãªããšã«ãããã«ã¯ãããã®è¡ããããŸãã ãããã£ãŠããã®ãlibSSLã(OpenSSLããã±ãŒãžã®äžéš)ã¯ããã®ç¹å®ã®ã±ãŒã¹ã§ã¯ããŒã¹ã€ã¡ãŒãžããåºãŠããŸãã ã€ãŸããããã¯ã¬ã€ã€ãŒãŒãããåºãŠããŠãããããã¯ãŸãã«ãã®äœåãããã§ç§ãã¡ã«äŒããŠããããšã§ãã ããã§ããæ¥æŽæ§æèšŒæã䜿çšããŠããã¡ã€ã«é¢ä¿ã«ããç¹å®ã®ããã±ãŒãžã Docker ãã¡ã€ã«ã®ç¹å®ã®ã¬ã€ã€ãŒã«ãã£ãŠè¿œå ããããšããæ å ±ãç §åããããšãã§ããŸããã ãããŠãããªãã¯å®éã«ããã§ããã¹ããèªãããšãã§ãããã¡ããããããã¯ãªãã¯ãããšGitHubã®è¡ã«çŽæ¥ç§»åããŸãã ããã«ã¯ãæ¹è¡ãªã©ããã®ãããªä»ã®äŸããããŸãã ããã¯ãŸãã«ãDockerãã¡ã€ã«ã§ã©ã®ããã«èŠãããã§ãã
次ã«ãç°¡åãªVEXã¹ããŒãã¡ã³ããäœæããŸãããããããé©çšãå§ãããšã©ããªããããèŠãããŸãã ãããç»åã«æ·»ä»ããæ¹æ³ã¯ããã€ããããŸãã ããã¯Scoutã«ä¿åã§ããŸãã ãã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãVEXãlocationãèšã£ãŠããã£ã¬ã¯ããªãŸãã¯ãã¡ã€ã«ãã¹ãæž¡ããŸãã ãããŠããã«ãExpressã®è匱æ§ã广çã«è§£æ±ºããããšãããããŸãã
ãããŠããã®å Žåãç§ã¯ãããä¿¡é ŒããŸãã ãç§ã¯ã¯ãªã¹ãã£ã³ãä¿¡é ŒããŠããªãããšèšãããšãã§ããä»ã®ããŸããŸãªCLIãªãã·ã§ã³ããããŸãã ç§ã¯ãã®ç·ã ããä¿¡é ŒããŠããŸãã ã§ããããæ¶è²»è ãšããŠãããããããä¿¡é Œããããšèšãã®ã¯ãæ¬åœã«ããªã次第ã§ãã ããããããã¯è¿œå æ å ±ãæç€ºããããã®åªããæ¹æ³ã§ãã 以åã®åºèª¿è¬æŒã«ãåå ããã ããæ¹ãããã£ããããšæããŸãããç§ãã¡ã¯ãSysdigãå°æ¥çã«ã¯ä»ã®çµ±åæ©èœãªã©ã䜿çšããŠãã€ã¡ãŒãžãæ¬çªç°å¢ã«ãããã€ããéã«ãå®è¡æã«ã©ã®ããã±ãŒãžã䜿çšãããŠããããäŒããããã«åãæè¡ã䜿çšããŠããŸããã ãããã£ãŠããããã¯ããŒããããããã±ãŒãžã確èªããå¿ èŠããããŸãã å³ã
OpenPubkey çµç¹ã«ã¯ãµã³ãã«ãªããžããªãããã倿Žç¹ãç°¡åã«ç޹ä»ããããšæããŸãã ãããã®æ§æèšŒæç»åã® 1 ã€ãèŠããšãããã§ã¯ãŸã£ããåãããã«èŠããŸãã äœãå€ããããšãããšãæãäžãå§ãããšãã§ã...æ¥æŽãã¯ãªãã¯ãããšãããã§ã¯ãäž»èªãšè¿°èªãå«ã in-toto ã¹ããŒãã¡ã³ãã衚瀺ãã代ããã«ããã€ããŒããååŸããŸãã ããããŸãã¹ããŒãã¡ã³ãã§ãããããã«çœ²åããããŸãã ããšã¯ãOpenPubkeyçµç¹ã«ãªãªãŒã¹ããã°ããã®æ°ãããã©ã°ã€ã³ãå®è¡ããã ãã§ã仿¥ãã䜿ãå§ããŠå¯èœæ§ãæ¢ãããšãã§ããŸãã
2 ã€ã®æ§æèšŒæãæ³å®ããŠããããšãããããŸãã ãããã®æ§æèšŒæã¯äž¡æ¹ãšããç¹å®ã®æ¡ä»¶ã§æ€èšŒãããŸãã ããšãã°ãæ£ããã¿ã°ãåç §ããŠãããããèª°ãæ¹ããããŠããªãã®ã§ãããã? ãããŠãæ£ããã¿ã°ãããŒã¯ã³ã¯æ£ããæ©é¢ã«ãã£ãŠçœ²åãããŠããŸãã? ããã¯æ£ããGitHub Actionã®å®è¡ã®ãããªãã®ã§ããããããŠãªããžããªã®ææè ã¯å®éã«äžèŽããŠããŸãã? ãã®å ŽåãDocker ã§ã¯ãªã OpenPubkey ã§ãã ãŸããæ¥æŽã®æ§æèšŒæã«ã€ããŠãåãã§ãgit commitã®åšãã®ã¢ãµãŒã·ã§ã³ã远å ãããŠããŸãã
æåŸã«ãã1ã€ãèŠããããããšããããŸãã ããã«ã¯ãã¢ãªããžããªãããã®ã§ãGitHubã§ã€ã¡ãŒãžãæ§ç¯ããŠããå Žåã ããã§ã¯ããã®ãã¯ãããžã䜿çšããŠãããã®ã€ã¡ãŒãžã®çœ²åãéå§ããããã«ãã«ããèšå®ããæ¹æ³ã®ç°¡åãªãã¢ã瀺ããŸãã ãdocker build and pushãã¢ã¯ã·ã§ã³ã«ç²ŸéããŠããå Žåãããã¯å®éã«ã¯ãŸã£ãã倿ŽãããŠããŸããã ãã®ç¹å®ã®éšåã«å¿ èŠãªæ§æã¯ãããŸããã ä»ã®ãšãããæåã§è¡ãã®ã¯ãå察åŽã®3ã€ã®ãã©ã€ããŒã远å ããå¿ èŠãããããšã ãã§ãã å°æ¥çã«ã¯ããããã«ãã¢ã¯ãã«çµã¿èŸŒãããšã§å€æŽããäºå®ã§ãããå®éã«ãããããŒã«ã«çµã¿èŸŒã¿å§ããŠããŸãã å¥ã® buildkit ã€ã¡ãŒãžã广çã«äœ¿çšããGitHub ãæ¢ã«æäŸããŠããããã€ãã®ç°å¢å€æ°ãæž¡ãå¿ èŠããããŸãã ããã䜿çšããŠãã€ã¡ãŒãžã®çœ²åãéå§ããæ°ãã眲åãã¯ãããžã®èª¿æ»ãéå§ã§ããŸãã
質çå¿ç
æ®ãçŽ 10 åã§ãã 仿¥ã¯äœã質åã¯ãããŸãã? 倧äžå€«ã§ãã
ç§ãçè§£ããŠããããšã確èªããããã®ç°¡åãªã·ããªãªã§ãã ã€ãŸããDjangoäžã«æ§ç¯ãããWebãµã€ãããããããŒã«ã«ã«ã³ã³ãããããããã®ã³ã³ããã®ãã«ããè¡ããããã®ã€ã¡ãŒãžã®ãã«ããå®è¡ããŠArtifactoryã«ããã·ã¥ããŸãã ãããSBOMå ã§ããã·ã¥ããŠãååãArtifactoryãã远å ãããã¹ãŠãããŸããã£ãŠããããšãç¥ã£ãŠãããã«ã¯ãã©ãããã°ããã§ãããã?
å³ã ãã®ã³ãã³ãã¯ããããArtifactoryã«ããã·ã¥ããå ŽåãšãŸã£ããåãããã«æ©èœããŸãã ããã¯å šãå€ãããŸããã ããã®ã¿ã°ãArtifactoryãžã®åç §ã«çœ®ãæãããšãäºå®äžãæ¥æŽãšSBOMã䜿çšããŠã€ã¡ãŒãžãäœæããArtifactoryã«éä¿¡ãå§ããããšã«ãªããŸãã ã¯ãã æåéããããã ãã§ååã§ãã ããããšãããããŸãã
ä»ã«è³ªåã¯ãããŸãã? ãµã€ã³ã€ã³ãåèšãããšãããšãã°ããã®åºæ¬64ãšã³ã³ãŒããããæ¥æŽã«ãªããŸãã ããããã©ããã£ãŠåºæãå埩ãããã®ã§ãã? ãªããªããããã¯æ¥æŽå šäœãç¶²çŸ ããã®ã«ååãªé·ãã§ã¯ãªãããã«èŠããããã§ãã å³ã ããã¯å®éã«ã¯å®å šãªãã€ããŒãã§ãã éæ³ã¯èµ·ãã£ãŠããŸããã äžã«å ¥ã£ãŠèŠãŠã¿ãŸãããã å®éã«ã¯ããªãé·ãã§ãã
倧äžå€«ã§ãã ããã ãã ãšæããŸãã ããããšãããããŸãã çŽ æŽãããäžæ¥ããéãããã ããã
詳ããèŠã
- Docker Scout GAã®çºè¡š:ãœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ã®ããã®å®çšçãªæŽå¯
- Docker Scout 補åããŒãž
- Docker Scout ãã¶ã€ã³ ããŒãã㌠ããã°ã©ã
- Docker Scout ãã詊ããã ãã
- ç«ã¡äžããŠå®è¡ãããã§ãã?ã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ãã䜿çšãã
- DockerCon 2023 ã®ãã€ã©ã€ã (æ°ãã Docker LocalãCloudãAI/ML ã®ã€ãããŒã·ã§ã³)