์คํ์์ค๋ฅผ ์ด์ฉํ docker(container)์ทจ์ฝ์ ์ค์บ(trivy)
ํด๋น ๋ธ๋ก๊ทธ๋ ํดํน ๋ฐ ๋ณด์ ๋ธ๋ก๊ทธ๋ก ๊ณต๋ถ ๋ฐ ์ฐ๊ตฌ์ฉ์ผ๋ก ์์ฑ๋์ด์ง๊ณ ์์ต๋๋ค. ์๋์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํดํน ์๋ ๋ฐ ์ค์ ๊ณต๊ฒฉ์ ์๋ํ์ฌ ์ผ์ด๋๋ ๋ชจ๋ ์ฑ ์์ ๋ณธ์ธ(๋ฐ๋ผํ์)์๊ฒ ์์์ ์๋ ค๋๋ฆฌ๋ฉฐ, ๊ธ์ด์ด๋ ์๋ฌด๋ฐ ์ฑ ์์ ์ง์ง ์์ต๋๋ค. ๊ผญ ๊ณต๋ถ ๋ฐ ์ฐ๊ตฌ์ฉ์ผ๋ก๋ง ์ฌ์ฉํ์ฌ ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
docker๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋ง์ ํธ๋ฆฌํจ์ด ์กด์ฌํ๋ค. ๊ฐ๋์ https://hub.docker.com/ ์์ ์ ๊ณต๋๋ ์ด๋ฏธ์ง๋ค์ด ์์ ํ๊ฐ? ๋ผ๋ ์๋ฌธ์ ๊ฐ์ง์ ์๋ค. ๋ค์ํ ์ทจ์ฝ์ ์ค์บ๋๋ค์ด ์์ง๋ง ์ค๋์ trivy๋ผ๋ ์ทจ์ฝ์ ์ค์บ๋๋ฅผ ์๊ฐ ๋ฐ ์ฌ์ฉ๋ฒ์ ์์ฑํ ์์ ์ด๋ค.
trivy๋ aquasecurity์์ ์ ๊ณตํ๋ ๋๊ตฌ๋ก ์ค์น๋ ์ฝ๊ณ ์ฌ์ฉํ๊ธฐ๋ ์ถ๋ค.
๊ณต์ github๋ https://github.com/aquasecurity/trivy์ฌ๊ธฐ์ด๋ค.
GitHub - aquasecurity/trivy: Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories
Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more - GitHub - aquasecurity/trivy: Find vulnerabilities, misconfigurations, secrets,...
github.com
์ด์ ์ค์นํ๋ ๋ฒ์ ๋ณด์ ์ฌ์ค ๋ช ๋ น์ด ํ์ค์ด๋ฉด ์ค์น๊ฐ ๋ค๋๊ธฐ ๋๋ฌธ์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ด๋ ๊ฒ๋ ์๋ค.
apt-get install trivy
yum install trivy
pacman -S trivy
brew install aquasecurity/trivy/trivy
sudo port install trivy
docker run aquasec/trivy
์ด๋ ๊ฒ OS๋ณ๋ก ์ด์ ์ค์นํ๋ ๋ช ๋ น์ด๋ค์ด๋ค.
ํด๋น trivy์ ๊ฒฝ์ฐ ์ง์๋๋ ๊ฒ๋ค์ ์๋์ ๊ฐ๋ค.
๊ณต์ github์ ๋ฐ๋ฅด๋ฉด
Targets:
- Container Image
- Filesystem
- Git repository (remote)
- Kubernetes cluster or resource
Scanners:
- OS packages and software dependencies in use (SBOM)
- Known vulnerabilities (CVEs)
- IaC misconfigurations
- Sensitive information and secrets
์ด๋ฉฐ, ์ฌ์ฉ๋ฒ์ trivy -h ๋ฅผ ํตํ์ฌ ์์์์ง๋ง ๊ฐ๋จํ ์ฌ์ฉ๋ฒ๋ค์ ์์๋ณด๋ฉด
์ด๋ฏธ์ง์ ๋ํ CVE ์ทจ์ฝ์ ์ค์บ์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
trivy image {image}
ex) hub.docker.com์์ ubuntu์ด๋ฏธ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ ํ์ธํ๊ณ ์ถ์ ๊ฒฝ์ฐ
trivy image ubuntu
๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ด ๋์ค๊ฒ ๋๋ค.
total ์ทจ์ฝ์ ๊ณผ low medium high critical ์ด๋ ๊ฒ ๋๋์ด์ ๋ํ๋ด์ด์ค๋ค.
๋ง์ฝ high, critical๋ง ๋ณด๊ณ ์ถ์ผ๋ฉด ์๋์ ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ํํฐ๊ฐ ๊ฐ๋ฅํ๋ค.
trivy image --severity HIGH,CRITICAL ubuntu
repo์์ ๊ฐ์ ธ์จ ์ด๋ฏธ์ง๊ฐ ์๋ docker์ ์๋ ์ด๋ฏธ์ง๋ฅผ ์ ๊ฒํ๊ณ ์ถ์ ๊ฒฝ์ฐ์ ์ด๋ ๊ฒํ๋ฉด ๋๋ค.
trivy images {์ด๋ฏธ์ง ID}
๊ฒฐ๊ณผ๋ ๋์ผํ๊ฒ ๋์ค๋ ๊ฒ์ ์์ ์๋ค.
์ ๊ทธ๋ผ ํํธ์ผ๋ก ์๊ฐํด๋ณด๋ฉด dockerํ๊ฒฝ์ ์ ์ํด์์ ๊ฒฝ์ฐ์?
์๋ฅผ ๋ค์ด cloud ํ๊ฒฝ์ ์ค์นํด์ ์ ์์ ํด์ ์ปจํ ์ด๋์ ๋ค์ด๊ฐ ์๋ ์ํฉ์์ ์ด๋ป๊ฒ ํด์ผํ ๊น?
๊ทธ๋๋ ํด๋น ํ๊ฒฝ์ trivy๊ฐ ์ค์น๋์ด์์ ๊ฒฝ์ฐ
์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด๋๋ค.
cd /
//root ๊ฒฝ๋ก๋ก ์ด๋
trivy fs .
//ํ์ฌ๊ฒฝ๋ก๋ถํฐ ์ทจ์ฝ์ ๊ฒ์
//fs(filesystem)๋ช
๋ น์ด
๊ทธ๋ผ ๊ฒฐ๊ณผ๋ ๋์ผํ๊ฒ ๋์ค๋ ๊ฒ์ ํ์ธ ํ ์์๋ค.