취약점 추적
출시하는 소프트웨어의 모든 알려진 취약점을, 그것을 끌어온 빌드부터 수정한 릴리스까지 추적하세요. CRACI는 모든 빌드의 SBOM을 기록하고, 새 취약점 데이터와 계속 대조하며, 각 발견 사항을 수정을 담당하는 팀에 전달합니다.
취약점 추적이란 무엇입니까?
취약점 추적은 소프트웨어에 영향을 주는 모든 알려진 취약점을 발견부터 수정되거나 배제될 때까지 기록하는 지속적인 기록입니다. 각 취약점에 대해 네 가지 질문에 답합니다. 어디에 있는가, 어떤 제품과 릴리스에 포함되는가, 누가 수정을 담당하는가, 상태는 무엇인가.
많은 도구는 사후에 매니페스트와 잠금 파일을 스캔해 첫 번째 질문에 답하고, 나머지는 스프레드시트와 티켓에 맡깁니다. CRACI는 더 일찍 시작합니다. GitHub Actions 작업이 CRACI 러너에서 실행되며, 실행되는 동안 CRACI는 CI 캐시에서 복원된 패키지를 포함해 빌드가 실제로 가져온 모든 패키지를 기록합니다. CRACI가 모니터링하는 것은 이 빌드 시점 SBOM이므로, 추적하는 취약점은 근처 어딘가에서 실행된 스캔이 아니라 실제로 출시한 아티팩트에 있는 것입니다.
IT 자산만이 아닌, 출시하는 소프트웨어 추적
대부분의 취약점 추적 도구는 IT를 위해 만들어졌습니다. 서버, 노트북, 클라우드 계정을 스캔하며, 수정은 누군가 설치하는 패치입니다. 직접 빌드해 판매하는 소프트웨어에는 다른 기록이 필요합니다. 취약한 코드는 릴리스 안에 있고, 수정은 새 빌드이며, 고객과 당국은 어떤 버전이 얼마나 오래 영향을 받았는지 묻습니다.
CRACI가 유지하는 것이 바로 그 기록입니다. 모든 빌드의 SBOM, 그것이 배포된 제품과 버전, 외부에서 구매한 공급업체 구성 요소, 그리고 이 모두에 걸친 모든 취약점의 상태입니다.
출시한 소프트웨어의 지속적인 재평가
CRACI는 각 빌드가 실행되는 동안 SBOM을 기록하고, 이후 모니터링 대상 SBOM을 취약점 데이터와 대조해 계속 재평가합니다. 릴리스 후 오랜 시간이 지나 공개된 취약점도 누군가 스캔을 다시 실행하지 않아도 영향받는 릴리스에 표시됩니다.
빌드와 리포지토리를 아우르는 하나의 뷰
발견 사항은 빌드와 리포지토리 전반에 걸쳐 집계되며, 기본 브랜치에 대한 조직 뷰를 제공합니다. 인벤토리 뷰는 어떤 소프트웨어 버전이 어떤 제품에 배포되어 있는지 정확히 보여 주고, 빌드 기록은 과거 어떤 빌드에 취약한 종속성이 들어 있었는지 보여 주므로, 어떤 제품이 얼마나 오래 영향을 받았는지 알 수 있습니다.
분류 및 담당 팀으로의 전달
보안 팀은 발견된 취약점을 분류해 수정을 담당하는 팀에 전달하므로, 각 발견 사항이 조치할 수 있는 사람에게 도달합니다. CRACI는 취약점이 제품에 어떤 영향을 주는지 기록하기 위한 VEX도 지원하며, 정책 게이트는 특정 CVE를 포함하는 모든 빌드를 차단할 수 있습니다.
공급업체 SBOM도 자체 SBOM과 함께 추적
공급업체의 SBOM을 추가하면, 외부에서 구매한 구성 요소도 직접 빌드하는 소프트웨어와 함께 모니터링됩니다. 제품에 포함된 서드파티 코드가 자체 종속성과 같은 곳에서 추적됩니다.
발견부터 CRA 통지까지
Cyber Resilience Act 대응을 위해 CRACI는 조기 경보, 통지, 최종 보고서 등 취약점 통지의 내용을 준비하고, 사용자가 이를 제출합니다. SBOM은 구성 요소에서 발견된 취약점과 함께 CycloneDX 또는 SPDX로 내보낼 수 있어 감사, 고객, 자체 기록에 활용할 수 있습니다.
모든 취약한 패키지와 그것을 끌어오는 패키지
각 빌드는 버전, 패키지 URL, 라이선스, 취약점 상태와 함께 패키지를 나열하고, SBOM이 완전한지 보여 줍니다. 패키지를 열면 심각도와 함께 권고문을 확인하고, 그 패키지를 요구하는 패키지를 볼 수 있습니다.
CRACI의 취약점 추적 라이프사이클
- 발견. 각 빌드는 완전성 상태가 표시된 SBOM을 생성하며, 전이적 종속성을 포함해 CycloneDX 또는 SPDX로 내보낼 수 있습니다. 자체 SBOM과 공급업체 SBOM 등 모니터링 대상 SBOM은 취약점 데이터와 대조해 지속적으로 재평가됩니다.
- 위치 파악. 빌드와 리포지토리 전반의 조직 뷰, 인벤토리 뷰, 빌드 기록이 어떤 제품과 버전이 언제부터 영향을 받는지 보여 줍니다.
- 우선순위 지정 및 분류. 각 권고문에는 심각도가 표시됩니다. 보안 팀은 각 발견 사항을 분류하며, 취약점이 제품에 어떤 영향을 주는지 기록하기 위한 VEX를 지원합니다.
- 해결. 각 발견 사항은 수정을 담당하는 팀에 전달되며, "Required by"는 어떤 패키지가 전이적 취약점을 끌어오는지 보여 줍니다. 정책 게이트로 특정 CVE가 이후 빌드에 들어오지 않게 할 수 있습니다.
- 검증. 다음 빌드의 SBOM이 취약한 버전이 사라졌는지 보여 주므로, 기록이 수정된 릴리스까지 이어집니다.
- 보고. CRACI는 사용자가 제출할 CRA 취약점 통지의 내용을 준비하며, SBOM은 구성 요소에서 발견된 취약점과 함께 내보낼 수 있습니다.
각 취약점에 대해 추적할 항목
- 취약점
- 권고문과 그 ID(CVE, GHSA 등), 그리고 심각도.
- 구성 요소
- 패키지와 정확한 버전, 그리고 직접 종속성인지 전이적 종속성인지 여부.
- 경로
- 취약한 패키지를 끌어오는 패키지들로, 무엇을 업그레이드해야 하는지 알려 줍니다.
- 노출
- 어떤 제품, 릴리스, 빌드에 언제부터 포함되어 있는지.
- 담당자
- 수정을 책임지는 팀.
- 상태
- 미해결, 조사 중, 영향 없음 또는 수정됨. VEX로 기록하는 것이 이상적입니다.
- 증거
- 더 이상 취약한 버전을 포함하지 않는 빌드나 릴리스.
추적이 제대로 작동하는지 보여 주는 지표
보안 팀은 보통 네 가지 수치를 보고합니다.
- 평균 해결 시간(MTTR): 취약점이 발견된 시점부터 그 취약점이 없는 릴리스까지 걸리는 시간.
- 해결 기한 준수율: 정책이 심각도별로 정한 기한 내에 수정된 취약점의 비율.
- 백로그 추세: 미해결 취약점 수가 늘고 있는지 줄고 있는지.
- 노출 기간: 각 제품이 취약한 버전을 출시한 기간. CRACI의 빌드 기록은 어떤 빌드에 취약한 종속성이 들어 있었는지 보여 주므로, 영향을 받은 기간을 알 수 있습니다.
CRACI가 현재 하지 않는 것
CRACI는 도달 가능성 분석을 제공하지 않으므로, 코드가 취약한 함수를 호출하는지에 따라 발견 사항의 순위를 매기지 않습니다. MTTR, 기한 준수율, 백로그 추세 같은 해결 지표를 보여 주지 않습니다. 현재 심각도 임계값에 따른 알림은 없으며, 알림은 이그레스 정책 위반을 대상으로 합니다. 발견 사항에 대한 댓글, 릴리스 간 비교, 임계값 알림, 취약점 웹훅은 로드맵에 있습니다.
VEX: 실제로 제품에 영향을 주는 취약점은 무엇인가
SBOM에 취약한 구성 요소가 있다고 해서 항상 제품이 취약한 것은 아닙니다. 영향받는 코드가 출시하는 제품에 포함되지 않았거나, 공격에 필요한 방식으로 도달할 수 없을 수도 있습니다. VEX(Vulnerability Exploitability eXchange)는 이를 기계 판독 방식으로 표현합니다. 각 VEX 문서는 제품, 취약점, 상태를 연결합니다. 표준 상태는 영향 없음(not affected), 영향 있음(affected), 수정됨(fixed), 조사 중(under investigation)입니다.
이는 고객과 당국이 SBOM을 취약점 데이터베이스와 대조하기 시작하면 중요해집니다. VEX 문서가 없으면 모든 매칭이 미해결 문제처럼 보이고, 팀은 같은 오탐을 거듭 설명하게 됩니다. CRACI는 취약점이 제품에 어떤 영향을 주는지 기록하기 위한 VEX를 지원하며, 각 발견 사항을 수정 담당 팀에 전달하는 분류와 함께 사용할 수 있습니다.
따라잡아야 할 양이 얼마나 되는지 궁금하신가요? 하루에 공개되는 CVE 수와 High 및 Critical 취약점의 증가 추이를 확인해 보세요.
취약점 추적, 알기 쉽게
직접 빌드하고 구매하는 소프트웨어의 취약점 추적에 관한 자주 묻는 질문
취약점 추적이란 무엇입니까?
취약점 추적은 소프트웨어에 영향을 주는 모든 알려진 취약점을 발견 시점부터 수정되거나 배제될 때까지 기록하는 지속적인 기록입니다. 어떤 구성 요소와 버전에 있는지, 어떤 제품과 릴리스에 포함되는지, 누가 수정을 담당하는지, 상태가 무엇인지를 담습니다. 출시하는 소프트웨어의 경우 정확한 구성 요소 목록에서 출발하며, 이를 제공하는 것이 SBOM입니다.
취약점 관리의 단계는 무엇입니까?
일반적인 주기는 5단계입니다. 운영하거나 출시하는 것에서 취약점을 발견하고, 우선순위를 정하고, 해결하고, 수정으로 제거되었는지 검증하고, 보고합니다. 추적은 이 단계들을 연결해 발견부터 수정된 릴리스까지 발견 사항이 누락되지 않게 합니다. CRACI에서는 빌드 시점 SBOM 기록, 각 발견 사항의 분류, 담당 팀으로의 전달, 이후 빌드에 취약한 버전이 더 이상 없는지 확인, 그리고 SBOM 내보내기와 CRA 통지를 통한 보고가 각 단계입니다.
취약점 해결은 어떻게 추적합니까?
모든 취약점에 담당자와 상태를 지정하고, 빌드나 릴리스에 취약한 버전이 더 이상 없을 때만 종료하세요. 수정에 걸리는 시간, 기한 준수 여부, 미해결 백로그가 줄고 있는지를 측정하세요. CRACI에서는 각 빌드의 SBOM이 취약한 버전이 아직 있는지 보여 주며, 정책 게이트로 특정 CVE가 이후 빌드에 들어오지 않게 할 수 있습니다.
SBOM 취약점 관리란 무엇입니까?
SBOM 취약점 관리는 소프트웨어 자재 명세서에 나열된 구성 요소를 취약점 데이터와 대조하고, 새 취약점이 공개될 때마다 이를 반복하는 것입니다. 결과의 품질은 SBOM의 품질에 달려 있습니다. CRACI는 빌드가 실행되는 동안 SBOM을 기록하므로, 목록에는 CI 캐시에서 복원된 패키지를 포함해 빌드가 실제로 가져온 것이 반영됩니다.
취약점 추적은 취약점 스캔과 어떻게 다릅니까?
스캔은 한 시점의 작업입니다. 파일을 읽고, 발견 사항을 보고하고, 끝납니다. 추적은 발견 사항, 담당자, 상태를 시간에 걸쳐 유지하고, 새 취약점이 등장할 때마다 출시된 소프트웨어를 계속 확인합니다. CRACI는 스캐너가 아니라 기록기입니다. 각 빌드를 기록한 뒤 모니터링 대상 SBOM을 지속적으로 재평가합니다.
CRACI는 서드파티 소프트웨어의 취약점도 추적합니까?
예. 공급업체 SBOM을 추가할 수 있으며, 외부에서 구매한 구성 요소도 CRACI에서 빌드하는 소프트웨어와 함께 모니터링됩니다.
CRACI는 알려진 취약점이 포함된 빌드를 차단할 수 있습니까?
예. 정책 게이트는 발견 사항에 따라 빌드를 차단할 수 있으며, 특정 CVE를 포함하는 모든 빌드도 차단할 수 있으므로, 수정한 취약점이 이후 빌드에 다시 들어오지 않습니다.
CRACI는 취약점을 어떻게 알려 줍니까?
발견 사항은 CRACI의 조직 뷰에 표시되며, 보안 팀이 이를 분류해 담당 팀에 전달합니다. 현재 알림은 이그레스 정책 위반을 대상으로 합니다. 임계값 알림과 취약점 웹훅은 로드맵에 있으며, Slack 및 Teams 알림도 마찬가지입니다.
CRACI는 CRA 취약점 보고를 지원합니까?
예. CRACI는 조기 경보, 통지, 최종 보고서 등 CRA 취약점 통지의 내용을 준비합니다. 제출은 귀사의 담당자가 Single Reporting Platform을 통해 합니다. Cyber Resilience Act 준수는 여전히 제조업체의 프로세스이며, CRACI는 그 프로세스에 필요한 공급망 가시성과 증거의 상당 부분을 자동화합니다.
CRACI는 VEX를 지원합니까?
예. CRACI는 알려진 취약점이 제품에 어떤 영향을 주는지 기록하기 위한 VEX(Vulnerability Exploitability eXchange)를 지원하며, 분류 및 수정 담당 팀으로의 전달과 함께 사용할 수 있습니다. VEX 문서는 SBOM에서 매칭된 취약점이 실제로 제품에 영향을 주는지 고객과 당국에 알려 주므로, 오탐을 쫓지 않아도 됩니다. 데모를 예약해 분류 프로세스에 어떻게 맞는지 확인해 보세요.
CRACI는 도달 가능성 분석을 합니까?
아니요. CRACI는 도달 가능성 분석을 제공하지 않습니다. 어떤 빌드, 리포지토리, 제품에 취약한 구성 요소가 들어 있는지 보여 주며, 취약점이 제품에 어떤 영향을 주는지 기록하기 위한 VEX를 지원합니다.