English

trivy — 컨테이너 취약점 스캐너

Linux / 사용자 및 보안 관리 / trivy.html

사용자 및 보안 관리원문등록 2026-10-18T22:00:00+09:00

💬 "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 / Debiansudo apt install trivy
Dockerdocker 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 이미지를 스캔한 결과입니다.

trivy 명령어 실행 결과

실제 운영 중인 서버

실무에서는 이렇게 씁니다

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

실제 운영 중인 서버

주의할 점

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