본문 바로가기
성공지식백과 로고성공지식백과
GLOSSARY

CWE (Common Weakness Enumeration)

중급바이브 코딩

이 페이지는 바이브 코딩 문맥에서 자주 쓰이는 CWE (Common Weakness Enumeration)의 뜻과 쓰임을 중급 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 5개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.

CWE(Common Weakness Enumeration)는 취약점으로 이어질 수 있는 소프트웨어·하드웨어 약점 유형을 모은 목록입니다. 약점은 특정 조건에서 취약점 발생에 기여하는 구성 요소의 상태를 뜻합니다. 특정 제품의 개별 취약점을 식별하는 CVE와 구분하며, CWE-79 같은 번호는 약점 항목을 구별하는 식별자입니다.

약점·취약점과 인접 목록의 구분

CWE 자주 묻는 질문은 약점을 여러 제품에서 취약점으로 이어질 수 있는 바탕 조건으로 정의합니다. 취약점은 특정 제품 안에서 하나 이상의 약점이 구체적으로 나타나 악용될 수 있고 기밀성·무결성·가용성에 피해를 주는 사례이며, CVE 목록에 오르는 것이 이쪽입니다.

같은 문서는 CWE와 CVE(Common Vulnerabilities and Exposures)를 임무가 다른 자매 프로그램으로 설명합니다. CWE는 약점을 말하는 공통 언어를, CVE는 취약점을 식별하는 사실상의 세계 표준을 제공합니다. 한 종류의 약점이 여러 제품에서 많은 취약점의 근본 원인이 될 수 있기 때문에, CWE 항목 하나가 여러 CVE 레코드의 근본 원인이 되는 경우가 많습니다. CVE 레코드나 버그 티켓을 CWE 항목에 대응시켜 취약점의 근본 원인을 찾는 일을 근본 원인 매핑(Root Cause Mapping)이라고 부릅니다.

CAPEC(Common Attack Pattern Enumeration and Classification)은 공격자가 이런 약점을 악용하는 흔한 방법을 모은 목록으로, 약점 유형을 모은 CWE와 함께 쓰도록 소개됩니다. 미국 국가 취약점 데이터베이스(National Vulnerability Database, NVD)는 CVE 정보를 받아 쓰는 정부 저장소로 CWE와는 별개 프로그램이며, CVE 레코드에 CWE 매핑과 CVSS 정보를 덧붙여 왔습니다.

CWE-ID의 종류와 계층

CWE 자주 묻는 질문에 따르면 CWE 식별자는 Weakness, Category, View, Compound Element 네 종류로 나뉩니다. 실제 약점에 붙는 Weakness ID는 다시 추상도에 따라 Pillar, Class, Base, Variant로 나뉩니다. 'Injection'을 다루는 CWE-74는 특정 언어나 기술에 묶이지 않는 Class, 교차 사이트 스크립팅을 다루는 CWE-79는 그보다 구체적인 Base, 웹 페이지 속성 안의 스크립트를 다루는 CWE-83은 특정 맥락에 한정된 Variant의 예입니다.

Category ID는 동시성 문제처럼 공통 속성을 가진 약점의 모음에, View ID는 약점을 바라보는 미리 정한 관점에 붙습니다. Compound Element ID는 여러 약점의 의미 있는 조합에 붙으며, CWE-252 반환값 미확인이 CWE-476 NULL 포인터 역참조로 이어지는 연쇄(chain)와, 여러 약점이 함께 있어야 성립하는 CWE-352 교차 사이트 요청 위조 같은 복합(composite)이 여기에 속합니다.

각 항목에는 설명, 흔한 결과, 가능한 완화책 같은 정보가 들어 있습니다. CWE 소개 페이지에 따르면 CWE 목록은 전체를 검색하거나 내려받을 수 있고 REST API로도 제공됩니다. 소프트웨어 개발, 하드웨어 설계처럼 맥락별 뷰로 나누어 볼 수 있으며, OWASP Top Ten과 SEI CERT 코딩 표준 같은 외부 자료와의 매핑도 함께 제공됩니다.

개발 단계의 쓰임과 Top 25의 위치

CWE 자주 묻는 질문은 CWE의 주된 목표를 설계자, 개발자, 프로그래머가 개발 수명 주기의 이른 단계에서 약점을 피하도록 교육해 취약점이 퍼지는 것을 근원에서 막는 일로 설명합니다. 이른 단계일수록 약점을 없애기가 쉽고 비용도 적게 든다는 이유입니다. 조직은 CWE를 약점을 찾는 보안 도구를 평가하는 기준이나 약점 식별·완화·예방 작업의 공통 기준으로도 씁니다.

같은 문서에 따르면 CWE Top 25는 해마다 모은 CVE 레코드 데이터 뒤에 있는 가장 심각하고 흔한 약점을 보여 주는 목록이며, 빈도와 CVSS 평균 점수를 함께 써서 순위를 정합니다. 위험도 순위는 이런 별도 목록이 매기고 CWE 번호 자체에는 담기지 않습니다. 웹 애플리케이션 중심의 일반 개념을 다루는 OWASP Top Ten과 달리 Top 25는 프로그래머가 바로 조치할 수 있는 수준의 세부 문제를 담는 것을 목표로 했습니다.

CWE는 약점 유형의 분류 목록이고 제품을 직접 검사하지는 않습니다. 실제 약점을 찾으려면 별도의 평가 방법이 필요하며, FAQ는 복합 약점의 구성 요소가 아키텍처, 설계, 코드, 구현의 서로 다른 부분에 흩어져 있어 여러 평가 방법이 필요할 수 있다고 적었습니다. 문서는 코드 중심의 정적 분석만으로는 설계나 아키텍처의 문제를 놓칠 수 있다는 예를 듭니다.

RELATED TERMS

관련 용어

CWE (Common Weakness Enumeration)와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.