CWE는 소프트웨어·하드웨어·서비스에서 취약점으로 이어질 수 있는 약점 유형을 공통 언어로 분류합니다. CVE는 공개된 특정 사이버 보안 취약점을 구별해 논의하고 정보를 공유하도록 부여되는 식별자와 레코드입니다. 따라서 CWE는 ‘어떤 종류의 약점인가’, CVE는 ‘어느 공개 취약점 사례인가’에 답합니다.
한 약점 유형이 여러 제품의 서로 다른 취약점 사례에서 원인으로 연결될 수 있으므로 두 번호가 항상 일대일로 대응하지는 않습니다. 가상의 이름과 관계를 사용한 교육 예시이며 실제 CVE 번호나 제품 취약성 판정이 아닙니다.
CWE는 분류표, CVE는 특정 공개 사례의 식별자입니다
CWE(Common Weakness Enumeration)는 설계·코드·구현 등에서 생길 수 있고 일정한 조건에서 취약점에 기여할 수 있는 약점 유형을 정리한 목록입니다. 개발자나 보안 담당자가 반복해서 나타나는 원인 유형을 같은 용어로 설명하고, 예방·완화 방법을 논의하는 데 씁니다. CVE(Common Vulnerabilities and Exposures) 프로그램은 공개된 특정 사이버 보안 취약점을 식별하고 공유하는 체계입니다. CVE ID와 그에 대응하는 레코드는 여러 사람이 같은 취약점 정보를 지칭하도록 돕습니다. MITRE CWE 공식 FAQ는 약점과 취약점의 관계, CWE와 CVE의 구분을 설명하며, CVE 프로그램 규칙 v4.0은 CVE ID와 레코드가 적절한 공개 취약점을 서로 참조하도록 하는 목적을 밝힙니다.
| 표기 | 답하는 질문 | 가상 예시 | 이 표기만으로 모르는 것 |
|---|---|---|---|
| CWE 유형 | 어떤 약점 범주인가? | 입력 검증이 빠질 수 있는 약점 유형 | 특정 제품의 버전이나 실제 영향 여부 |
| CVE 레코드 A | 어떤 공개 취약점 사례인가? | 가상 서비스 알파의 특정 제품 버그 | 다른 제품이 같은 영향을 받는지 |
| CVE 레코드 B | 또 다른 공개 취약점 사례는 무엇인가? | 가상 서비스 베타의 별도 구현 결함 | CWE 유형만 보고 이 취약점이 발생했는지 |
한 원인 범주와 두 제품 기록을 연결해 봅니다
세 팀이 각자 웹 입력을 처리한다고 가정합니다. 알파 팀은 문자열 길이 확인을 빠뜨린 버그를 공개했고, 베타 팀은 같은 종류의 검증 누락으로 다른 영향과 수정 사항이 있는 버그를 공개했다고 합시다. 두 공개 기록은 각각 별도의 CVE 식별자를 가질 수 있고, 분석 결과 원인 유형이 같은 CWE 범주로 연결될 수 있습니다. 여기서 ‘같은 CWE이므로 두 제품의 취약점도 같고, 수정 방법도 동일하다’고 결론내리면 안 됩니다. CWE는 원인을 분류하는 추상화이고, 각 CVE 기록은 영향을 받는 구현과 버전, 조건, 대응 정보를 특정합니다. 반대로 한 CVE가 복수의 약점 유형과 관련될 수 있는 경우도 있으므로 관계를 기계적으로 하나씩 짝짓지 마세요.
이 도식은 개념을 설명하기 위해 만든 예입니다. ‘입력 검증 누락’이라는 설명은 실제 CWE 항목명이나 번호를 인용하지 않으며, 알파·베타도 실제 제품이 아닙니다. 시험 답안에서는 문제에 구체적인 분류 번호가 제시되면 해당 명칭과 범위를 함께 확인하고, 제시되지 않았다면 기억만으로 번호를 덧붙이지 않는 편이 정확합니다.
레코드를 읽을 때 질문을 두 단계로 나눕니다
- CVE ID가 있으면 우선 특정 공개 취약점 레코드를 가리키는지 확인합니다.
- 레코드에서 제품·영향 버전·취약 조건·수정 정보와 출처를 따로 읽습니다.
- CWE가 표시돼 있으면 이 취약점과 연결한 약점 분류로 이해합니다.
- 분류가 비어 있거나 불명확하면 임의로 CWE를 추정하지 않습니다.
- 예방 관점에서는 약점 유형을, 패치·영향 확인 관점에서는 특정 CVE 레코드를 중심으로 질문합니다.
MITRE CWE FAQ의 설명에 따르면 약점은 특정 조건에서 취약점 발생에 기여할 수 있는 상태입니다. ‘기여할 수 있다’는 말은 모든 약점이 자동으로 악용되거나 모든 CVE에 동일한 원인이 붙는다는 뜻이 아닙니다. CVE CNA 운영 규칙은 CVE 프로그램이 공개된 취약점에 초점을 둔다는 범위를 정하지만, 특정 제품이 현재 취약하다는 판정은 그 제품의 실제 버전과 공식 레코드·공급자 공지를 확인해야 합니다. CWE 번호가 보인다고 해당 조직 시스템에 취약점이 있다고 단정하지 않고, CVE 번호가 없다고 알려진 위험이 전혀 없다고 단정하지도 않습니다.
두 체계를 모두 ‘취약점 번호’라고 뭉뚱그리지 않습니다
가장 흔한 혼동은 두 번호가 모두 보안 문서에 등장한다는 이유로 둘을 서로 대체 가능한 식별자라고 외우는 것입니다. 답안에서 ‘CWE-유형은 결함의 원인 범주, CVE-식별자는 공개된 개별 취약점 사례’라고 주어를 붙이면 구분이 선명해집니다. 또 ‘CVE 하나당 CWE 하나’라고 단정하면 분류 관계를 실제보다 단순화하게 됩니다. CVE 레코드의 설명, 영향 제품·버전, 공개 참고자료를 읽고, 약점 분류가 제공되면 보조 축으로 해석하세요. 사고 대응에서는 먼저 영향받는 자산의 버전을 확인하고, 개발 개선에서는 반복되는 약점 유형을 줄이는 식으로 활용 목적도 다릅니다.
번호가 답하는 질문을 가리고 회상합니다
연습: 가상의 공개 취약점 레코드 두 건이 서로 다른 제품을 가리키고, 분석자가 두 건에 비슷한 코드 약점 유형을 연결했습니다. ‘특정 공개 사례를 가리키는 표기’는 CVE, ‘두 사례의 공통 원인 범주를 말하는 표기’는 CWE입니다. 이어서 제품 영향 버전은 어느 쪽의 상세 정보를 확인해야 하는지 답해 보세요. 특정 CVE 레코드와 공급자 공지의 영향 범위를 확인해야 합니다. 이 세 문장을 반복해 말하면 단순 번호 암기보다 역할 관계를 기억하기 쉽습니다.
정답을 가리고 확인해 보세요
이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.
가상의 두 제품에서 별개의 공개 취약점 레코드가 발견됐고, 분석자는 두 원인이 비슷한 약점 유형과 관련된다고 설명했다. CWE와 CVE는 각각 무엇을 나타내며, 특정 제품의 영향 버전은 어디서 확인해야 하나요?
정답과 해설 확인
CWE는 공통 약점 유형의 분류이고 CVE는 공개된 개별 취약점의 식별자·레코드입니다. 제품의 영향 버전은 해당 CVE 레코드와 공급자 공지의 범위를 확인해야 합니다.약점 분류와 공개 취약점 사례는 서로 다른 추상화 수준입니다. 한 약점 유형이 여러 사례에 연결될 수 있으나, 제품 영향은 개별 레코드에 기재된 버전·조건으로 확인해야 합니다.