스캐너 통합
스캐너 통합 (Scanner integrations)
Docker Hardened Images와 함께 사용할 취약점 스캐너와 VEX 지원의 중요성을 알아볼게요.
출처: 문서
본문
Docker Hardened Images(DHI)는 다양한 취약점 스캐너와 함께 동작해요. 그러나 이 이미지의 실제 보안 자세를 반영하는 정확한 결과를 얻으려면 스캐너가 각 이미지에 포함된 VEX(Vulnerability Exploitability eXchange) 증명을 이해해야 해요.
VEX를 지원하는 스캐너 (Scanners with VEX support)
다음 스캐너는 Docker Hardened Images에 포함된 VEX 증명을 읽고 적용할 수 있어요:
| 스캐너 | VEX 적용 |
|---|---|
| Docker Scout | 자동, 구성 불필요 |
| Trivy | VEX Hub(권장) 또는 로컬 VEX 파일 |
| Grype | 로컬 VEX 파일과 함께 --vex 플래그로 |
| Wiz | 자동, 구성 불필요 |
| Mend.io | 자동, 구성 불필요 |
| Black Duck | 자동, 구성 불필요 |
| Aikido | 자동, 구성 불필요 |
| AWS Inspector | 자동, 구성 불필요 |
Docker Scout, Trivy, Grype의 단계별 지침은 Docker Hardened Images 스캔을 참고하세요. Wiz, Mend.io, Black Duck, Aikido, AWS Inspector는 각각의 문서를 참고하세요.
Docker Hardened Images용 스캐너 선택 (Choosing a scanner for Docker Hardened Images)
Docker Hardened Images와 함께 사용할 스캐너를 선택할 때, OpenVEX 같은 공개 표준을 지원하는지가 핵심 차별점이에요.
Docker Hardened Images는 OpenVEX 표준을 따르는 서명된 VEX 증명을 포함해요. OpenVEX는 사이버 보안 지침을 담당하는 미국 정부 기관인 CISA(Cybersecurity and Infrastructure Security Agency)가 정의한 VEX 최소 요구 사항을 충족하는 공개 표준이에요. 이 증명들은 어떤 취약점이 이미지에 적용되지 않는지와 그 이유를 문서화해, 실제 위험에 집중하게 해줘요. VEX가 무엇이고 어떻게 동작하는지 이해하려면 VEX 핵심 개념을 참고하세요.
OpenVEX는 정부 지원을 받는 공개 표준이므로 산업 추진력이 강하고, 어떤 도구든 공급업체별 통합 없이 구현할 수 있어요. 이는 자체 스캔 도구를 가진 제3자 감사자를 데려오거나, 파이프라인에서 여러 보안 도구를 사용하고 싶을 때 중요해요. VEX 덕분에 이 도구들은 모두 이미지에서 직접 같은 취약점 데이터를 읽고 검증할 수 있어요.
VEX 같은 공개 표준이 없으면 공급업체들이 독점 방법으로 이용 가능성(exploitability) 결정을 내려, 주장을 검증하거나 도구 간 결과를 비교하기 어려워요. 이는 보안 도구 체인을 분열시키고 서로 다른 스캔 도구 간에 일관되지 않은 취약점 평가를 만들어요.
VEX 지원 스캐너의 이점 (Benefits of scanners with VEX support)
OpenVEX 같은 공개 표준을 지원하고 Docker Hardened Images의 VEX 증명을 해석할 수 있는 스캐너는 다음 이점을 제공해요:
- 정확한 취약점 수: 특정 이미지에 적용되지 않는 취약점을 자동으로 걸러내, 종종 오탐(false positive)을 극적으로 줄여요.
- 투명성과 감사 가능성: 취약점이 플래그되는 이유를 정확히 검증할 수 있어요. 보안 팀과 규정 준수 담당자가 공급업체의 블랙박스를 믿는 대신 근거를 검토할 수 있어요.
- 스캐너 유연성: VEX 지원 스캐너(Docker Scout, Trivy, Grype 등) 사이를 취약점 컨텍스트를 잃거나 제외 목록을 다시 만들지 않고 전환할 수 있어요.
- 일관된 결과: VEX 지원 스캐너는 같은 데이터를 같은 방식으로 해석해 도구 간 불일치를 제거해요.
- 더 빠른 워크플로우: 보고된 CVE가 실제로 배포에 영향을 주지 않는 이유를 조사하는 대신 실제 위험에 집중할 수 있어요.
VEX 미지원 스캐너 (Scanners without VEX support)
VEX 증명을 읽을 수 없는 스캐너는 Docker Hardened Images에 적용되지 않는 취약점을 보고할 거예요. 이는 운영상 어려움을 만듭니다:
- 수동 필터링 필요: VEX 문이 이미 문서화한 것을 재현하려면 스캐너별 무시 목록을 유지해야 해요.
- 더 높은 오탐률: 실제 위험을 나타내지 않는 취약점이 더 많이 보고될 거예요.
- 증가하는 조사 시간: 보안 팀이 실제 취약점을 처리하는 대신 CVE가 왜 적용되지 않는지 조사하는 데 시간을 써요. Docker Hardened Images에서는 Docker의 보안 전문가가 이 조사를 여러분 대신 관리하며, VEX 문에 추가하기 전에 각 근거를 철저히 검증해요.
- CI/CD 마찰: 이미지에서 악용 불가능한 취약점 때문에 빌드 파이프라인이 실패할 수 있어요.
VEX 기반 취약점 처리 대 독점 접근 (VEX-based vulnerability handling versus proprietary approaches)
Docker Hardened Images는 OpenVEX 공개 표준 기반 VEX 증명으로 취약점 이용 가능성을 문서화해요. OpenVEX는 CISA 같은 정부 기관이 인정하는 공개 표준이에요. 이 공개 표준 접근은 일부 다른 이미지 공급업체가 독점 방법으로 취약점을 처리하는 것과 달라요.
Docker Hardened Images with VEX
이미지는 어떤 취약점이 적용되지 않는지와 그 이유를 설명하는 서명된 증명을 포함해요. VEX 지원 스캐너는 이 증명들을 읽을 수 있어서 다음을 줍니다:
- 도구 유연성: OpenVEX를 지원하는 어떤 스캐너든(Docker Scout, Trivy, Grype 등) 사용
- 완전한 투명성: 각 취약점 평가에 대한 정확한 근거 검토
- 전체 감사 가능성: 보안 팀과 규정 준수 담당자가 모든 취약점 평가와 근거를 독립적으로 검증
- 이력 가시성: VEX 문이 이미지에 남으므로, 이전 버전에서도 취약점 상태를 항상 확인
독점 취약점 처리 (Proprietary vulnerability handling)
일부 이미지 공급업체는 VEX 대신 독점 권고 피드나 내부 데이터베이스를 사용해요. 이는 보고되는 취약점을 줄일 수 있지만, 상당한 제한을 만듭니다:
- 도구 의존성: 그 취약점 필터링을 보려면 공급업체의 선호 스캔 도구를 사용해야 하고, 표준 스캐너는 모든 CVE를 여전히 보고해요. 스캐너는 모든 이미지에서 동작하는 공개 표준 대신 독점 피드를 구현해야 해요.
- 투명성 없음: 독점 피드는 "블랙박스"로 동작합니다 — 취약점이 설명 없이 공급업체 도구에서 사라져요.
- 제한된 검증 가능성: 보안 팀이 취약점이 제외된 이유나 근거가 타당한지 독립적으로 검증할 방법이 없어요.
- 유지 관리 어려움: 표준 도구로 이전 이미지 버전을 스캔하면 당시 실제로 적용된 취약점을 결정할 수 없어, 장기 보안 추적이 어려워요.
- 생태계 비호환성: 기존 보안 도구(SCA, 정책 엔진, 규정 준수 스캐너)가 공급업체의 독점 취약점 데이터에 접근하거나 검증할 수 없어요.
근본적 차이: VEX 기반 접근은 어떤 도구가 검증·감사할 수 있는 공개 표준으로 취약점 평가를 설명해요. 독점 접근은 근거를 독립적으로 검증할 수 없는 공급업체별 시스템에 취약점을 숨겨요.
Docker Hardened Images에는 VEX 지원 스캐너를 사용해 전체 보안 도구 체인에서 동작하는 정확한 결과를 얻으세요.
서로 다른 스캐너에서 기대할 것 (What to expect from different scanners)
다른 도구로 Docker Hardened Images를 스캔하면 보고된 취약점 수에 상당한 차이가 보일 거예요.
VEX 지원 스캐너가 자동으로 걸러내는 것 (What VEX-enabled scanners filter automatically)
VEX 지원 스캐너로 Docker Hardened Images를 스캔하면 적용되지 않는 취약점을 자동으로 제외해요:
- 하드웨어별 취약점: 특정 하드웨어 아키텍처(예: Power10 프로세서)에만 영향 주는 컨테이너 워크로드와 무관한 이슈.
- 도달 불가능한 코드 경로: 패키지에 존재하지만 이미지의 런타임 구성에서 실행되지 않는 코드의 CVE.
- 빌드 시점 전용 이슈: 최종 런타임 이미지에 존재하지 않는 빌드 도구나 의존성의 취약점.
- 임시 식별자: 외부 추적용이 아닌 플레이스홀더 취약점 ID(예: Debian의
TEMP-xxxxxxx).
VEX 미지원 스캐너 사용 (Using scanners without VEX support)
스캐너가 VEX를 지원하지 않으면 무시 목록이나 정책 예외 같은 스캐너별 메커니즘으로 취약점을 수동으로 제외해야 해요. 이는 다음을 요구해요:
- Docker Hardened Images의 VEX 문 검토
- VEX 근거를 스캐너 형식으로 번역
- 새 취약점이 발견될 때 이 제외를 유지
- 스캐너를 전환하거나 추가 스캔 도구를 추가할 때 이 과정을 반복
다음 단계 (What's next)
VEX 호환 스캐너로 Docker Hardened Images를 스캔하는 방법을 알아보세요.