--- title: trivy — 컨테이너 취약점 스캐너 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: 컨테이너 이미지·파일시스템·Git 저장소의 취약점(CVE)을 스캔합니다. tags: 프로그램, 사용자 및 보안 관리, trivy --- **💬 "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 | 컨테이너 이미지를 스캔합니다 | | trivy fs | 파일시스템을 스캔합니다 | | trivy config | IaC misconfiguration를 스캔합니다 | | trivy repo | 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 이미지를 스캔한 결과입니다. ![trivy 명령어 실행 결과](https://games.cursorai.co.kr/assets/trivy-demo.png) 실제 운영 중인 서버 ## 실무에서는 이렇게 씁니다 ### 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로 디렉터리를 스캔한 결과입니다. ![trivy 명령어 실행 결과 2](https://games.cursorai.co.kr/assets/trivy-demo2.png) 실제 운영 중인 서버 ## 주의할 점 - 트리 DB(취약점 DB)는 수시로 갱신됩니다. trivy image --download-db-only로 수동 갱신 가능합니다. - 오탐(false positive)이 있을 수 있습니다. 배포 차단 전에 severity를 조정합니다. - 사내 프록시 환경에서는 DB 다운로드가 막힐 수 있습니다. --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/security/trivy.html