trivy — 컨테이너 취약점 스캐너
Linux / 사용자 및 보안 관리 / trivy.html
💬 "trivy 명령어"
trivy는 컨테이너 취약점 스캐너 컨테이너 이미지·파일시스템·Git 저장소의 취약점(CVE)을 스캔합니다.
컨테이너 이미지 전체 계층을 스캔합니다. OS 패키지와 애플리케이션 의존성을 동시에 스캔합니다.
- 개념: 컨테이너 이미지 전체 계층을 스캔합니다.
- 주요 기능: OS 패키지와 애플리케이션 의존성을 동시에 스캔합니다.
- 장점: IaC(Terraform·Kubernetes YAML) misconfiguration를 탐지합니다.
- 활용: Git 저장소 스캔 및 PR 주석 기능이 있습니다.
설치 및 다운로드
trivy는 패키지 매니저 또는 공식 스크립트로 설치합니다.
| 환경 | 명령 |
|---|---|
| 공식 스크립트 | curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh |
| Ubuntu / Debian | sudo apt install trivy |
| Docker | docker run aquasec/trivy image nginx |
| macOS (brew) | brew install trivy |
| 확인 | trivy --version |
설치 확인은 trivy --version으로 합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
trivy image <img> | 컨테이너 이미지를 스캔합니다 |
trivy fs <dir> | 파일시스템을 스캔합니다 |
trivy config <dir> | IaC misconfiguration를 스캔합니다 |
trivy repo <url> | Git 저장소를 스캔합니다 |
--severity HIGH,CRITICAL | 심각도 필터 |
필수 명령어 조합 3가지
trivy image --severity HIGH,CRITICAL nginx:latest— 핵심 취약점만trivy fs --exit-code 1 .— CI에서 취약점 발견 시 실패trivy config k8s/— Kubernetes YAML misconfiguration 확인
💬 "실제 서버에서 trivy를 사용하는 예시를 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 설치 확인
설치 여부를 확인합니다.
trivy --version || curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh
2단계 · 이미지 스캔
nginx 이미지를 스캔합니다.
trivy image --severity HIGH,CRITICAL nginx:latest
3단계 · CI 설정
취약점 발견 시 빌드를 중단합니다.
trivy fs --exit-code 1 --severity CRITICAL .
실제 실행 화면
trivy로 nginx 이미지를 스캔한 결과입니다.

실제 운영 중인 서버
실무에서는 이렇게 씁니다
1. 이미지 취약점 스캔
상황 — 배포 전에 CRITICAL 취약점을 확인합니다.
trivy image --severity CRITICAL nginx:latest
결과 — 5개 CRITICAL, 9개 HIGH가 발견됩니다.
포인트 — 배포 파이프라인의 보안 게이트를 만듭니다.
2. CI 게이트 설정
상황 — CI에서 취약점이 있으면 빌드를 중단합니다.
trivy fs --exit-code 1 --severity CRITICAL .
결과 — CRITICAL 발견 시 exit code 1을 반환합니다.
포인트 — GitLab CI에 trivy job으로 추가합니다.
실제 실행 화면
trivy fs로 디렉터리를 스캔한 결과입니다.

실제 운영 중인 서버
주의할 점
- 트리 DB(취약점 DB)는 수시로 갱신됩니다. trivy image --download-db-only로 수동 갱신 가능합니다.
- 오탐(false positive)이 있을 수 있습니다. 배포 차단 전에 severity를 조정합니다.
- 사내 프록시 환경에서는 DB 다운로드가 막힐 수 있습니다.