배포 전 코드와 컨테이너에 숨은 보안 문제를 한 번에 찾아내는 도구
배포 직전 컨테이너 이미지나 코드 저장소에 숨겨진 취약점과 설정 오류를 자동으로 찾아내는 도구입니다. Trivy는 운영체제 패키지, 소프트웨어 의존성, 인프라 코드, 그리고 민감한 정보까지 폭넓게 검사합니다. 개발 환경에서 배포 파이프라인까지, 보안 점검을 하나의 명령어로 처리할 수 있게 됩니다.
검사 대상과 항목
Trivy는 컨테이너 이미지, 파일 시스템, Git 저장소, 가상 머신 이미지, Kubernetes 클러스터를 검사 대상으로 삼습니다. 이 대상들 안에서 OS 패키지 및 소프트웨어 의존성 목록(SBOM), 알려진 취약점(CVE), 인프라 코드(IaC) 문제와 설정 오류, 민감한 정보와 시크릿, 소프트웨어 라이선스를 찾아냅니다. 대부분의 인기 있는 프로그래밍 언어와 운영체제, 플랫폼을 지원합니다.
사용법과 설치
Trivy는 Homebrew, Docker, 바이너리 다운로드 등 다양한 채널로 설치할 수 있습니다. 기본 사용법은 trivy <target> [--scanners <scanner1,scanner2>] <subject> 형식입니다. 예를 들어 trivy image python:3.4-alpine으로 이미지 취약점을, trivy fs --scanners vuln,secret,misconfig myproject/로 파일 시스템의 취약점과 시크릿, 설정 오류를 검사할 수 있습니다. GitHub Actions, Kubernetes operator, VS Code 플러그인 등 여러 플랫폼과 통합되어 있습니다.
Canary 빌드와 주의사항
main 브랜치에 푸시될 때마다 Canary 빌드가 생성됩니다. 이 빌드는 Docker Hub, GitHub, ECR 이미지와 바이너리 형태로 제공되지만, 치명적인 버그가 있을 수 있어 프로덕션 환경에서는 사용을 권장하지 않습니다. 안정적인 사용을 위해 공식 릴리스 버전을 사용하는 것이 좋습니다.
적합한 대상과 확인 사항
DevSecOps 워크플로우를 구축하거나, 컨테이너 및 클라우드 환경의 보안 점검을 자동화하려는 팀에게 적합합니다. 사용 전에는 지원되는 스캐너와 대상의 범위를 확인하고, Canary 빌드가 아닌 안정 버전인지 점검해야 합니다. Trivy는 Aqua Security의 오픈소스 프로젝트이며, 더 많은 기능을 원한다면 상용 제품인 Aqua를 고려할 수 있습니다.