이 문서는 개발 및 배포 프로세스에서 보안 취약점이나 라이선스 위반이 발견되었을 때, 특정 상황에 따라 안전하게 예외(Suppression)를 적용하고 관리하는 방법을 안내합니다.
개요
보안 및 컴플라이언스 관리 과정에서 발견되는 모든 정책 위반(Violations)에 즉각적인 조치가 필요한 것은 아닙니다. 위험도가 낮거나, 탐지 오류(False Positive)이거나, 이미 다른 보안 제어를 통해 위험이 완화된 경우가 존재합니다.
JFrog Xray의 Ignore Rules(무시 규칙) 기능을 사용하면 특정 정책 위반을 일시적 또는 영구적으로 제외할 수 있어, 개발 팀이 빌드 블로킹이나 경고 알림에 방해받지 않고 실제로 중요한 핵심 위험에 집중할 수 있도록 돕습니다.
중요 개념: 위반 사항을 '무시(Ignore)'하더라도 데이터베이스에서 삭제되는 것은 아닙니다. 시스템 내부 감사 로그(Audit Logs)에는 계속 기록으로 남되, CI/CD 워크플로우를 차단하거나 경고 알림을 보내는 동작만 숨겨주는 역할을 합니다.
그리고 Artifact 단위로 예외 처리하는 방식이 아니고, 위반 항목 별로 예외 처리 하는 방식 입니다.
예외처리 (Ignore rule) 적용 대상
Ignore Rules는 다음과 같은 다양한 탐지 유형에 적용할 수 있습니다.
- 보안 (Security): 특정 컴포넌트에 영향을 주는 보안 취약점(CVE) 예외 처리
- 라이선스 (License): 특정 소프트웨어 라이선스 위반 항목 예외 처리
- 운영 위험 (Operational Risk): 패키지 노후화 등 프로젝트 운영 리스크 위반 항목 예외 처리
Ignore Rules의 3가지 유형
1. 일시적 예외 처리 (Temporary Ignore)
- 개념: 만료일(Expiration Date)을 지정하여 일정 기간(예: 30일) 동안만 위반 알림을 무시합니다.
- 작동: 지정된 만료일이 지나면 위반 항목이 자동으로 다시 활성화(Reactivate)되어 모니터링됩니다.
- 주요 사례: 현재 환경에서 즉시 악용될 가능성은 낮지만, 향후 정기 패키지 업데이트나 다음 릴리스 버전에서 패치를 적용하기로 계획된 경우에 유용합니다.
2. 영구적 예외 처리 (Permanent Ignore)
- 개념: 만료일을 설정하지 않고 위반 사항을 영구적으로 숨깁니다. (필요 시 추후 수동으로 규칙을 제거할 수 있습니다.)
- 주요 사례: 탐지된 CVE가 실제 비즈니스 환경이나 컴포넌트의 활용 방식상 전혀 영향을 주지 않는 오탐(False Positive)으로 판명되었을 때 사용합니다.
3. 범위 기반 예외 처리 (Ignore Based on Scope)
- 개념: 전체 시스템에 일률적으로 적용하는 대신, 특정 컨텍스트 안에서만 위반 사항을 무시하도록 세부 범위를 제한합니다.
- 설정 가능 범위: 특정 워치(Watch), 컴포넌트(Component), 아티팩트(Artifact), 빌드(Build), 또는 릴리스 번들(Release Bundle) 단위로 스코프 지정이 가능합니다.
- 주요 사례: 특정 아티팩트가 전사 빌드를 블로킹하는 것을 방지하기 위해, 해당 아티팩트 내에서 발생하는 위반 항목만 타겟팅하여 무시하고 싶을 때 사용합니다.
효율적인 예외 관리를 위한 3대 모범 사례
1. 일시적 예외 처리 시 반드시 만료일 설정하기
- 영구적인 무시는 위험을 방치할 수 있습니다. 위반 사항들이 주기적으로 재평가될 수 있도록 적절한 만료 기한을 설정하는 습관이 필요합니다.
2. 범위 기반(Scope) 예외 처리를 우선 활용하기
- 필수적인 상황이 아니라면 전역(Global) 무시 설정은 지양해야 합니다. 특정 빌드나 특정 컴포넌트 등 필요한 스코프 내로 범위를 좁혀 예외를 적용하십시오.
3. 무시된 위반 항목 정기적으로 검토하기
- 현재 어떤 취약점들이 예외 처리되어 있는지 주기적으로 리뷰하고, 새로운 패치가 나왔거나 비즈니스 위험도가 변하지 않았는지 정기적으로 재평가해야 합니다.
예외 처리 방법
JFrog Xray 기능을 이용해 예외처리하는 방법을 정리합니다.
- 위반 목록 확인하기
화면: Artifactory > Application > Xray > Watch Violations
Watch violation 목록에서 예외처리가 필요한 watch를 선택합니다. - 예외 처리할 대상을 선택합니다.
위반 항목 맨 오른쪽 의 아이콘 클릭 - 예외 처리 구성
예외 처리 유형별로 세부 내역을 설정합니다. Vulnerability, Component, Artifact 중 하나는 Any가 아닌 값을 지정해야 합니다.
- Based on the Vulnerability: 위반 룰에 대해 예외 지정
- Bsed on the Component: 위반이 발생한 요소의 버전 또는 모든 버전에 대해 예외 지정
- Based on the Artifact: 위반이 발생한 Component를 포함하는 파일 (Artifact)의 버전 또는 모든 버전에 대해 예외 지정
- Based on the Watch: Watch 자체에 대해 예외 지정 (Watch에 적용된 모든 룰에 대해 예외 지정)
- Ignore rule expiration: 지정한 날짜까지 예외 허용하고 이후 날짜부터 예외 허용 안함 - 위반 예외 목록 보기
Watch violations 화면의 목록 필터에서 Violation Status (Active, Ignored) 를 선택하여 예외 목록을 확인 가능합니다.
Active 목록:
Ignored 목록:



