CWE(Common Weakness Enumeration)
SANS와 미국방성 산하 MITRE 그리고 그 외 미국 및 유럽의 여러 소프트웨어 보안 전문가에 의해
CWE/SANS TOP 25 라는 이름으로 소프트웨어 개발자가 가장 범하기 쉬운 코드 취약점에 대해 발표된 것이다.
740여 가지의 다양한 언어에 대한 취약점을 권고하고 관리하고 있는 데이터베이스이다.
OWASP TOP 10과 매우 흡사한 내용들을 담고 있지만, 오류 유형 별로 분류해 놓고 OWASP의 내용보다
좀더 구체적인 분류가 되어있다.
3가지로 분류되며, [ ]의 숫자는 순위, CWE-??의 숫자는 ID(식별자)를 뜻한다.
순위는 확산된 정도, 중요성, 조정점수를 포함하여 해당 취약점에 부여된 개별적인 평가 및 점수에 대한 요약이며,
식별자는.. 그냥 숫자 인 듯 하다.
개별 구성요소, 모듈, 프로그램, 프로세스, 스레드 또는 시스템 간에 안전하지 않은 방법으로 데이터가 송수신 되는 방법과 관련있는 것들이다.
OWASP TOP 10의 상위 층 순위 내용들이 주로 포진되어 있다.
[1] CWE-89 : SQL 명령에 사용된 특별한 엘리먼트를 무효화 하지 않는 것 (SQL인젝션)
[2] CWE-78 : OS 명령에 사용된 특별한 엘리먼트를 무효화 하지 않는 것 (OS인젝션)
[4] CWE-79 : 웹 페이지 생성 도중 입력 값을 무효화하지 않는 것 (XSS)
[9] CWE-434 : 위험한 유형의 파일 업로드를 제한하지 않는 것
[12] CWE-352 : 사이트 간 요청 위조 (CSRF)
[22] CWE-601 : 신뢰할 수 없는 사이트로 URL 접속지 변경하는 것 (개방적인 리다이렉트)
2. 위험한 자원 관리
이 유형에 해당되는 취약점은 소프트웨어가 동작 시에 시스템 자원에서 중요한 부분을 적절하게 생성, 사용, 이전 그리고 페기 하지 않는 부분에서 비롯된 취약점에 대해 분류 해 놓은 것이다.
[3] CWE-120 : 입력의 크기를 확인하지 않고 버퍼에 복사하는 것 (버퍼 오버플로우)
[13] CWE-22 : 금지된 디렉토리에 접근을 제한하지 않는 것 (경로 추적)
[14] CWE-494 : 무결성 검사 없이 코드 다운로드하는 것
[16] CWE-829 : 신뢰할 수 없는 제어영역에서 온 기능을 포함하는 것
[18] CWE-676 : 잠재적으로 위험한 함수를 사용하는 것
[20] CWE-131 : 버퍼 크기 잘못 계산하는 것
[23] CWE-134 : 형식 문자열 (포맷 스트링)을 통제하지 않는 것
[24] CWE-190 : 정수 오버플로우 또는 랩어라운드
이 유형의 취약점은 잘못된 방어 기법을 사용하여 잘못 사용되거나 쉽게 무너지는 방어에 대해 분류한 것이다.
[5] CWE-306 : 핵심 기능에 대해서 인증을 누락하는 것
[6] CWE-862 : 인가 기능을 누락하는 것
[7] CWE-798 : 인증 데이터를 코드에 직접 기록하는 것
[8] CWE-311 : 민감한 데이터에 암호화 누락하는 것
[10] CWE-807 : 신뢰할 수 없는 입력 정보에 의존하여 보안성 결정하는 것
[11] CWE-250 : 불필요한 권한으로 실행하는 것
[15] CWE-863 : 올바르지 않은 인가
[17] CWE-732 : 핵심 자원에 잘못된 권한을 할당하는 것
[19] CWE-327 : 해독되었거나 위험한 암호화 알고리즘을 사용하는 것
[21] CWE-307 : 과도한 인증 시도를 제한하지 않는 것
[25] CWE-759 : 솔트 없이 일방향 해쉬를 사용하는 것
'IT 그리고 정보보안 > Knowledge base' 카테고리의 다른 글
안전행정부 시큐어코딩 43개 기준 (0) | 2021.04.16 |
---|---|
SQL Injection 기초 (0) | 2021.04.16 |
OWASP top 10 (0) | 2021.04.16 |
SQL (Structured Query Language) (0) | 2021.04.16 |
HTTP 쿠키 (Cookie) & 세션 (Session) (0) | 2021.04.16 |