기본 이미지 취약점 관리
기본 이미지(Base image)는 제품들이 공통 상위 계층으로 사용하는 컨테이너 이미지입니다. Apollo에서는 운영체제 이름만으로 식별하지 않고, 레지스트리 경로로 지정한 실제 검사 아티팩트를 등록합니다. 공통 이미지의 발견 사항(Finding)을 함께 검토하면 각 애플리케이션 팀이 같은 운영체제 패키지와 CVE를 반복해서 검토하는 일을 줄일 수 있습니다.
이미지 등록, 제거와 억제 요청은 제품의 승인 절차를 따릅니다. 제품의 승인 책임자(Authorizing Official, AO)가 승인해야 적용되며 결정에는 감사 이력이 남습니다.
준비 조건과 용어
Risk Management 접근 권한과 해당 공간의 기본 이미지 설정 사용 권한이 필요합니다. 각 이미지의 전체 레지스트리 경로를 준비하고 스캐너가 그 주소에서 이미지를 가져올 수 있어야 합니다.
발견 사항은 하나 이상의 검사 이미지에서 발견된 패키지와 CVE의 조합입니다. 패키지는 pkg:type/namespace/name 형태의 PURL로 식별합니다. pkg:rpm/redhat/coreutils와 pkg:deb/ubuntu/coreutils는 서로 다른 패키지입니다. 운영체제 계층에 있는 패키지뿐 아니라 다른 계층의 패키지도 대상이 될 수 있습니다.
상태는 유예기간, 기한 초과, 억제 여부를 표시합니다. 억제 요청을 적용하는 중에는 대기 표지가 나타납니다. 패키지 기반 억제를 사용하면 패키지의 위치한 계층과 관계없이 해당 규칙의 조건을 만족하는 현재와 향후 발견 사항을 다룰 수 있습니다.
기본 이미지 등록
- Risk Management에서 Base images → Manage base images를 엽니다.
- Create base image를 선택합니다.
- 전체 레지스트리 경로, 알아보기 쉬운 표시 이름, 선택적인 버전을 입력합니다.
- 경로 검증이 끝날 때까지 기다립니다. 이미지를 찾았다는 확인이 있어야 계속 진행할 수 있습니다. 실패하면 경로와 레지스트리 접근 가능 여부를 확인합니다.
- 제품의 승인 절차에 따라 등록 요청을 처리합니다.
이미지 목록에는 완료, 진행 중, 실패, 검사 이력 없음 등의 검사 상태와 표시 이름, 경로, 버전, 등록자 또는 가져온 파이프라인이 표시됩니다. 행 메뉴에서 재검사와 제거를 선택할 수 있습니다. 재검사는 즉시 시작하고 제거에는 AO 승인이 필요합니다.
발견 사항 검토
Base images → Suppress findings에는 검사한 기본 이미지 전체의 패키지와 CVE 조합이 우선순위에 따라 표시됩니다. 이미지를 선택하면 소프트웨어 자재명세서(SBOM)의 패키지, 발견된 취약점, 그 이미지를 사용하는 제품 릴리스를 확인할 수 있습니다.
각 행에는 CVE, 패키지 PURL, 심각도, 영향을 받는 이미지 수와 이미지 목록 팝오버, 수정본 제공 여부, 상태가 표시됩니다. 상태, 기본 이미지, 패키지, CVE 필터로 목록을 좁힙니다. 상단 집계에서는 등록 이미지 수, 검사 상태별 수, 전체 발견 사항 수를 확인합니다.
억제 요청 생성
- 같은 위험 수용 근거를 공유하는 패키지와 CVE 조합을 하나 이상 선택합니다.
- Suppress findings를 선택합니다. 선택한 조합이 미리보기에 표시되며, 이 단계에서는 취약점과 패키지 필드를 수정할 수 없습니다.
- 적용 범위를 선택합니다. 기본값은 발견 사항이 나타난 이미지이며 필요한 경우 좁히거나 넓힐 수 있습니다.
- 사유 분류를 선택합니다.
- 필수 Valid Until 날짜를 입력합니다. 이 날짜에 억제가 만료되고 발견 사항이 다시 조치 대상으로 나타납니다.
- 선택한 모든 조합에 적용되는 근거를 작성합니다. 제품 환경에서 남은 위험을 수용할 수 있는 이유와 운영상 필요를 설명합니다.
- 제출하면 변경 요청 링크가 표시되고 선택한 발견 사항에
Pending suppression이 나타납니다. - AO가 승인하면
Suppressed로 바뀝니다. 거절하면 발견 사항이 검토 목록에 남습니다.
사유 분류
| 값 | 사용 조건 |
|---|---|
FALSE_POSITIVE | 해당 맥락에 실제 취약점이 없습니다. 영향을 받는 구성 요소가 없거나 도달할 수 없는 경우 등이 해당합니다. |
ACCEPTED_RISK | 위험을 이해하고 그대로 수용합니다. 보완 통제나 위험을 부담하기로 한 명시적 결정이 근거가 됩니다. |
RECASTED_RISK | 기본 CVSS 벡터가 가정한 환경 요인이 실제 환경에는 없어 심각도를 다른 수준으로 재평가했습니다. |
VENDOR_DEPENDENCY | 팀이 직접 패치할 수 없는 공급자 또는 상위 의존성에서 취약점이 발생했습니다. |
PLANNED_FIX | 수정을 예정했습니다. 목표 버전, PR 또는 티켓처럼 구체적인 수정 대상을 기록합니다. |
이 값들은 기본 이미지 억제 양식의 분류입니다. 일반 취약점 억제나 패키지 억제 양식의 표시 이름과 임의로 치환하지 않습니다.
적용 범위
| 범위 | 대상 |
|---|---|
| Image | 발견 사항이 있는 특정 기본 이미지입니다. 기본값이며 가장 좁은 범위입니다. |
| Image prefix | 이름이 지정한 접두사와 일치하는 모든 이미지입니다. |
| Distribution | Red Hat, Ubuntu 같은 전체 배포판입니다. |
| Global | 모든 대상입니다. 패키지 조건만으로도 위험이 충분히 제한되는 경우에 사용하며 더 넓은 검토가 필요합니다. |
범위를 변경해도 승인 책임자나 승인 경로는 바뀌지 않습니다. AO가 검토할 위험의 양이 달라집니다. 요청에는 영향을 받는 제품과 이미지, 환경별 완화 조건, 남은 위험이 허용되는 이유, 만료일을 구체적으로 기록합니다.