자주 묻는 질문
이 페이지는 새로 도입하는 사용자가 가장 많이 묻는 질문에 답하고, 각 항목의 전체 내용을 다루는 페이지로 연결합니다. 상세 가이드를 대신하는 문서가 아니라 안내 지도이므로, 각 답변 아래의 링크를 따라가세요.
시작하기
TRUSCA는 무엇을 하나요?
프로젝트에서 오픈소스 컴포넌트를 스캔하고, 라이선스를 분류하고, 알려진 취약점(CVE)을 매칭하며, 금지 라이선스나 Critical 취약점이 있으면 CI 빌드를 실패시킬 수 있습니다. 자체 호스팅하는 소프트웨어 구성 분석(SCA) 포털입니다. 소개를 참고하세요.
어떻게 설치하나요?
지원하는 방식은 단일 호스트에서의 Docker Compose이며, Kubernetes용 Helm 차트도 제공합니다. 설치 → Docker Compose와 설치 → Helm을 참고하세요.
가장 빠르게 동작을 확인하는 방법은?
Quickstart를 따라가면 스택을 띄우고 프로젝트를 만들어 첫 스캔까지 처음부터 끝까지 실행합니다.
어떤 종류의 분석을 실행할 수 있나요?
네 가지입니다. 소스 SBOM 스캔, 컨테이너 이미지 스캔, 빌드 게이트, 그리고 reachability 신호(현재 Go 모듈 한정, govulncheck 사용)입니다. 분석 유형 레퍼런스가 각각이 무엇을 입력받고 산출하는지 한 매트릭스로 정리합니다.
스캔
프로젝트를 어떻게 스캔하나요?
프로젝트를 등록한 뒤 소스 스캔(Git URL 또는 업로드한 아카이브)이나 컨테이너 스캔(이미지 참조)을 실행합니다. 스캔을 참고하세요.
어떤 언어와 생태계를 지원하나요?
컴포넌트 탐지는 cdxgen을 사용하며 30개 이상의 언어·빌드 시스템을 다룹니다. 라이선스 보강은 여러 레지스트리(PyPI, Maven, crates.io, Go, RubyGems, NuGet)에서 declared 라이선스를 추가로 해석합니다. 컴포넌트와 라이선스를 참고하세요.
스캔은 끝났는데 취약점이 하나도 없습니다 — 결함인가요?
대개는 스캔이 실행될 때 Trivy 데이터베이스 다운로드가 아직 끝나지 않은 경우입니다. 데이터베이스가 도착하면 finding이 자동으로 나타나며(재매칭 beat이 기존 SBOM을 다시 스캔), 재스캔은 필요 없습니다. 관리자 → 취약점 데이터와 온콜 런북 시나리오 1을 참고하세요.
스캔은 얼마나 걸리나요?
소스 스캔은 cdxgen 순회와 scancode가, 컨테이너 스캔은 이미지 풀 시간이 대부분을 차지합니다. Trivy 매칭 단계 자체는 1초 미만입니다. 스캔 → 평균 소요 시간을 참고하세요.
얼마나 자주 스캔해야 하나요?
소스가 바뀔 때(CI를 통해 매 PR/push마다) 스캔하고, 바뀌지 않은 코드의 새 CVE는 재매칭 beat에 맡기세요. 모범 사례 → 스캔 빈도를 참고하세요.
에어갭·오프라인
TRUSCA를 완전히 오프라인·에어갭으로 운영할 수 있나요?
가능합니다. 취약점 매칭은 Trivy의 번들 데이터베이스를 사용하며, 이를 내부에 미러링할 수 있습니다(TRIVY_DB_REPOSITORY). 네트워크에 접근하는 기능(핑거프린트 기반 스니펫 매칭, 라이선스 보강 조회)은 게이트로 제어하며 끌 수 있습니다. 관리자 → 취약점 데이터와 환경 변수를 참고하세요.
스캔 중에 네트워크 밖으로 나가는 데이터가 있나요?
기본적으로 스캔 데이터는 네트워크 밖으로 나가지 않습니다. 라이선스 보강은 공개 레지스트리에서 declared 라이선스를 가져올 수 있으며, 에어갭 배포에서는 LICENSE_FETCH_ENABLED=false로 끌 수 있습니다. 컴포넌트와 라이선스와 환경 변수를 참고하세요.
에어갭 설치에서 Trivy 데이터베이스를 어떻게 최신으로 유지하나요?
TRIVY_DB_REPOSITORY를 내부 미러로 지정하고 자체 일정에 따라 갱신하면, 워커가 갱신 후 기존 SBOM을 다시 매칭합니다. 관리자 → 취약점 데이터와 모범 사례 → 업그레이드 주기를 참고하세요.
라이선스와 정책
라 이선스는 어떻게 분류되나요?
세 tier로 나뉩니다 — 금지(빌드 차단), 조건부(검토·승인 필요), 허용입니다. 라이선스 정책과 모범 사례 → 정책 설계를 참고하세요.
허용 라이선스 목록을 바꿀 수 있나요?
가능합니다. 팀 단위로 런타임에 라이선스 tier를 올리거나 내릴 수 있으며 재배포가 필요 없습니다. 라이선스 정책 → 동적 게이트 평가를 참고하세요.
컴포넌트 승인 워크플로우는 무엇을 위한 것인가요?
조건부 라이선스를 가진 컴포넌트를 처리하기 위한 것입니다(Pending → Under Review → Approved / Rejected). 승인 판정은 감사를 위해 기록되지만, 그 자체로 빌드를 차단하지는 않습니다. 승인과 Triage를 참고하세요.
라이선스 의무사항(예: NOTICE 요건)은 어디에서 오나요?
SPDX 식별자로 키가 붙은 내장 카탈로그에서 오며, 프로젝트별로 표시되고 NOTICE 파일로 내려받을 수 있습니다. 의무사항 카탈로그를 참고하세요.
빌드 게이트와 CI
무엇이 빌드를 실패시키나요?
정확히 두 조건입니다. 열려 있는 Critical CVE, 또는 라이선스가 forbidden tier로 해석되는 컴포넌트입니다. Triage → 각 결정이 빌드 게이트에 닿는 지점을 참고하세요.