DockerããŒãåã€ã¡ãŒãžã®ã»ãã¥ãªãã£ãšã³ã³ãã©ã€ã¢ã³ã¹ã®æ€èšŒ
ãã®ã·ãªãŒãºã® ããŒã 1 ã§ã¯ãNode.jsãµãŒãã¹ãDocker Hardened Images(DHI)ã«ç§»è¡ãã 100%ã®è匱æ§é€å»ã 90%ã®ããã±ãŒãžåæžããã㊠41ãšããå°è±¡çãªçµæã枬å®ããŸããã5%ã®ãµã€ãºãçž®å°ããŸããSBOMãæœåºããFIPSãSTIGãCISã®ã³ã³ãã©ã€ã¢ã³ã¹ã©ãã«ã確èªããŸããã
æ°åã¯èª¬åŸåãããããã«èŠããŸãããããããããã®äž»åŒµãç¬ç«ã㊠ã©ããã£ãŠæ€èšŒ ããã®ã§ãããã?
ã»ãã¥ãªãã£ããŒã«ã¯çŽæã§ã¯ãªãæ€èšŒãéããŠä¿¡é ŒãåŸãŸããã»ãã¥ãªãã£è£œåãæ¬çªç°å¢ã§è©äŸ¡ããéã«ã¯ãæå·åŠçãªèšŒæãå¿ èŠã§ããããã¯ç¹ã«ãå±éãããã¹ãŠã®ã³ã³ããã®åºç€ãšãªãç»åã«åœãŠã¯ãŸããŸãããã®èšäºã§ã¯ãçœ²åæ€èšŒãåºæåæãã³ã³ãã©ã€ã¢ã³ã¹èšŒæ æ€æ»ãSBOMåæã®æ€èšŒããã»ã¹ã«ã€ããŠèª¬æããŸããããã§ã¯ããã©ã€ã¢ã«äžã«å®æœã§ããå®è·µçãªæ€èšŒã«çŠç¹ãåœãŠãããè©³çŽ°ãªæè¡æ å ±ã«ã€ããŠã¯ å ¬åŒDHIããã¥ã¡ã³ã ãžã®ãªã³ã¯ãã玹ä»ããŸããæçµçã«ã¯ãDHIã®ã»ãã¥ãªãã£äœå¶ãç¬èªã«ç¢ºèªããæ¬çªç°å¢ãžã®ä¿¡é Œãç¯ãããšãã§ããã§ãããã
Docker Hardened Imagesã§å©çšå¯èœãªã»ãã¥ãªãã£èšŒæã®çè§£
æ€èšŒã«å ¥ãåã«ãäœã確èªããŠããã®ããçè§£ããå¿ èŠããããŸãã
Docker Hardened Imagesã«ã¯ãç»åã®ãã«ãããã»ã¹ãå 容ãã³ã³ãã©ã€ã¢ã³ã¹ã®ç¶æ³ã«é¢ããæå·åŠçã«çœ²åãããã¡ã¿ããŒã¿( attestations)ãå«ãŸããŸãããããã¯ç¬ç«ããŠæ€èšŒå¯èœãªçœ²åæžã¿ã®å£°æã§ãã
|
倧äºãª:ããç»åãããŒã«ã«ã§ååŸããå Žåã¯ã registry:// 蚌èšãæ±ãéã®æ¥é èŸãããã«ãããDocker Scoutã¯ããŒã«ã«ã€ã¡ãŒãžãã£ãã·ã¥ã ãã§ãªãã¬ãžã¹ããªã®èšŒæãæ¢ãããæç€ºãããŸãã |
ããªãã®ç¡¬ããªã£ãã€ã¡ãŒãžã®ãã¹ãŠã®èšŒæããªã¹ãã¢ããããŠãã ãã:
docker scout attestation list registry://<your-org-namespace>/dhi-node:24.11-debian13-fips
ãã㯠16 ç°ãªã蚌èšã¿ã€ãã瀺ããŠããŸã:
https://slsa.dev/provenance/v0.2 SLSA provenance
https://docker.com/dhi/fips/v0.1 FIPS compliance
https://docker.com/dhi/stig/v0.1 STIG scan
https://cyclonedx.org/bom/v1.6 CycloneDX SBOM
https://spdx.dev/Document SPDX SBOM
https://scout.docker.com/vulnerabilities Scout vulnerabilities
https://scout.docker.com/secrets/v0.1 Scout secret scan
https://scout.docker.com/virus/v0.1 Scout virus/malware
https://scout.docker.com/tests/v0.1 Scout test report
https://openvex.dev/ns/v0.2.0 OpenVEX
...
åã¢ãã¹ããŒã·ã§ã³ã¯ç»åã®ç¹å®ã®åŽé¢ã説æããJSONææžã§ããæ€èšŒã®ããã®æãéèŠãªèšŒèš:
- SLSAã®åºèª:ãã«ããœãŒã¹ããã«ããŒã¢ã€ãã³ãã£ãã£ããã«ãããã»ã¹ã®è©³çް
- SBOM:å®å šãªãœãããŠã§ã¢éšå衚
- FIPSæºæ :FIPS 140ã®èšŒæ -3 èªèšŒæå·ã¢ãžã¥ãŒã«
- STIGã¹ãã£ã³:ã»ãã¥ãªãã£æè¡å®è£ ã¬ã€ãã®ã³ã³ãã©ã€ã¢ã³ã¹çµæ
- è匱æ§ã¹ãã£ã³:CVEè©äŸ¡
- VEXã¬ããŒã: CVEã®è匱æ§
ãããã®èªèšŒã¯ããµãã©ã€ãã§ãŒã³ã»ãã¥ãªãã£ã®ããã®ãªãŒãã³ãã¬ãŒã ã¯ãŒã¯ã§ãã in-toto 仿§ã«åŸã£ãŠããŸããå蚌æžã«ã¯ä»¥äžãå«ãŸããŸã:
- ä»¶å:蚌èšãèšè¿°ããŠããããš(ã³ã³ããç»å)
- åæ:å®éã®è«æ±å 容(FIPSèªèšŒæžã¿ãSTIGæºæ ãªã©)
- 眲å:ãã«ããŒããã®æå·çœ²å
眲åãèªåã§ã©ããã£ãŠç¢ºèªã§ãããèŠãŠã¿ãŸãããã
Docker Scoutã§ã®èšŒæã®æ€èšŒ
ããããæ€èšŒããã¢ãã¹ãã£ããŒã·ã§ã³ã¯ãDockerã®ãã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ã«ãã£ãŠæå·çã«çœ²åãããŠããŸããDocker Scoutã¯ãå ¬ééµãèšŒææžãã§ãŒã³ã®ç®¡çãçãã·ã³ãã«ã§çµ±åãããã¢ãããŒããæäŸããDHIèªèšŒããã€ãã£ãã«åŠçããŸããã¢ãã¹ããŒã·ã§ã³ã®æ€èšŒãè¡ãã«ã¯ãâverifyãã©ã°ãä»ãå ããæç€ºçãªæ€èšŒãã£ãŒãããã¯ãæäŸããŸãããã®ããã»ã¹ã¯æå·ããã·ã¥ã«äŸåããŠããããã€ãžã§ã¹ãã¯èšŒæå 容ã®ããã·ã¥ãªã®ã§ããã£ãäžæåã®å€æŽã§ãããã·ã¥ãå®å šã«å€ãããŸããããã«ãã¢ãã¹ã±ãŒã·ã§ã³ã®çœ²åã¯èšè¿°ããç¹å®ã®ç»åãã€ãžã§ã¹ãã«æå·çã«ãã€ã³ããããŠãããæ€èšŒå¯Ÿè±¡ã®ã¡ã¿ããŒã¿ãæã£ãŠããç»åãšæ£ç¢ºã«äžèŽããŠããããšãä¿èšŒããçœ®ææ»æãé²ããŸãã
蚌æã®ååŸ
ç¹å®ã®èšŒæ(äŸãã°SLSAã®åºæ)ãæœåºããã«ã¯ãå®å šãªè¿°èªã¿ã€ãURIã§attestation getã³ãã³ãã䜿çšããŸãã
docker scout attestation get registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
--predicate-type https://slsa.dev/provenance/v0.2 \
--output provenance.json
æåã¯ãããªæãã§ã:
â SBOM obtained from attestation, 32 packages found
â Provenance obtained from attestation
â Report written to provenance.json
ãã§ãã¯ããŒã¯ã¯Docker ScoutãèªèšŒãæ£åžžã«ååŸã»æ€èšŒããããšã確èªããŸããèå°è£ã§ãã¹ã«ãŠãã¯æ¬¡ã®ããã«è¿°ã¹ãŸãã:
- èªèšŒçœ²åã¯Dockerã®çœ²åããŒãšäžèŽããŠããŸã
- 眲åã¯æéåãããŠããŸãã
- ãã®èšŒææžã¯ãã®ç¹å®ã®ç»åãã€ãžã§ã¹ãã«é©çšãããŸã
- èšŒææžã¯æ¹ãããããŠããŸãã
çœ²åæ€èšŒã«å€±æãããšãScoutã¯ãšã©ãŒãè¿ãã蚌æãã¡ã€ã«ãåºåããŸãããå©çšå¯èœãªè¿°èªã¿ã€ãã«ã€ããŠè©³ããç¥ãããæ¹ã¯ ãDHIã®æ€èšŒããã¥ã¡ã³ããã芧ãã ããã
SLSAã®åºèªã®æ€èšŒ
眲åã¯èšŒèšãæ¬ç©ã§ããããšã蚌æããŸããç»åã®åºæã¯ã©ã ããæ¥ããã瀺ããŠããŸãã
SLSA(Supply-chain Levels for Software Artifacts)㯠ãGoogleãLinux Foundationããã®ä»ã®æ¥çããŒãããŒã«ãã£ãŠéçºãããã»ãã¥ãªãã£ãã¬ãŒã ã¯ãŒã¯ã§ããããã¯ãSLSA 0 (ä¿èšŒãªã)ããSLSA 4 (æé«ä¿èšŒ)ãŸã§ã®ãµãã©ã€ãã§ãŒã³ã»ãã¥ãªãã£æç床ã®ã¬ãã«ãå®çŸ©ããŠããŸãã
Docker Hardened Imagesã¯SLSA 3ãã¿ãŒã²ãããšããŠããã以äžãæºããå¿ èŠããããŸãã
- ããã»ã¹ã¯å®å šã«ã¹ã¯ãªããå/èªååãããŠããŸã
- ããŒãžã§ã³ç®¡çã§å®çŸ©ããããã¹ãŠã®ãã«ãã¹ããã
- ãã«ããµãŒãã¹ã«ãã£ãŠèªåçã«çæãããåºæ
- ãããŽã£ãã³ã¹ã«ã¯ããœãŒã¹ããã«ããŒããã«ãã®ãã©ã¡ãŒã¿ãå«ãŸããŸã
以åã«æœåºããSLSA provenance.jsonãçšããŠããœãŒã¹ãªããžããªãšã³ãããããã·ã¥ã確èªã§ããŸã:
jq '.predicate.invocation.environment.github_repository' provenance.json
ã¢ãŠããããïŒ
"docker-hardened-images/definitions"
jq '.predicate.invocation.environment.github_sha1' provenance.json
ã¢ãŠããããïŒ
"698b367344efb3a7d443508782de331a84216ae4"
åæ§ã«ã GitHub Actionsã®ã¯ãŒã¯ãã㌠ããã®ç»åãçæããæ£ç¢ºãªå 容ã確èªã§ããŸãã
jq '.predicate.builder.id' provenance.json
ã¢ãŠããããïŒ
ãhttps://github.com/docker-hardened-images/definitions/actions/runs/18930640220/詊ã¿/1ã
DHIãšã³ã¿ãŒãã©ã€ãºãŠãŒã¶ãŒåã:é«ä¿èšŒäž»åŒµã®æ€èšŒ
ç¡æã®ããŒããšã³ãã€ã¡ãŒãžã¯ã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã«åºã¥ããŠæ§ç¯ãããŠããŸãããDHIãšã³ã¿ãŒãã©ã€ãºã€ã¡ãŒãžã¯FedRAMPãHIPAAã財åç£æ»ã«å¿ èŠãªç¹å®ã®èªèšŒãåããŠããŸãããããã®é«ä¿èšŒã®äž»åŒµãæ€èšŒããæ¹æ³ã¯ä»¥äžã®éãã§ãã
FIPS 140-3 æ€èšŒ
FIPS(é£éŠæ å ±åŠçæšæº) 140-3 ã¯ãæå·ã¢ãžã¥ãŒã«ã«é¢ããç±³åœæ¿åºã®æšæºã§ããããã¯ããœãããŠã§ã¢ã®æå·ãé£éŠã®èŠä»¶ã«åºã¥ãç¬ç«ããæ€æ»æ©é¢ã«ãã£ãŠãã¹ãã»æ€èšŒãããŠããããšã蚌æããèªèšŒãšèããŠãã ããã
æ¿åºæ©é¢ãéèæ©é¢ãå»çæäŸè åãã®ãœãããŠã§ã¢ãæ§ç¯ããå ŽåãFIPSæºæ ã¯ãã°ãã°å¿ é ã§ããFIPSããªããã°ããããã®ç°å¢ã§ãœãããŠã§ã¢ã䜿çšã§ããŸãã!
ç»åã«FIPSèªèšŒæå·ãå«ãŸããŠããã確èªããŠãã ãã:
docker scout attestation get registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
--predicate-type https://docker.com/dhi/fips/v0.1 \
--output fips-attestation.json
ã¢ãŠããããïŒ
{
"certification": "CMVP #4985",
"certificationUrl": "https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4985",
"name": "OpenSSL FIPS Provider",
"package": "pkg:dhi/openssl-provider-fips@3.1.2",
"standard": "FIPS 140-3",
"status": "active",
"sunsetDate": "2030-03-10",
"version": "3.1.2"
}
èšŒææžçªå·(4985)ãéèŠãªèŠçŽ ã§ããããã¯å ¬åŒ NISTã®CMVPããŒã¿ããŒã¹ã«ããç¹å®ã®FIPSæ€èšŒãåç §ããŠããŸãã
STIGã³ã³ãã©ã€ã¢ã³ã¹
STIG(ã»ãã¥ãªãã£æè¡å®è£
ã¬ã€ã)ã¯ãåœé²ç·ç(DoD)ãã·ã¹ãã ã®ã»ãã¥ãªãã£ãã§ãã¯ãªã¹ããšããŠäœæããŠããŸããããã¯ãé²è¡ãæ¿åºæ¥ååãã®ãœãããŠã§ã¢å±éã«å¿
èŠãªå
æ¬çãªã»ãã¥ãªãã£æ§ææšæºã§ãã
DHIç»åã¯ãªãªãŒã¹åã«STIGã¹ãã£ã³ãåããŸããDockerã¯ãåœé²ç·çã®General OSã»ãã¥ãªãã£èŠä»¶ã¬ã€ãã«åºã¥ãã«ã¹ã¿ã STIGã䜿çšããŠããŸããåã¹ãã£ã³ã¯æ°åã®ã»ãã¥ãªãã£ç®¡çã確èªããçµæãå ±åããŸããSTIGã¹ãã£ã³çµæãæœåºããŠã¬ãã¥ãŒã§ããŸã:
docker scout attestation get registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
--predicate-type https://docker.com/dhi/stig/v0.1 \
--output stig-attestation.json
STIGã¹ãã£ã³ã®æŠèŠã確èªããŠãã ãã:
jq '.predicate[0].summary' stig-attestation.json
ã¢ãŠããããïŒ
{
"failedChecks": 0,
"passedChecks": 91,
"notApplicableChecks": 107,
"totalChecks": 198,
"defaultScore": 100,
"flatScore": 91
}
ããã¯ãDHIã該åœãããã¹ãŠã®STIGã³ã³ãããŒã«ãåæ Œããäžæ£ãã§ã㯠91 ãŒãã 100%ã¹ã³ã¢ãèšé²ããããšã瀺ããŠããŸãããnotApplicableChecksã 107 ã¯éåžžãç¹å®ã®æå°ã³ã³ããç°å¢ããã®æ§æã«ã¯ç¡é¢ä¿ãªã³ã³ãããŒã«ãæããŸããSTIGå¶åŸ¡ããã³DHIã³ã³ãã©ã€ã¢ã³ã¹ã®è©³çްã®å®å šãªãªã¹ããå®å šãªSTIGã¹ãã£ã³ã¬ããŒãã®æœåºæ¹æ³ããã³é²èŠ§æ¹æ³ã«ã€ããŠã¯ã DHI STIGããã¥ã¡ã³ããã芧ãã ããã
CISãã³ãããŒã¯ç¡¬å
CIS(ã€ã³ã¿ãŒãããã»ãã¥ãªãã£ã»ã³ã¿ãŒ)ãã³ãããŒã¯ ã¯ãæ¥çã®ã»ãã¥ãªãã£å°éå®¶ã«ãã£ãŠäœæãããã»ãã¥ãªãã£æ§ææšæºã§ããSTIGãšåæ§ã«ããããã¯ã³ã³ã»ã³ãµã¹ã®ãã¹ããã©ã¯ãã£ã¹ã衚ããŠããŸãããæ¿åºã矩åä»ãããã¬ãŒã ã¯ãŒã¯(FIPSãSTIG)ãšã¯ç°ãªããCISãã³ãããŒã¯ã¯ã³ãã¥ããã£ã«ãã£ãŠéçºãããŠããŸãã
CISæºæ ã¯æ³çã«çŸ©åä»ããããŠããŸããããæ¥çæšæºã®ã»ãã¥ãªãã£æ £è¡ãéµå®ããŠããããšã瀺ããã®ã§ããã顧客ã®ä¿¡é Œãç£æ»æºåã«äŸ¡å€ããããŸãã
ç»åã©ãã«ãéããŠCISæºæ ã確èªããããšãã§ããŸã:
docker inspect <your-org-namespace>/dhi-node:24.11-debian13-fips | \
jq '.[0].Config.Labels["com.docker.dhi.compliance"]'
åºå:ãfips, stig, cisã
CISã©ãã«ã¯ã ç»åãCIS Docker Benchmarkã«åºã¥ãããŒãåãããŠããããšã瀺ããŸãã
SBOMã¯å ·äœçã«äœã«äœ¿ãããŠããã®ã§ãããã?
ã³ã³ãã©ã€ã¢ã³ã¹ã®æ çµã¿ã¯ãã©ã®åºæºãæºããããæããŠãããŸããSBOMã¯å®éã«ã³ã³ããã®äžèº«ãæããŠãããŸããããããæ¬åœã®ã»ãã¥ãªãã£äœæ¥ãå§ãŸããŸãã
æšç§»äŸåé¢ä¿ã®èå¥
ãããžã§ã¯ãã«ããã±ãŒãžã远å ãããšãçŽæ¥äŸåé¢ä¿ã確èªã§ããŸããèŠããªãã®ã¯ããã®ããã±ãŒãžã®äŸåé¢ä¿ã äŸå é¢ä¿ãªã©ã§ãããããæšç§»çäŸååé¡ã§ãã
ãã©ã³ãžãã£ãäŸåé¢ä¿ã®è匱æ§ããèããããšããªããšã¢ããªã±ãŒã·ã§ã³å šäœãå±ãããªããŸããå®éã®äŸãšããŠãLog4Shellã®è匱æ§ã¯ãLog4jãäŸåãã§ãŒã³ã®äœå±€ãæ·±ãåãããæšç§»çäŸåé¢ä¿ã ã£ããããäœçŸäžãã®ã¢ããªã±ãŒã·ã§ã³ã«åœ±é¿ãäžããŸããã
ã»ãšãã©ã®è匱æ§ã¯æšç§»äŸåé¢ä¿ã«é ããŠããŸããçç±ã¯ä»¥äžã®éãã§ã:
- éçºè ã¯ãã®ååšãç¥ããŸãã
- çŽæ¥äŸåé¢ä¿ãæŽæ°ããããšãã«ã¯æŽæ°ãããŸãã
- SBOMããªããã°ã¹ãã£ã³ããŒã«ã¯èŠéããŠããŸããŸã
æå°éã®ç»åããã®ãªã¹ã¯ãåçã«æžãããŸããããã±ãŒãžæ°ãå°ãªããã°ãæšç§»äŸåæ§ãå°ãªããæ»æé¢ãå°ãããªããŸãã
äŸåæ°ãæ¯èŒãã:
- å ¬åŒNode.jsç»å:321ããã±ãŒãžã~1ãäŸåé¢ä¿500
- DHI Node.jsç»å: 32 ããã±ãŒãžã~150 äŸåé¢ä¿
ããã±ãŒãžã®90%æžå°ã¯æšç§»çäŸåãªã¹ã¯ã®90%æžå°ãæå³ããŸãã
æ¢ç¥(æªçšå¯èœãª)è匱æ§ã®ã¹ãã£ã³
SBOMãæœåºããåŸãæ¢ç¥ã®è匱æ§ãã¹ãã£ã³ããŸã:
docker scout cves registry://<your-org-namespace>/dhi-node:24.11-debian13-fips
ã¢ãŠããããïŒ
Target: <your-org-namespace>/dhi-node:24.11-debian13-fips
0C 0H 0M 8L
8 vulnerabilities found in 2 packages
CRITICAL 0
HIGH 0
MEDIUM 0
LOW 8
é倧ãé«ãäžçšåºŠã®è匱æ§ã¯ãŒãã§ããDocker Scoutã¯SBOMãè€æ°ã®è匱æ§ããŒã¿ããŒã¹(NVDãGitHubã»ãã¥ãªãã£ã¢ããã€ã¶ãªãŒãªã©)ãšç §åããŸãããããæå°éã®ç»åã®ã¡ãªããã§ããããã±ãŒãžæ°ãå°ãªããã°ãæœåšçãªè匱æ§ãå°ãªããªããŸããå ¬åŒNode.jsã€ã¡ãŒãžã«ã¯ãã¯ãªãã£ã«ã«ããã€ãããã£ã¢ã ã®å 25 ã®ã»ãã¥ãªãã£ãèšèŒãããŠããŸããã匷åçã«ã¯å®è¡å¯èœãªè匱æ§ãå šããããŸãããããã¯è匱æ§ããããé©çšãããããã§ã¯ãªããè匱æ§ããã±ãŒãžãå®å šã«åé€ãããããã§ãã
VEXã«ãããšã¯ã¹ããã€ã¿ããªãã£ã®çè§£
ãã¹ãŠã® CVE ãããªãã®ãããã€ã¡ã³ãã«é¢ä¿ããŠããããã§ã¯ãããŸãããã¢ããªã±ãŒã·ã§ã³ãåŒã³åºããªãã©ã€ãã©ãªé¢æ°ã®è匱æ§ããå®è¡ãããŠããªããµãŒãã¹ã®æ¬ é¥ã¯ãå®éã®ãªã¹ã¯ãçã¿åºããŸãããDocker Hardened Imagesã«ã¯ãå ±åãããã©ã® CVE ãå®éã®ã©ã³ã¿ã€ã æèã§æªçšå¯èœã§ãªããã瀺ãçœ²åæžã¿ VEX ã¢ãã¹ã¡ã³ããå«ãŸããŠããŸããããã«ãããããã±ãŒãžå ã«ååšãã(å ±åãããŠãã)ãš ãå®éã«æªçšå¯èœãª (ãã®ã€ã¡ãŒãžã§ã®ããã±ãŒãžã®äœ¿ãæ¹ããæªçšå¯èœ)㪠CVE(æªçšå¯èœ)ãåºå¥ããã®ã«åœ¹ç«ã¡ãŸããèšãæããã°ãVEXã¯åœéœæ§ãæžãããŸãã
|
Docker Scoutã¯DHIã€ã¡ãŒãžãã¹ãã£ã³ããéã«èªåçã«VEXæãé©çšããŸã:å®è¡æã« Docker Scout CVE (è±èª)Scoutã¯ãéæªçšãšããŒã¯ãããè匱æ§ãæå¶ããããã«VEXèªèšŒã䜿çšããŸãã |
以äžã®ã³ãã³ãã§è©äŸ¡ãããCVEã確èªã§ããŸã:
docker scout attestation get registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
--predicate-type https://openvex.dev/ns/v0.2.0 \
--output vex.json
ã©ã€ã»ã³ã¹éµå®åæ
ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã䜿ãå Žåãã©ã€ã»ã³ã¹æ¡ä»¶ã«çžãããŸããäžéšã®ã©ã€ã»ã³ã¹(MITãApache)ã¯å¯å®¹ã§ãåçšè£œåã§ãèªç±ã«äœ¿çšã§ããŸããäžæ¹(GPLãAGPL)ã¯ã³ããŒã¬ããã§ããœãããŠã§ã¢ãé åžããå Žåã¯ãœãŒã¹ã³ãŒããå ¬éããããšãæ±ããããŸãã
SBOMã¯ã©ã€ã»ã³ã¹éµå®ãå¯èŠåããŸããSBOMããªããã°ãã³ã³ããã«å«ãŸããŠããã©ã€ã»ã³ã¹ãèŠããªããªããŸãã
SBOMãSPDX圢åŒã§ãšã¯ã¹ããŒããã:
docker scout sbom registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
--format spdx \
--output node-sbom-spdx.json
ã©ã€ã»ã³ã¹é åžã®åæ:
jq '.packages[].licenseConcluded' node-sbom-spdx.json | \
sort | uniq -c | sort -rn
ã¢ãŠããããïŒ
15 "MIT"
8 "Apache-2.0"
5 "GPL-2.0-or-later"
2 "BSD-3-Clause"
1 "OpenSSL"
1 "NOASSERTION"
ãã®äŸã§ã¯:
- â MITãšã¢ããã2ã0 ã¯èš±å®¹ç(忥å©çšã«å®å š)ã§ãã
- â ïž GPL-2ã0-ãŸãã¯ãã以éã¬ãã¥ãŒãå¿ èŠ(ããã¯ã©ã³ã¿ã€ã äŸåæ§ã§ããããããšããã«ãããŒã«ã§ãã?)
- â ïž NOASERTIONã¯èª¿æ»ãå¿ èŠã
çµè«:ããªãã蚌æããããš
DockerãããŒãã³ãã€ã¡ãŒãžã«ã€ããŠäž»åŒµããéèŠãªã»ãã¥ãªãã£äž»åŒµãç¬èªã«æ€èšŒããŸãã:
- çæ£æ§:æå·çœ²åã¯ç»åãæ¬ç©ã§æ¹å€ãããŠããªãããšãä¿èšŒããŸã
- åºæ:SLSAã®èªèšŒã¯å
¬éãªããžããªå
ã®ç¹å®ã®ãœãŒã¹ã³ããããŸã§ãã«ãã远跡ããŸã
ã³ã³ãã©ã€ã¢ã³ã¹:FIPSèšŒææžãSTIG管çã«åæ ŒãCISãã³ãããŒã¯ãéæ - èŠåäœå¶
æ€èšŒãããã¹ãŠã®è«æ±(CISãé€ã)ã«ã¯å¯Ÿå¿ãã蚌æããããèªåã§ç¢ºèªããç£æ»ããCI/CDãã€ãã©ã€ã³ã§æ€èšŒã§ããŸãã
Docker Hubã®UIã䜿ã£ãŠãããªãã®ããŒãºã«åãããŠDocker Hardened Image(DHI)ãã«ã¹ã¿ãã€ãºã§ããŸããããã«ãããããŒã¹ã€ã¡ãŒãžã®éžæãããã±ãŒãžã®è¿œå ãOCIã®ææç©(ã«ã¹ã¿ã èšŒææžã远å ããŒã«ãªã©)ã®è¿œå ãèšå®ã®èšå®ãå¯èœã«ãªããŸããããã«ããã«ããã€ãã©ã€ã³ã¯ã«ã¹ã¿ãã€ãºãããã€ã¡ãŒãžãå®å šã«æ§ç¯ããã蚌æãå«ãŸããŠããããšãä¿èšŒããŸãã
ããŒã 3ã§ã¯ãå ã»ã©èª¬æããå©ç¹ãç¶æãã€ã€ãããªãã®ããŒãºã«åãããŠDockerã®åŒ·åã€ã¡ãŒãžãã«ã¹ã¿ãã€ãºããæ¹æ³ã解説ããŸãã
DHIãã»ãã¥ãªãã£ã®çŽæãæãããŠããããšã確èªããŸããããæ¬¡ã¯çšŒåãããã
ãã 1éšãèªãã§ããªããã°ãè匱æ§ã®é€å»ç 100%ãšããã±ãŒãžåæžç 90%ã«ã€ããŠè©±ãåã£ãå 容ãã ãã¡ãã®ããã°ãã芧ãã ããã