EU 사이버 복원력법(CRA) — TRUSCA가 돕는 방식
대상 독자
CRA의 취약점 처리 의무를 TRUSCA가 어떻게 뒷받침하는지 판단하려는 보안 리드, 제품보안팀, 법무·컴플라이언스 담당자. 이 문서는 규정 문구를 실제 기능에 대응시키고, 한계를 함께 밝힌다.
법률 자문이 아니며 컴플라이언스 인증도 아니다
TRUSCA는 CRA 프로그램의 일부를 뒷받침하는 도구다. TRUSCA를 쓴다고 해서 제품이 CRA를 준수하게 되는 것은 아니며, 이 문서는 법률 자문이 아니다. 준수 여부는 조직의 프로세스·문서·제품이 갖추는 성질이므로, 규정 원문을 근거로 자격을 갖춘 법률 전문가와 함께 평가한다.
CRA가 요구하는 것(SCA 도구가 관여하는 범위)
사이버 복원력법(Regulation (EU) 2024/2847)은 EU 시장에 출시되는 디지털 요소 포함 제품에 보안 요구사항을 부과한다. 이 가운데 SCA·SBOM 포털이 도울 수 있는 부분은 두 곳이다.
- Annex I Part II — 취약점 처리 요구사항. 구성요소와 취약점을 식별·문서화하고 (통용되는 기계 판독 형식의 SBOM 포함), 지체 없이 조치하며, 정기적으로 시험하고, 취약점 정보를 공유한다.
- Article 14 — 신고 의무. 악용이 확인된 취약점과 중대한 사고를 조율 CSIRT와 ENISA에 촉박한 기한 안에 통지한다(초기 경보는 24시간 이내).
아래 대응표는 이 두 곳만 다룬다. 설계 단계 보안 요구사항(Annex I Part I), 업데이트 배포 인프라, 규제 신고를 실제로 제출하는 행위는 스캐너가 아니라 제품과 조직의 책임이다.
의무 → TRUSCA 기능 대응
| CRA 의무(Annex I Part II / Art. 14) | TRUSCA가 돕는 방식 | 위치 |
|---|---|---|
| §1 — 구성요소와 취약점을 식별·문 서화하고, 통용되는 기계 판독 형식의 SBOM을 포함한다 | cdxgen이 30종 이상 생태계에서 구성요소를 탐지하고 Trivy가 이를 CVE와 대조한다. SBOM 수출은 CycloneDX와 SPDX를 byte-stable하게 생성한다. | SBOM 수출, 구성요소 |
| §2 — 취약점을 지체 없이 조치한다 | 각 발견 항목은 수정 버전 정보를 담고, 조치 시뮬레이션과 풀 리퀘스트 생성이 업그레이드 경로를 제안한다. 심각도별 조치 SLA 추적이 각 발견 항목의 경과시간을 최초 탐지 시각부터 기한 대비로 재고, 기한 초과 필터와 일일 초과 알림을 제공한다. CI 빌드 게이트는 Critical CVE·금지 라이선스에서 빌드를 실패시켜(exit 1) 회귀가 출하되지 않게 한다. | SLA 추적, 조치 PR, 시뮬레이션 |
| §3 — 정기적으로 보안 시험·검토를 수행한다 | 예약 스캔에 더해 자동 재매칭이 동작한다. Trivy DB가 갱신되면 Celery beat가 기존 SBOM을 다시 스캔하므로, 새로 공개된 CVE가 재업로드 없이 드러난다. | 데이터 출처, 스캔 |
| §4 / §6 — 취약점 정보를 공유하고 악용 가능성을 표기한다 | VEX 반입·수출이 발견 항목별 악용 가능성 상태(not_affected, under_investigation 등)를 CycloneDX와 SPDX로 전달하므로, 하류 소비자가 원시 CVE 잡음 대신 정확한 상태를 받는다. | VEX |
| Art. 14 — 악용이 확인된 취약점을 식별한다 | KEV 표시(CISA Known Exploited Vulnerabilities)는 실제 악용이 확인된 사실을 표시하고, EPSS는 악용 가능성을 점수화한다. 24시간 신고의 근거가 될 발견 항목을 가려내는 두 신호다. TRUSCA는 신호를 드러낼 뿐 신고서를 제출하지는 않는다. | 데이터 출처, 분류 |
| 증거와 감사 추적 | 모든 쓰기 작업이 감사 로그에 기록되고(검색·CSV 수출), 보고서는 Excel·PDF로 수출해 증거 묶음을 만든다. | 감사 로그 |
한계 — TRUSCA가 대신해 주지 않는 것
먼저 정직하게 밝힌다. CRA는 프로세스와 제품 전반을 다루는 규제이고, 스캐너는 그 일부만 담당한다.
- SLA 기간은 조직의 정책이지 규제 자체의 기준이 아니다. TRUSCA는 이제 각 발견 항목의 경과시간을 최초 탐지 시각부터 심각도별 조치 기간 대비로 추적하고, 기한 초과 필터와 초과 알림을 제공한다 — 조치 SLA와 경과시간 추적 참고. 다만 이 기간은 운영자가 조정하는 기본값이며, 어떤 지연이 CRA가 말하는 "지체"에 해당하는지는 포털이 대신 판단할 수 없다.
- 규제 신고서를 제출하지 않 는다. KEV·EPSS로 악용이 확인된 취약점을 식별하는 것과 24시간 안에 ENISA·CSIRT에 통지하는 것은 별개다. 그 절차는 조직의 몫이다.
- 보안 권고문을 게시하지 않으며, 조율된 취약점 공개(CVD) 절차를 대신 운영하지
않는다. TRUSCA 자체의 공개 채널은
SECURITY.md에 있으나, 제품에는 제품 고유의 채널이 필요하다. - 업데이트를 배포하지 않는다. 보안 패치를 사용자에게 안전하고 신속하며 무상으로 전달하는 일은 제품의 책임이다.
- 설계 단계 보안(Annex I Part I)은 범위 밖이다. 그것은 제품의 공학적 성질이지, 의존성 스캐너가 단언하는 대상이 아니다.
실무 점검표
CRA 프로그램 안에서 TRUSCA를 실용적으로 쓰는 방법이다.
- 릴리스마다 SBOM(CycloneDX 또는 SPDX)을 생성해 보관하고, 이를 문서화된 구성요소 인벤토리로 삼는다.
- CI 빌드 게이트를 켜서 Critical CVE·금지 라이선스가 출하되지 못하게 하고, Trivy DB 갱신과 자동 재매칭을 계속 돌려 출하된 SBOM에 대한 새 CVE가 자동으로 드러나게 한다.
- KEV와 EPSS로 분류해, Article 14 신고 기한을 좌우하는 악용 확인 항목을 놓치지 않는다.
- 악용 가능성 판단을 VEX로 기록해, 하류 소비자와 감사자가 원시 CVE 개수가 아니라 정확한 상태를 보게 한다.
- 감사 로그와 보고서 수출을 증거 추적으로 유지한다.
- 심각도별 SLA 기간(
VULN_SLA_DAYS_*)을 조직의 조치 정책에 맞게 설정하고, 기한 초과 대기열(?sla=overdue)을 처리하며, 초과 알림을 켜 둔다 — "지체 없는" 조치의 경과시간 증적이 된다.
참고
- Regulation (EU) 2024/2847 (사이버 복원력법)
- 취약점 데이터 출처 — KEV·EPSS의 출처
- VEX, SBOM 수출