사내 보안 점검을 자동화하려고 오픈소스 취약점 스캐너 Trivy를 도입했습니다. 그런데 문제는 보안상 클러스터가 외부 인터넷에 차단(air-gapped) 되어 있다는 점입니다. Trivy를 처음 실행하면 취약점 DB 업데이트를 시도하던데, 인터넷 연결 없이 초기화하는 방법이 있을까요? 미리 받은 DB 파일을 특정 경로에 넣어두면 동작할지 궁금합니다.
Trivy를 인터넷 없이 사용하려면, DB 캐시 파일을 올바른 위치에 수동으로 넣어주는 방법이 있습니다. Trivy가 기본적으로 참고하는 경로는 /root/.cache/trivy/db
입니다. 실무 사례로, 한 사용자가 처음엔 DB 파일을 /root/.cache/trivy
경로에 넣었다가 제대로 동작하지 않아 애를 먹었는데, 알고 보니 한 단계 더 들어간 db
하위 폴더에 넣어야 했던 것이었습니다. 경로를 수정하니 Trivy가 인터넷 없이도 업데이트된 DB를 인식하고 정상 작동했다고 합니다.
만약 수동으로 경로를 지정하고 싶다면 Trivy 실행 시 --cache-dir
옵션으로 캐시 경로를 지정할 수도 있지만, 기본 경로 구조(.../trivy/db
)를 맞춰주는 것이 핵심입니다. 요약하면, Trivy 공식 DB 파일들을 미리 받아서 /root/.cache/trivy/db
폴더에 넣어두면 에어갭 환경에서도 첫 실행에 실패하지 않고 바로 스캔을 수행할 수 있습니다.
[CloudBro AI Bot Response]
에어갭(인터넷 차단) 환경에서 Trivy를 사용하는 방법에 대해 구체적으로 안내드리겠습니다.
1. Trivy DB 캐시 파일 구조 이해
- Trivy는 취약점 스캐닝 시 취약점 DB를 참조합니다.
-
- 기본적으로 DB 캐시 파일은 아래 경로에 위치해야 합니다.
-
- /root/.cache/trivy/db
-
-
- 단순히
/root/.cache/trivy
에 DB 파일을 넣으면 동작하지 않고, 반드시db
하위 폴더까지 포함한 경로를 맞춰야 합니다.
- 단순히
2. 에어갭 환경에서 Trivy DB 준비 및 적용 단계
1) 인터넷 연결된 환경에서 DB 파일 다운로드
trivy db update
- 위 명령어를 실행하면 최신 DB가
/root/.cache/trivy/db
경로에 다운로드됩니다. -
- 또는, GitHub 공식 Trivy DB GitHub 리포지토리에서 수동으로 DB 파일을 받을 수도 있습니다.
2) DB 캐시 파일 복사
- 다운로드된
/root/.cache/trivy/db
폴더 전체를 에어갭 환경의 동일 경로에 복사합니다. -
- 예) USB 저장장치나 내부 네트워크를 통해 복사
3) Trivy 실행 시 옵션 활용 (선택 사항)
- 만약 기본 경로가 아닌 다른 경로에 DB를 두고 싶다면,
--cache-dir
옵션을 사용하여 경로를 지정할 수 있습니다. -
- trivy --cache-dir /your/custom/path image your-image:tag
-
- 이때도
/your/custom/path/db
구조가 유지되어야 합니다.
3. 실무 팁 및 트러블슈팅
- 실패 원인:
- DB 파일을
/root/.cache/trivy
에만 넣고db
폴더를 누락하는 경우 - → Trivy가 DB 파일을 찾지 못해 업데이트 실패 및 스캔 오류 발생
- 해결법:
- 반드시
/root/.cache/trivy/db
경로에 DB 파일을 넣고 권한도 확인 -
- ls -l /root/.cache/trivy/db
-
- 버전 호환성:
- Trivy 버전과 DB 버전이 맞지 않는 경우 스캔 오류가 발생할 수 있으니, 동일 버전 환경에서 DB를 준비하는 것이 좋습니다.
4. 추가 학습 및 참고 자료
- Trivy 공식 문서:
- https://aquasecurity.github.io/trivy/v0.43.0/usage/offline-scan/
- (오프라인 스캔 관련 섹션 참고)
- Trivy GitHub 리포지토리:
- GitHub - aquasecurity/trivy: Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more
- Trivy DB GitHub 리포지토리:
- GitHub - aquasecurity/trivy-db
- CNCF 관련 보안 프로젝트 참고: Trivy는 CNCF 프로젝트는 아니지만, 클라우드 네이티브 보안 도구로 널리 사용됩니다.
필요 시, DB 파일 다운로드 자동화 스크립트 작성이나 CI/CD 파이프라인 내 에어갭 환경 대응 방안도 추가로 안내 가능합니다. 언제든지 문의 주세요!