SCA์ Trivy๋ก ์ดํด๋ณด๋ ์คํ์์ค ๋ณด์ ์ทจ์ฝ์ ๊ด๋ฆฌ
SCA์ Trivy๋ก ์ดํด๋ณด๋ ์คํ์์ค ๋ณด์ ์ทจ์ฝ์ ๊ด๋ฆฌ
Feb 9, 2025
๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ๊ธ์์๋ SCA๊ฐ ๋ฌด์์ธ์ง, ์ ํ์ํ์ง, ๊ทธ๋ฆฌ๊ณ ๋ํ์ ์ธ SCA ๋๊ตฌ์ธ Trivy๋ฅผ ํ์ฉํด ์คํ์์ค ๋ณด์์ ์ด๋ป๊ฒ ์ ๊ฒํ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
SCA๋ ๋ฌด์์ธ๊ฐ
SCA(Software Composition Analysis)๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ์ํ์ฌ ์ฌ์ฉ๋ ์คํ์์ค ์ํํธ์จ์ด๋ฅผ ๊ฐ์งํ๊ณ ๋ณด์ ๊ฒฐํจ์ด ์๋์ง ๋๋ ๋ผ์ด์ ์ค ์๊ตฌ ์ฌํญ์ด ์๋์ง ๊ฐ์งํ๊ธฐ ์ํ ์ ๋ณด ๊ธฐ์ ๋ฐ ์ํํธ์จ์ด ์์ง๋์ด๋ง ๋ถ์ผ์ ๊ดํ์ ๋๋ค. - ์ํคํผ๋์
์ SCA๊ฐ ํ์ํ๊ฐ?
๊ทธ๋ ๋ค๋ฉด ์ SCA๊ฐ ํ์ํ ๊น์?
Synopsys์ 2024 OSSRA ๋ณด๊ณ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์๋ณด๊ฒ ์ต๋๋ค.
1. ์คํ์์ค ์ฌ์ฉ ์ฆ๊ฐ
ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์คํ์์ค์ ๋ํ ์์กด๋๊ฐ ๊ธ๊ฒฉํ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค.
- ๋ถ์๋ ์ฝ๋๋ฒ ์ด์ค์ 96%๊ฐ ์คํ์์ค ํฌํจ
- ์ ์ฒด ์ฝ๋์ 77%๊ฐ ์คํ์์ค์์ ์ ๋
- ํ๊ท ์ ์ผ๋ก ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ 500๊ฐ ์ด์์ ์คํ์์ค ์ปดํฌ๋ํธ๊ฐ ์ฌ์ฉ
2. ์คํ์์ค์ ๋ณด์๊ณผ ๋ผ์ด์ ์ค
ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ์์ค ์ฌ์ฉ ์ฆ๊ฐ๋ก ์ธํด ๋ ๊ฐ์ง ์ฃผ์ ์ํ์ด ์กด์ฌํฉ๋๋ค.
๋ณด์ ์ํ:
- 84%์ ์ฝ๋๋ฒ ์ด์ค์์ ์ต์ 1๊ฐ ์ด์์ ์๋ ค์ง ์ทจ์ฝ์ ๋ฐ๊ฒฌ
- 91%์ ์ฝ๋๋ฒ ์ด์ค๊ฐ 2๋ ์ด์ ์ ๋ฐ์ดํธ๋์ง ์์ ์ํ
- ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์ด๋ ์ฆ๊ฐ์ ์ธ ๋์์ด ์ด๋ ค์
๋ผ์ด์ ์ค ์ํ:
- GPL, MIT, Apache ๋ฑ ๋ค์ํ ๋ผ์ด์ ์ค ์กด์ฌ
- ๋ผ์ด์ ์ค ์กฐ๊ฑด ์๋ฐ ์ ๋ฒ์ ๋ถ์ ๊ฐ๋ฅ์ฑ
- ์์ฉ ์ ํ์ ๋ถ์ ํฉํ ๋ผ์ด์ ์ค ์ฌ์ฉ ์ํ
์ด๋ฌํ ์ํ๋ค์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด์๋ ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง๊ณผ ์ ๋ฐ์ดํธ๊ฐ ํ์์ ์ด๊ณ , SCA๊ฐ ํ์ํ ์ด์ ์ ๋๋ค.
SCA๋ ์ด๋ป๊ฒ ๋ถ์ํ ๊น?
Trivy๋ ์คํ์์ค ๋ณด์ ์ทจ์ฝ์ ์ค์บ๋์ ๋๋ค. ํ๋ก์ ํธ์์ ์ฌ์ฉ ์ค์ธ ์คํ์์ค ์ปดํฌ๋ํธ์ ๋ณด์ ์ทจ์ฝ์ ์ ๋ถ์ํ๊ณ ๋ผ์ด์ ์ค๋ฅผ ๊ฒ์ฌํฉ๋๋ค.
Codacy ๋ธ๋ก๊ทธ ์์ ์ค๋ช ํ๋ SCA๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ ํจ๊ป Trivy์ ๋์ ๋ฐฉ์์ ์ดํดํ๋ฉด SCA ๊ด๋ฆฌ ์๋น์ค๋ค์ด ์ด๋ป๊ฒ ์คํ์์ค์ ๋ณด์ ์ทจ์ฝ์ ์ ๋ถ์ํ๋์ง ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Codacy๋ SCA ๋ถ์์ Trivy๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Trivy๋ OS, ์ธ์ด๋ณ ํจํค์ง๋ฅผ ๋ถ์ํ๋๋ฐ node.js์ package.json, yarn.lock, pnpm-lock.json๋ ์ง์ํ๊ธฐ ๋๋ฌธ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ํจํค์ง ๋ณด์์๋ ์ ์ฉํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ๋ถ์๋ ๊ฒฐ๊ณผ๋ฌผ(SBOM)์ ๊ฐ์ง๊ณ Trivy๊ฐ ์์ฒด์ ์ผ๋ก ๊ตฌ์ฑํ ๋ณด์ DB์ ๋ฐ์ดํฐ์ ๋น๊ต ํ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑํฉ๋๋ค.
trivy-db
trivy-db์ ์์ด๋ ์ทจ์ฝ์ ์ ๋ณด๋ Github Security Advisory, GoSec, RubySec, Red Hat, Debian ๋ฑ ์ฌ๋ฌ ์ถ์ฒ์์ ์์ง๋ CVE ์ ๋ณด์ ๋๋ค. trivy-db๋ฅผ ๋ค์ด๋ฐ์ ๋ก์ปฌ์์ ๋ด์ฉ์ ํ์ธํด ๋ณผ ์ ์์ต๋๋ค.
trivy-db๋ boltadb ํํ๋ก ๋ณ๋์ ํ๋ก๊ทธ๋จ ์ค์น ํ ๋ด์ฉ์ ์กฐํํ ์ ์์ต๋๋ค.

๋ณด์ ์ทจ์ฝ์ ๋ถ๋ฅ ์ฒด๊ณ ์ดํดํ๊ธฐ
trivy-db์ ์์ด๋ ์ ๋ณด๋ฅผ ํ๋ ํ์ธํด๋ณผ๊น์? npm์ผ๋ก ๊ฐ์๋ฉด ์ฌ๋ฌ ๋ฐ์ดํฐ๊ฐ ์์ฌ์๊ณ , ์ด ์ค์ @babel/traverse๋ฅผ ํ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค.

๋ด๊ฒจ์๋ ์ ๋ณด์ค์ Key๋ฅผ ๋ณด์๋ฉด CVE-2023-45133์ด๋ผ๋ ์ ๋ณด๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.
๊ทธ ์๋ ๊ฐ ์ค์ VendorIDs๋ผ๋ ํค๊ฐ ๋ณด์ด์๋์? ์ด ๊ฐ์ GHSA-5rrq-pxf6-6jx5 ์ ๋๋ค. ์ด๋ ๋ณด์ ์ฝ๋ ํ๊ทธ์ด๊ณ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์กด์ฌํฉ๋๋ค.
๋ณด์ ํ๊ทธ ์์์ด ๊ฐ๊ฐ ๋ค๋ฅด์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์๋ถ๋ถ์๋ ํด๋น ๋ณด์ ์๋ณ์๋ฅผ ๋ฐ๊ธํ ๊ธฐ๊ด์ ์ ๋์ฌ ์๋ณ์๊ฐ ํฌํจ๋ฉ๋๋ค.
๊ฐ๋ตํ ์๋ 3๊ฐ๋ง ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
- CVE (Common Vulnerabilities and Exposures): ๋ฏธ๊ตญ์ MITRE Corporation์์ ๊ด๋ฆฌํจ
- MITRE๊ฐ ๋ง๋ ํต์ผ๋ ํ์ค ๊ท์ฝ
- ์ธ๋ถ์ ๋ณด๋ NVD, Github ๋ฑ๊ณผ ๊ด๋ จ๋ ๋ค์ํ ํ์ ์ฒด์์ ์์ง
- What is a CVE?
- GHSA (GitHub Security Advisory): Github์์ ๊ด๋ฆฌ, Github์์ ํธ์คํ ๋๋ ์คํ์์ค์ ๋ถ๋ ํ๊ทธ
- NSWG: Node.js ๋ณด์ ์ปค๋ฎค๋ํฐ
์ด๋ ๊ฒ ๊ฐ ๋ณด์ ์ทจ์ฝ์ ์ ๊ด๋ฆฌํ๋ ํ๊ทธ๊ฐ ์กด์ฌํ๊ณ ์ด๋ฐ ๋ฐ์ดํฐ๊ฐ ์์ฌ์๋๊ฒ์ด trivy-db์ ๋๋ค.
dependabot
trivy-db์์ ์๊น ์ดํด๋ณธ ์ค๋ฅ ์ฝ๋๋ค์ Github Adivisory์์ ์์งํ๋ฏ๋ก dependabot๊ณผ ๋์ผํ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. ๊ฐ๋ตํ๊ฒ ํ๋๋ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. merge-deep์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Prototype pollution in Merge-deep ์ด๋ผ๋ dependabot ์๋ฆผ์ด ์์ต๋๋ค.

trivy-db์๋ ๊ฐ์ ์ ๋ณด๊ฐ ์๋์ง ํ๋ฒ ์ฐพ์๋ณผ๊น์?

๋์ผํ CVE, GHSA ์์ด๋๊ฐ ํ์ธ๋๋ค์.
๊ทธ๋ฆฌ๊ณ github dependabot ์ด๋ฏธ์ง ์ค๋ฅธ์ชฝ ์ฌ์ด๋๋ฐ์ Weaknesses๋ฅผ ํ์ธํด๋ณด์๋ฉด CWE-1321๋ผ๋ ์ฝ๋๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.
CWE
CWECommon Weakness Enumeration๋ ์ํํธ์จ์ด ๋ณด์ ์ทจ์ฝ์ ์ ๋ชฉ๋ก์ ๋๋ค. MITRE์์ ๊ด๋ฆฌํ๋ฉฐ ์ํํธ์จ์ด์ ํ๋์จ์ด์ ๋ณด์ ์ทจ์ฝ์ ์ ๋ํ ์ค๋ช ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์๋ฉด, CWE-1321(JavaSCript Prototype Pollution)์ ๊ฐ์ด ์ทจ์ฝ์ ์ ํ์ ์ ์ํ๊ณ ์ด ์ทจ์ฝ์ ์ ํ์ ๊ฐ์ง๊ณ ์๋ ํ๋์จ์ด, ์ํํธ์จ์ด๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ CVE-2021-26707์ด๋ผ๋ ๋ณด์ ์ฝ๋๋ฅผ ๋ถ์ฌํฉ๋๋ค.
๋ง์น๋ฉฐ
์ด๋ฒ ๊ธ์์๋ SCA(Software Composition Analysis)๊ฐ ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ trivy-db๋ฅผ ํตํด SCA ๋๊ตฌ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง, ๋ํ ๋ณด์ ํ๊ทธ(CVE, GHSA, CWE ๋ฑ)์ ๋ํด ์ดํด๋ดค์ต๋๋ค.
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ ์ฃผ๋ก npm ํจํค์ง๋ค์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ Dependabot, Trivy, Snyk ๋ฑ์ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ์๋์ผ๋ก ๋ณด์ ์ทจ์ฝ์ ์ ๊ฐ์งํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
Github์์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ๋ ์๋น์ค๋ผ๋ฉด Github์ Dependabot์ ํ์ฉํ ์ ๋ฐ์ดํธ๋ง์ผ๋ก๋ ๊ธฐ๋ณธ์ ์ธ SCA ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค.
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!