æ¬¡ã®æé ã§ã¯、SPDX ã®
spdx-to-osv ãã¼ã«ã使ã£ã¦ Kubernetes ã® SBOM 㨠OSV ãã¼ã¿ãã¼ã¹ãçµã³ã¤ãã¾ã。
# SPDX SBOM æ
å ±ãåãåã、ããã OSV èå¼±æ§ã«ãããã³ã°ãã spdx-to-osv ãã¼ã«ãå®è¡ãã
$ java -jar ./target/spdx-to-osv-0.0.4-SNAPSHOT-jar-with-dependencies.jar -I k8s-1.21.3-source.spdx -O out-k8s.1.21.3.json
# åºåããã spdx-to-osv ãã¼ã«ã® OSV èå¼±æ§ã表示ãã
$ cat out-k8s.1.21.3.json
…
{
"id": "GHSA-w73w-5m7g-f7qc",
"published": "2021-05-18T21:08:21Z",
"modified": "2021-06-28T21:32:34Z",
"aliases": [
"CVE-2020-26160"
],
"summary": "Authorization bypass in github.com/dgrijalva/jwt-go",
"details": "jwt-go allows attackers to bypass intended access restrictions in situations with []string{} for m[\"aud\"] (which is allowed by the specification). Because the type assertion fails, \"\" is the value of aud. This is a security problem if the JWT token is presented to a service that lacks its own audience check. There is no patch available and users of jwt-go are advised to migrate to [golang-jwt](https://github.com/golang-jwt/jwt) at version 3.2.1",
"affected": [
{
"package": {
"name": "github.com/dgrijalva/jwt-go",
"ecosystem": "Go",
"purl": "pkg:golang/github.com/dgrijalva/jwt-go"
},
…
ãã¼ã«ã®åºåãã、Kubernetes ã® v1.21.3 ã«ã¯、èå¼±æ§
CVE-2020-26160 ããããã¨ããããã¾ã。ãã®æ
å ±ã¯、ãã®ã½ããã¦ã§ã¢ãéç¨ãããªã¹ã¯ã管çããããã«è¿½å ã®ã¢ã¯ã·ã§ã³ãå¿
è¦ãã©ããã夿ããéã«å½¹ç«ã¤å¯è½æ§ãããã¾ã。ãã¨ãã°、ããçµç¹ã Kubernetes ã® v1.21.3 ã使ã£ã¦ããå ´å、ä¼ç¤¾ã®ããªã·ã¼ã«åºã¥ãã¦ãããã¤ãããã½ããã¦ã§ã¢ãæ´æ°ããã¨ãã対çãã¨ããã¨ãèãããã¾ã。ããããã°、ãã®èå¼±æ§ãæªç¨ããæ»æããçµç¹ãå®ããã¨ãã§ãã¾ã。
SBOM ãã¼ã«ã®æ¹åææ¡ spdx-to-osv ãã¼ã«ãåä½ãããã«ã¯、ããã¤ãã®å°ããªå¤æ´ãè¡ã、SBOM ãæä¾ããæ
å ±ã®ããã¾ãããæé¤ããå¿
è¦ãããã¾ãã。
ç¾å¨ã® bom ãã¼ã«ã®å®è£
ã§ã¯、ãã¼ã¸ã§ã³ãããã±ã¼ã¸åã®ä¸ã«å«ã¾ãã¦ãã¾ã(gopkg.in/square/[email protected] )。SPDX å½¢å¼ã§ã¯ãã¼ã¸ã§ã³çªå·ãå¥ã®ãã£ã¼ã«ãã«æ ¼ç´ããã¦ãããã、ãã®æ¥å°¾è¾ãåãé¤ããªãã¨、ç
§åããããã¨ãã§ãã¾ããã§ãã。 ãã® bom ãã¼ã«ã§ä½æãã SBOM ã§ã¯、ã¨ã³ã·ã¹ãã ãç¹å®ã§ãã¾ãã。ã¨ã³ã·ã¹ãã ããªãã¨、ã©ã®ã©ã¤ãã©ãªãããã±ã¼ã¸ãå½±é¿ãåãããã確å®ã«èªåå¤å®ãããã¨ã¯ã§ãã¾ãã。ã¨ã³ã·ã¹ãã ã«ãã£ã¦å½±é¿ã®æç¡ãç°ãªãå ´å、èå¼±æ§ã¹ãã£ãã誤å¤å®ãå¼ãèµ·ããå¯è½æ§ãããã¾ã。SBOM ã§ã©ã¤ãã©ãªãããã±ã¼ã¸ã®ãã¼ã¸ã§ã³ãåºå¥ããã¦ããã°、å©ä¾¿æ§ãããã«é«ã¾ãã¾ã。 ãã ã、ãããã¯æ¯è¼çå°ããªãã¼ãã«ã§、æåã§å¤å°ã®èª¿æ´ãããã ãã§、ãã¾ããã¼ã«ãå®è¡ã§ãã¾ãã。ä»å¾、ãã®ããã»ã¹ãç°¡åã«å®è¡ã§ããããã«、æ¬¡ã®ææ¡ã«ãã SBOM çæãã¼ã«ãæ¹åãããã¨èãã¦ãã¾ã。
SBOM ãã¼ã«ã®ä½æè
ã¯、ã½ããã¦ã§ã¢ã«å«ã¾ãããã¹ã¦ã®ããã±ã¼ã¸ã«ã¤ãã¦、Purl ãªã©ã®èå¥ã¹ãã¼ã ã«ããåç
§ã追å ãã¹ãã§ã。ãã®ç¨®ã®èå¥ã¹ãã¼ã ãããã°、ã¨ã³ã·ã¹ãã ãç¹å®ã§ããã¨ã¨ãã«、åè¿°ã®æ¥å°¾è¾ã®ãããªããã±ã¼ã¸è¨è¿°åã®å°ããªæºãã«å¯¾ããã¹ãã¼ã ã®æè»æ§ãåä¸ããã®ã§、ããã±ã¼ã¸ã®èå¥ã容æã«ãªãã¾ã。SPDX ã§ã¯ããããµãã¼ãããããã«、Purl ã®å¤é¨åç
§ ããã®ä»ã®ããã±ã¼ã¸èå¥ã¹ãã¼ãã®å¤é¨åç
§ã使ç¨ãã¦ãã¾ã。 SBOM ã®æªæ¥ SBOM ã®å½åã®ç®çã§ãã「ã½ããã¦ã§ã¢ã®èå¼±æ§ãªã¹ã¯ç®¡çãæ¯æ´ãã」ãå®ç¾ããã¤ã¤ãããã¨ã¯æããã§ã。ä»åã®ä¾ã§ã¯ OSV ãã¼ã¿ãã¼ã¹ãç
§ä¼ãã¾ããã、è¿ããã¡ã«、ä»ã®èå¼±æ§ãã¼ã¿ãã¼ã¹ã« SBOM ãã¼ã¿ããããã³ã°ããã、
VEX ãªã©ã®æ°ããæ¨æºã使ã£ãããããã¨ãã§ããããã«ãªãã§ããã。VEX ã§ã¯、ã½ããã¦ã§ã¢ã®èå¼±æ§ã軽æ¸ããã¦ãããã©ããã«ã¤ãã¦ã®è¿½å æ
å ±ãæä¾ããã¾ã。
SBOM ã®æ¡ç¨ãåºãã、ãã¼ã«ã®æ¹åãç¶ãã°、ããé ããªããã¡ã«、ãã¹ã¦ã®ã½ããã¦ã§ã¢ã§ SBOM ã®ãªã¯ã¨ã¹ãããã¦ã³ãã¼ããã§ããããã«ãªãã§ããã。ããã«、å©ç¨ããã½ããã¦ã§ã¢ã®èå¼±æ§ãææ¡ã§ããããã«ãªãããããã¾ãã。ä»åã®ä¾ãéãã¦、SBOM ã¨èå¼±æ§ãã¼ã¿ãã¼ã¹ãçµã³ã¤ããããã§ã®åé¡ãè§£æ¶ãããã¨ãã«、SBOM ã§ä½ãå®ç¾ã§ããããå£éè¦ããã¨ãã§ãã¾ãã。ãããã、使ãã½ããã¦ã§ã¢ã®ãªã¹ã¯ã«é¢ããä¸å®ã軽æ¸ãããæ°ããªæ¥å¸¸ã§ã。
spdx-to-osv ãã¼ã«ã®ä½æè
ã§、ãã®ããã°æç¨¿ã«è²¢ç®ããã ãã Source Auditor 社㮠Gary O'Neall æ°ã«æ·±ãæè¬ãããã¾ã。
Posted by
Eiji Kitamura - Developer Relations Team
ãã®è¨äºã¯ Google ãªã¼ãã³ã½ã¼ã¹ ã»ãã¥ãªã㣠ãã¼ã 、Brandon Lum、Oliver Chang ã«ãã Google Security Blog ã®è¨äº "SBOM in Action: finding vulnerabilities with a Software Bill of Materials " ãå
ã«ç¿»è¨³・å çãããã®ã§ã。詳ããã¯å
è¨äºãã覧ãã ãã。 æ¨å¹´ã¯、ã½ããã¦ã§ã¢é¨å表(Software Bills of Materials、SBOM )ãæ¡ç¨ãããã¨ããæ©éãæ¥çå
¨ä½ã§é«ã¾ãã¾ãã。SBOM ã¨ã¯、ã½ããã¦ã§ã¢ããã«ãããããã«å¿
è¦ãªã³ã³ãã¼ãã³ã、ã©ã¤ãã©ãª、ã¢ã¸ã¥ã¼ã«ããã¹ã¦åæãããã®ã§ã。2021 å¹´ã®ãµã¤ãã¼ã»ãã¥ãªãã£ã«é¢ããç±³å½å¤§çµ±é 令 ãåãã¦、ç§ãã¡ã使ãã½ããã¦ã§ã¢ãä½ã§ã§ãã¦ããã®ããçè§£ããææ®µã¨ãã¦、ãã®ã½ããã¦ã§ã¢é¨åè¡¨ãæ³¨ç®ããã¦ãã¾ã。åºæ¬çãªèãæ¹ã¯、ä»è
ãä½ã£ããã®ãå«ã、ãã¹ã¦ã®é¨åã«ã¤ãã¦ææ¡ãã¦ããªããã°、ç¹å®ã®ã½ããã¦ã§ã¢ã«å«ã¾ãããªã¹ã¯ã¯å¤æã§ããªãã¨ãããã®ã§ã。SBOM ã¸ã®é¢å¿ã®é«ã¾ãã¯、ç±³å½å½ç«æ¨æºæè¡ç ç©¶æ(NIST)ãã½ããã¦ã§ã¢ã® SBOM æ
å ±ã®æä¾ãå¿
é ã¨ããã»ãã¥ã¢ ã½ããã¦ã§ã¢éçºãã¬ã¼ã ã¯ã¼ã¯ ãå
¬éãããã¨ã§、ããã«æ¼ãä¸ãããããã¨ã«ãªãã¾ãã。ããã、æ¥çã§ SBOM ãçæãã¦å
±æããææ³ãé²å±ãã¤ã¤ãã ä»、SBOM ãã©ã®ããã«æ´»ç¨ããã°ããã®ã§ãããã。 SBOM ãçæããã ãã§ã¯、ã¾ã éåã°ã§ã。ããã½ããã¦ã§ã¢ã® SBOM ãæºåã§ããã、ãããæ¢ç¥ã®èå¼±æ§ãªã¹ãã«ãããã³ã°ãã¦、è
å¨ãåã¼ããããªãã®ã¯ã©ã®ã³ã³ãã¼ãã³ããã確èªããå¿
è¦ãããã¾ã。ãã® 2 ã¤ã®æ
å ±æºãçµã³ã¤ãããã¨ã§、å©ç¨è
ã¯ã½ããã¦ã§ã¢ã«å«ã¾ãã¦ãããã®ã ãã§ãªã、ãã®ãªã¹ã¯ãä¿®æ£ãã¹ãåé¡ããããã©ãããææ¡ã§ãã¾ã。 ãã®ããã°æç¨¿ã§ã¯、å¤§è¦æ¨¡ã§éè¦ãª ããã¸ã§ã¯ãã§ãã Kubernetes ãã SBOM ãåå¾ã、ãªã¼ãã³ã½ã¼ã¹ã®ãã¼ã«ã使ã£ã¦ããã«å«ã¾ããèå¼±æ§ãç¹å®ããããã»ã¹ã示ãã¾ã。ç§ãã¡ã®ä¾ã®æåã¯、å®å
¨ãª SBOM ãä½ãããã®ãå¾
ããªãã¦ã、SBOM ã¨ä¸è¬çãªèå¼±æ§ãã¼ã¿ãã¼ã¹ã¨ã®ãããã³ã°ãå§ãããããã¨ã示ãã¦ãã¾ã。2 ã¤ã®ãã¼ã¿ã½ã¼ã¹ãçµã³ã¤ããéã®ç¾å¨ã®å¶éã«å¯¾å¦ããããã« SBOM 使è
ãå°ãã®æ´æ°ãè¡ãã ãã§、ãã®ããã»ã¹ã¯、å¹³åçãªã½ããã¦ã§ã¢å©ç¨è
ãç°¡åã«ä½¿ãããã®ã«ãªãã¾ã。OSV: SBOM ã¨èå¼±æ§ãçµã³ã¤ãã 以ä¸ã®ä¾ã§ã¯、Kubernetes ãåãä¸ãã¾ã。å¤§è¦æ¨¡ããã¸ã§ã¯ãã§ãã Kubernetes ã§ã¯、SBOM æ
å ±ãä¼éããããã®ãªã¼ãã³ãªå½éåºæº(ISO)ã§ãã Software Package Data Exchange(SPDX)å½¢å¼ã§ SBOM ãæä¾ããã¦ãã¾ã。SBOM ãæä¾ãã¦ãããã¹ã¦ã®ããã¸ã§ã¯ãã«ã、åãèãæ¹ãå½ã¦ã¯ã¾ãã¯ãã§ã。SBOM ãæä¾ãã¦ããªãããã¸ã§ã¯ãã§ã¯、Kubernetes ã使ããåã bom ãã¼ã«ã使ã£ã¦ç¬èªã® SBOM ãçæã§ãã¾ã。 ä»åã¯、ãã® SBOM ã Open Source Vulnerabilities(OSV)ãã¼ã¿ãã¼ã¹ ã«ãããã³ã°ãããã¨ã«ãã¾ãã。ãã®ãã¼ã¿ãã¼ã¹ã§ã¯、ãªã¼ãã³ã½ã¼ã¹ ããã±ã¼ã¸ã®ãã¼ã¸ã§ã³ãã³ããã ããã·ã¥ã¨ãããã³ã°ã§ããå½¢å¼ã§èå¼±æ§ãè¨è¿°ããã¦ãã¾ã。OSV ãã¼ã¿ãã¼ã¹ã¯ãã®ç¹ã§ãåªç§ã§、æ¨æºå½¢å¼ãæä¾ãã、è¤æ°ã®ã¨ã³ã·ã¹ãã (Python、Golang、Rust ãªã©)ããã¼ã¿ãã¼ã¹(Github Advisory Database(GHSA) 、Global Security Database(GSD) ãªã©)ããã®æ
å ±ãéç´ããã¦ãã¾ã。 SBOM ã¨ãã¼ã¿ãã¼ã¹ãçµã³ã¤ããããã«、SPDX ã® spdx-to-osv ãã¼ã«ã使ãã¾ã。ãã®ãªã¼ãã³ã½ã¼ã¹ ãã¼ã«ã¯ SPDX ã® SBOM ããã¥ã¡ã³ããåãåã、OSV èå¼±æ§ãã¼ã¿ãã¼ã¹ã«ç
§ä¼ãã、ã½ããã¦ã§ã¢ã§å®£è¨ããã¦ããã³ã³ãã¼ãã³ãã«å«ã¾ããèå¼±æ§ã®ä¸è¦§ãè¿ãã¾ã。 ä¾ : Kubernetes ã® SBOM æåã®æé ã¯、Kubernetes ã® SBOM ããã¦ã³ãã¼ããããã¨ã§ã。Kubernetes ã® SBOM ã¯å
¬éããã¦ãã 、ããã¸ã§ã¯ã、ä¾åé¢ä¿、ãã¼ã¸ã§ã³、ã©ã¤ã»ã³ã¹ã«ã¤ãã¦ã®æ
å ±ãå«ã¾ãã¦ãã¾ã。次ã«ç¤ºãç°¡å㪠curl ã³ãã³ãã§、誰ã§ããã¦ã³ãã¼ãã§ãã¾ã。# Kubernetes SPDX ã½ã¼ã¹ ããã¥ã¡ã³ãããã¦ã³ãã¼ããã
$ curl -L https://sbom.k8s.io/v1.21.3/source > k8s-1.21.3-source.spdx
æ¬¡ã®æé ã§ã¯、SPDX ã® spdx-to-osv ãã¼ã«ã使ã£ã¦ Kubernetes ã® SBOM 㨠OSV ãã¼ã¿ãã¼ã¹ãçµã³ã¤ãã¾ã。# SPDX SBOM æ
å ±ãåãåã、ããã OSV èå¼±æ§ã«ãããã³ã°ãã spdx-to-osv ãã¼ã«ãå®è¡ãã
$ java -jar ./target/spdx-to-osv-0.0.4-SNAPSHOT-jar-with-dependencies.jar -I k8s-1.21.3-source.spdx -O out-k8s.1.21.3.json
# åºåããã spdx-to-osv ãã¼ã«ã® OSV èå¼±æ§ã表示ãã
$ cat out-k8s.1.21.3.json
…
{
"id": "GHSA-w73w-5m7g-f7qc",
"published": "2021-05-18T21:08:21Z",
"modified": "2021-06-28T21:32:34Z",
"aliases": [
"CVE-2020-26160"
],
"summary": "Authorization bypass in github.com/dgrijalva/jwt-go",
"details": "jwt-go allows attackers to bypass intended access restrictions in situations with []string{} for m[\"aud\"] (which is allowed by the specification). Because the type assertion fails, \"\" is the value of aud. This is a security problem if the JWT token is presented to a service that lacks its own audience check. There is no patch available and users of jwt-go are advised to migrate to [golang-jwt](https://github.com/golang-jwt/jwt) at version 3.2.1",
"affected": [
{
"package": {
"name": "github.com/dgrijalva/jwt-go",
"ecosystem": "Go",
"purl": "pkg:golang/github.com/dgrijalva/jwt-go"
},
…
ãã¼ã«ã®åºåãã、Kubernetes ã® v1.21.3 ã«ã¯、èå¼±æ§ CVE-2020-26160 ããããã¨ããããã¾ã。ãã®æ
å ±ã¯、ãã®ã½ããã¦ã§ã¢ãéç¨ãããªã¹ã¯ã管çããããã«è¿½å ã®ã¢ã¯ã·ã§ã³ãå¿
è¦ãã©ããã夿ããéã«å½¹ç«ã¤å¯è½æ§ãããã¾ã。ãã¨ãã°、ããçµç¹ã Kubernetes ã® v1.21.3 ã使ã£ã¦ããå ´å、ä¼ç¤¾ã®ããªã·ã¼ã«åºã¥ãã¦ãããã¤ãããã½ããã¦ã§ã¢ãæ´æ°ããã¨ãã対çãã¨ããã¨ãèãããã¾ã。ããããã°、ãã®èå¼±æ§ãæªç¨ããæ»æããçµç¹ãå®ããã¨ãã§ãã¾ã。SBOM ãã¼ã«ã®æ¹åææ¡ spdx-to-osv ãã¼ã«ãåä½ãããã«ã¯、ããã¤ãã®å°ããªå¤æ´ãè¡ã、SBOM ãæä¾ããæ
å ±ã®ããã¾ãããæé¤ããå¿
è¦ãããã¾ãã。
ç¾å¨ã® bom ãã¼ã«ã®å®è£
ã§ã¯、ãã¼ã¸ã§ã³ãããã±ã¼ã¸åã®ä¸ã«å«ã¾ãã¦ãã¾ã(gopkg.in/square/go-jose.v2@v2.2.2)。SPDX å½¢å¼ã§ã¯ãã¼ã¸ã§ã³çªå·ãå¥ã®ãã£ã¼ã«ãã«æ ¼ç´ããã¦ãããã、ãã®æ¥å°¾è¾ãåãé¤ããªãã¨、ç
§åããããã¨ãã§ãã¾ããã§ãã。 ãã® bom ãã¼ã«ã§ä½æãã SBOM ã§ã¯、ã¨ã³ã·ã¹ãã ãç¹å®ã§ãã¾ãã。ã¨ã³ã·ã¹ãã ããªãã¨、ã©ã®ã©ã¤ãã©ãªãããã±ã¼ã¸ãå½±é¿ãåãããã確å®ã«èªåå¤å®ãããã¨ã¯ã§ãã¾ãã。ã¨ã³ã·ã¹ãã ã«ãã£ã¦å½±é¿ã®æç¡ãç°ãªãå ´å、èå¼±æ§ã¹ãã£ãã誤å¤å®ãå¼ãèµ·ããå¯è½æ§ãããã¾ã。SBOM ã§ã©ã¤ãã©ãªãããã±ã¼ã¸ã®ãã¼ã¸ã§ã³ãåºå¥ããã¦ããã°、å©ä¾¿æ§ãããã«é«ã¾ãã¾ã。 ãã ã、ãããã¯æ¯è¼çå°ããªãã¼ãã«ã§、æåã§å¤å°ã®èª¿æ´ãããã ãã§、ãã¾ããã¼ã«ãå®è¡ã§ãã¾ãã。ä»å¾、ãã®ããã»ã¹ãç°¡åã«å®è¡ã§ããããã«、æ¬¡ã®ææ¡ã«ãã SBOM çæãã¼ã«ãæ¹åãããã¨èãã¦ãã¾ã。
SBOM ãã¼ã«ã®ä½æè
ã¯、ã½ããã¦ã§ã¢ã«å«ã¾ãããã¹ã¦ã®ããã±ã¼ã¸ã«ã¤ãã¦、Purl ãªã©ã®èå¥ã¹ãã¼ã ã«ããåç
§ã追å ãã¹ãã§ã。ãã®ç¨®ã®èå¥ã¹ãã¼ã ãããã°、ã¨ã³ã·ã¹ãã ãç¹å®ã§ããã¨ã¨ãã«、åè¿°ã®æ¥å°¾è¾ã®ãããªããã±ã¼ã¸è¨è¿°åã®å°ããªæºãã«å¯¾ããã¹ãã¼ã ã®æè»æ§ãåä¸ããã®ã§、ããã±ã¼ã¸ã®èå¥ã容æã«ãªãã¾ã。SPDX ã§ã¯ããããµãã¼ãããããã«、Purl ã®å¤é¨åç
§ ããã®ä»ã®ããã±ã¼ã¸èå¥ã¹ãã¼ãã®å¤é¨åç
§ã使ç¨ãã¦ãã¾ã。 SBOM ã®æªæ¥ SBOM ã®å½åã®ç®çã§ãã「ã½ããã¦ã§ã¢ã®èå¼±æ§ãªã¹ã¯ç®¡çãæ¯æ´ãã」ãå®ç¾ããã¤ã¤ãããã¨ã¯æããã§ã。ä»åã®ä¾ã§ã¯ OSV ãã¼ã¿ãã¼ã¹ãç
§ä¼ãã¾ããã、è¿ããã¡ã«、ä»ã®èå¼±æ§ãã¼ã¿ãã¼ã¹ã« SBOM ãã¼ã¿ããããã³ã°ããã、
VEX ãªã©ã®æ°ããæ¨æºã使ã£ãããããã¨ãã§ããããã«ãªãã§ããã。VEX ã§ã¯、ã½ããã¦ã§ã¢ã®èå¼±æ§ã軽æ¸ããã¦ãããã©ããã«ã¤ãã¦ã®è¿½å æ
å ±ãæä¾ããã¾ã。
SBOM ã®æ¡ç¨ãåºãã、ãã¼ã«ã®æ¹åãç¶ãã°、ããé ããªããã¡ã«、ãã¹ã¦ã®ã½ããã¦ã§ã¢ã§ SBOM ã®ãªã¯ã¨ã¹ãããã¦ã³ãã¼ããã§ããããã«ãªãã§ããã。ããã«、å©ç¨ããã½ããã¦ã§ã¢ã®èå¼±æ§ãææ¡ã§ããããã«ãªãããããã¾ãã。ä»åã®ä¾ãéãã¦、SBOM ã¨èå¼±æ§ãã¼ã¿ãã¼ã¹ãçµã³ã¤ããããã§ã®åé¡ãè§£æ¶ãããã¨ãã«、SBOM ã§ä½ãå®ç¾ã§ããããå£éè¦ããã¨ãã§ãã¾ãã。ãããã、使ãã½ããã¦ã§ã¢ã®ãªã¹ã¯ã«é¢ããä¸å®ã軽æ¸ãããæ°ããªæ¥å¸¸ã§ã。
spdx-to-osv ãã¼ã«ã®ä½æè
ã§、ãã®ããã°æç¨¿ã«è²¢ç®ããã ãã Source Auditor 社㮠Gary O'Neall æ°ã«æ·±ãæè¬ãããã¾ã。
Posted by Eiji Kitamura - Developer Relations Team