CVE, CWE, NVD가 무엇인지 이해하고 취약점이 발견되었을 때 어떻게 등록되는지 이해한 것을 정리한다.
CVE, CWE, NVD
CVE는 Common Vulnerabilities and Exposures의 약자로 공개적으로 알려진 컴퓨터 보안 결함 목록이다. CWE는 Common Weakness Enumeration의 약자로 소프트웨어 보안약점 목록이다. 소스코드의 취약점을 정의한 데이터베이스로, 일반적인 실수들(CWE-193: Off-by-one Error 등) 이 등록되어 있는 것을 볼 수 있다.
CVE는 MITRE에서 1999년부터 소프트웨어 약점들을 분류하면서 시작되었다. CVE 구축의 일환으로 2005년부터 vulnerabilities, attacks, faults 등등의 개념들을 분류하혔는데, CVE에서 그룹화하기에 러프(rough)하다는 문제가 있었다. 그래서 2006년부터 CWE List 가 만들어졌다.
실제로 등록되어있는 취약점을 보면, CWE는 코드에서 생길 수 있는 일반적인 실수들이라는 것을 알 수 있었다. CVE는 실제 프로덕트에서 발생한 취약점들에 대한 목록으로 CWE로 설명이 된다. 예를 들어, CVE-2021-45105 취약점을 설명하기 위해서 CWE-674 과 CWE-20 을 사용해서 설명한다. 즉, 취약점에 CWE-674, CWE-20 이 사용되었다는 것이다.
NVD는 National Vulnerability Database의 약자로 표준 취약점 관리 데이터의 미국 정부 저장소이다. 미국 국가기관으로 보안 취약점에 대한 정보를 제공해주는 곳으로 취약점이 생기면 뭔지, 어떻게 고쳐야되는지 정보를 알랴준다. CVE가 발생하고, NVD에 등록되기 위해서 절차가 필요하다. NVD에 등록될 때는 CVE 정보와 함께 fix information, severity scores, and impact ratings 등의 정보를 함께 등록한다.
CVE, CWE, CAPEC은 MITRE에서 관리하고, NVD는 NIST에서 관리한다.
CNA는 CVE Numbering Authorities의 약자로, CVE에 숫자를 달고 취약점을 등록하기 위한 기관으로 여러 파트너 회사들이 있다. ( CNA )