PSIRT 팀용
PSIRT 팀과 제품 보안 리더를 위한 CRACI
모든 PSIRT 사안의 첫 질문은 우리 제품과 버전 중 어디에 취약한 구성 요소가 들어 있느냐입니다. CRACI는 각 빌드가 실제로 가져온 항목의 기록으로 이 질문에 답하고, 새로운 CVE가 공개될 때마다 계속 답합니다.
업데이트
PSIRT 관리자가 겪는 문제
제품 보안 책임자는 PSIRT 혼자서는 만들어 낼 수 없는 답변에 책임을 집니다. 널리 쓰이는 라이브러리에서 CVE가 공개되면 고객, 경영진, 그리고 점점 더 규제 기관까지 몇 시간 안에 같은 질문을 합니다. 우리가 영향을 받는가, 어떤 제품과 버전인가, 언제부터인가, 언제 수정되는가?
답은 인벤토리에 달려 있고, 인벤토리는 대개 스캐너가 사후에 잠금 파일이나 매니페스트를 읽어 만든 것입니다. 스캐너는 출시되지도 않는 개발 종속성을 나열하고, 빌드가 다른 방식으로 내려받은 패키지는 놓칩니다. 그래서 PSIRT는 엔지니어링 팀에 수작업 확인을 요청하고, 답은 며칠 뒤에야 단서를 달고 돌아옵니다.
FIRST PSIRT Services Framework는 제품 구성 요소 인벤토리가 "상속된 취약점에 영향을 받는 제품을 신속하게 식별하는 데 필수적"이라고 말합니다. CRACI는 바로 그 인벤토리에서 출발합니다. 이 역할의 전체 그림은 PSIRT란 무엇인가를 참고하세요.
CRACI가 PSIRT에 제공하는 것
빌드에서 기록한 인벤토리
CRACI는 GitHub Actions 빌드를 CRACI 러너에서 실행하고, 각 작업이 실제로 가져온 패키지를 전이적 종속성, CI 캐시에서 복원된 패키지, 어떤 잠금 파일에도 나오지 않는 종속성까지 포함해 기록합니다. 스캐너가 아니라 기록기입니다. 각 SBOM에는 완전성 상태가 있어 부분적인 기록은 부분적이라고 표시되며, SBOM은 CycloneDX 또는 SPDX로 내보낼 수 있습니다.
출시된 소프트웨어의 지속적인 모니터링
모니터링 중인 SBOM은 새로운 취약점이 공개될 때마다 지속적으로 재평가되며, 발견 사항은 빌드와 리포지토리 전반에서 집계됩니다. 다음 달에 공개되는 CVE도 다음 빌드뿐 아니라 이미 출시한 릴리스와 매칭됩니다. CVE가 공개된 알려진 악성 릴리스도 다른 취약점과 똑같이 표시됩니다.
영향을 받는 제품, 버전, 기간
빌드 이력은 과거의 모든 빌드와 그 SBOM, 그리고 직접 또는 전이적으로 취약한 종속성을 포함한 빌드를 보여 주므로, 보존 기간 내에서 영향을 받은 기간을 알 수 있습니다. 인벤토리 뷰는 어떤 소프트웨어 버전이 어떤 제품에 배포되어 있는지 정확히 보여 줍니다. 이 둘을 함께 쓰면 "우리가 영향을 받는가?"라는 질문이 단순 조회가 됩니다.
외부에서 구매한 구성 요소
제품이 귀사의 자체 코드로만 이루어지는 경우는 드뭅니다. 공급업체 SBOM을 추가할 수 있으므로, 서드파티 구성 요소도 귀사의 빌드와 함께 모니터링됩니다.
분류, 전달, VEX
보안 팀은 발견된 취약점을 분류해 수정을 담당하는 팀에 보냅니다. 이는 제품 팀이 개선 조치를 수행하는 분산형 PSIRT 모델과 맞아떨어집니다. CRACI는 VEX를 지원합니다. 영향 없음(not affected) 진술이 PSIRT와 고객의 작업을 어떻게 줄여 주는지는 VEX를 참고하세요.
수정된 CVE가 이후 빌드에 다시 들어오지 않도록
정책 게이트는 특정 CVE를 포함한 빌드를 비롯해 발견 사항에 따라 빌드를 차단할 수 있습니다. PSIRT 사안을 종료한 뒤 해당 CVE에 게이트를 걸어 두면, 취약한 버전이 이후 릴리스에 조용히 되돌아오는 것을 막을 수 있습니다.
감사와 고객을 위한 증거
API는 각 빌드의 SBOM, 네트워크 추적, 출처 증명을 반환하므로, 권고나 감사 답변의 근거가 되는 기록을 UI 밖에서도 활용할 수 있습니다. EU Cyber Resilience Act가 적용되는 경우, CRACI는 필요한 통지의 내용도 준비하며, 제조사의 담당자가 Single Reporting Platform을 통해 이를 제출합니다. 의무는 여전히 제조사에 있습니다. CRA란 무엇인가를 참고하세요.
PSIRT 프로세스에서 CRACI의 위치
| PSIRT 단계 | CRACI의 기여 |
|---|---|
| 준비 | 빌드 실행 중 기록되는 빌드별 SBOM, 완전성 상태 포함 |
| 탐지 | 공급업체 SBOM을 포함해 모니터링 중인 SBOM의 지속적인 재평가 |
| 검증 | 어떤 빌드, 버전, 제품에 해당 구성 요소가 언제부터 들어 있는지 |
| 개선 조치 | 담당 팀으로 분류 및 전달, CVE가 이후 빌드에 들어오지 않게 하는 정책 게이트 |
| 릴리스 및 공개 | VEX 지원, SBOM 내보내기, 빌드 기록에 대한 API 접근 |
각 단계는 취약점 관리 수명 주기를 따릅니다.
CRACI가 하지 않는 일
- 도달 가능성 분석. CRACI는 취약한 패키지가 빌드에 있었다는 사실을 보여 줄 뿐, 코드가 취약한 함수를 호출하는지는 보여 주지 않습니다.
- 소스 코드 스캔. SAST와 시크릿 스캔은 범위 밖입니다. CRACI와 함께 쓸 수 있는 좋은 도구가 많습니다.
- GitHub Actions 이외의 CI 시스템. 현재는 GitHub Actions를 지원하며, 다른 CI 시스템은 로드맵에 있습니다.
- 대리 컴플라이언스. CRACI는 증거를 제공합니다. NIS2, CRA 또는 그 밖의 프레임워크를 충족하는 일은 여전히 조직의 프로세스입니다.
PSIRT 팀을 위한 CRACI: 자주 묻는 질문
CRACI는 PSIRT 도구입니까?
CRACI는 PSIRT 업무 중 출시하는 소프트웨어를 파악하는 데 달린 부분을 담당합니다. 빌드 시점 SBOM, 그 SBOM의 지속적인 모니터링, 취약한 구성 요소를 포함한 빌드와 제품 파악, 담당 팀으로의 분류 및 전달입니다. 공개 채널과 권고 프로세스는 이 기록을 바탕으로 구축됩니다.
CRACI는 제품에 무엇이 들어 있는지 어떻게 압니까?
빌드가 CRACI의 GitHub Actions 러너에서 실행되고, CRACI는 각 작업이 실제로 가져온 패키지를 전이적 종속성, CI 캐시에서 복원된 패키지, 어떤 잠금 파일에도 나오지 않는 종속성까지 포함해 기록합니다. 스캐너가 아니라 기록기입니다. 각 SBOM에는 완전성 상태가 있어 기록이 부분적인 경우를 알 수 있습니다.
CRACI로 과거 어떤 릴리스가 CVE의 영향을 받았는지 알 수 있습니까?
네, 보존 기간 내에서 가능합니다. 빌드 이력은 과거의 모든 빌드와 그 SBOM, 그리고 직접 또는 전이적으로 취약한 종속성을 포함한 빌드를 보여 주므로, 영향을 받은 기간을 알 수 있습니다. 인벤토리 뷰는 어떤 소프트웨어 버전이 어떤 제품에 배포되어 있는지 보여 줍니다.
공급업체에서 구매한 구성 요소도 CRACI가 다룹니까?
공급업체 SBOM을 추가할 수 있으므로, 외부에서 구매한 구성 요소도 귀사의 빌드와 함께 모니터링됩니다.
CRACI는 VEX를 지원합니까?
CRACI는 어떤 CI 시스템을 지원합니까?
현재 GitHub Actions를 지원합니다. 다른 CI 시스템은 로드맵에 있습니다.
빌드에서 바로 제품의 노출 범위를 확인하세요
귀사의 GitHub Actions 빌드로 데모를 예약하세요. CRACI가 기록하는 SBOM, CVE가 도달한 빌드, PSIRT가 사용할 분류 뷰를 보여 드립니다.
데모 예약