Home CWE(Common Weakness Enumeration) 개요
Post
Cancel

CWE(Common Weakness Enumeration) 개요

  • 소프트웨어 보안 취약점을 분류한 CWE(Common Weakness Enumeration) 개요를 소개한다.
  • CWE는 다음 URI에서 확인할 수 있다.
    URI: https://cwe.mitre.org/

CWE(Common Weakness Enumeration)란?

  • CWE는 보안에 영향을 미치는 소프트웨어 및 하드웨어의 보안 약점(weaknesses) 유형을 정리한 목록이다. CWE 목록은 약점을 식별하고 이에 대한 설명이 기술되어 있으며, CWE 목록을 준수하면 보안 취약점을 방지할 수 있다. 참고로 하드웨어(산업 제어 시스템과 의료기기, 자동차 및 웨어러블 등) 보안 취약점에 대한 지원은 2020년 부터 시작되었다.
  • 2020.12.10에 발표된 CWE 4.3 버전 기준, 총 916개의 취약점 리스트가 존재한다. (suresoft의 최신 static 버전은 3.2 버전을 지원한다.)
  • 소프트웨어 관련 항목 중 대표적인 프로그래밍 언어인 C, C++, JAVA의 취약점을 다루는 view는 다음과 같다.
    CWE-658: 총 81개의 C 약점으로 구성된다.
    CWE-659: 총 85개의 C++ 약점으로 구성된다.
    CWE-660: 총 75개의 JAVA 약점으로 구성된다.

약점(weaknesses)과 취약점(vulnerabilites) 구분

  • 약점(weaknesses)과 취약점(vulnerabilites)은 엄밀히 다른 의미를 가진다.
  • 약점(weaknesses) ‘공격에 활용될 여지가 있는 오류’를 의미한다. 소프트웨어 개발에서 발생하는 결함, 버그, 취약점 또는 기타 오류가 해결되지 않은 상태로 두면 시스템 및 네트워크가 공격으로부터 취약해질 수 있다.
  • 취약점(vulnerabilites)은 ‘실제로 공격 구현이 가능한 구체적인 오류’를 의미한다.
  • 이론상 존재하는 위험 요소는 약점(weaknesses)이며, 실제적으로 공격이 가능한 것을 취약점(vulnerabilites)이라고 한다. 소프트웨어 약점(weaknesses)은 취약점(vulnerabilites)으로 이어질 수 있다. 즉, 약점은 취약점 보다 더 넓은 의미를 가진다.

  • 예를 들어, CWE-415: Double Free 등은 약점(weaknesses)에 해당 된다. 만약 동일한 메모리 주소를 Double Free 하는 경우 다음과 같은 취약점(vulnerabilites)이 발생할 수 있다. 일부 취약점을 살펴보면 특정 버전 이하의 애플리케이션(OpenSSH, gtk, internet exploer)에서 취약점(시그널 핸들러가 race condition에 빠질 수 있음, 공격자가 임의 코드를 실행할 수 있음)이 발생할 수 있다.

image

출처: https://www.boannews.com/media/view.asp?idx=51129
https://cwe.mitre.org/about/index.html

This post is licensed under CC BY 4.0 by the author.

MISRA C 2012_05_08, 09 외부 및 내부 연결을 가지는 변수와 함수 식별자는 유일해야 한다.

소스코드 메트릭(Code Metrics) 개요

Comments powered by Disqus.

Trending Tags