사용자에게 허용된 권한 이상의 동작을 허용하거나, 범위 이상의 정보 열람 · 변조 · 유출 등을 가능하게 하는 시스템 설정 상의 취약점
컴퓨터 하드웨어 또는 소프트웨어 결함이나 체계, 설계 상의 취약점
다양한 언어 및 아키텍처, 디자인 설계, 코딩 등 개발 단계에서 발생 가능한 약점
- 소스 코드 보안 약점
- 소프트웨어 취약점으로 이어질 수 있는 오류 (잠재적 위험)
VIEW를 제외한 다른 약점들은 다른 유형의 약점과 1:N 관계를 가지는 그래프로 구성됨
ParentOf → ChildOf
: ParentOf가 ChildOf 취약점 포함할 수 있는 일반적인 결함
MemberOf → HasMember
: 소프트웨어 개발 관련 view에 포함된 category와의 관계 표현
CanPrecede → CanFollow
: 다른 약점과의 원인 결과
StartsChain → StartsWith
: 복잡하게 얽힌 약점 구조
PeerOf
: 다른 약점과의 유사성
CanAlsoBe
: 특정 환경, 상황에서 약점 발생 가능
Requires → RequireBy
: 약점이 발생하기 위한 필요 조건
Weaknesses in the 2023 CWE Top 25 Most Dangerous Software Weaknesses에 기술된 약점 위주로 정리
의도하지 않은 버퍼의 위치에 선택적으로 접근할 수 있는 약점
(ex: 음수 인덱스, 길이 초과, …)
CWE - CWE-787: Out-of-bounds Write (4.14)
CWE - CWE-125: Out-of-bounds Read (4.14)
스크립트 코드 삽입 ⇒ 개발자가 의도하지 않은 기능 동작
Reflected XSS (Non-Persistent)
웹의 지정된 파라미터 혹은 이메일로 보내는 URL로 공격자의 공격 코드 실행
Stored XSS (Persistent)
게시글 등의 형태로 악의적인 스크립트, 서버에 저장
⇒ 관리자가 접근하며 중요 데이터 접근
DOM-based XSS
SQL Query 검증 미흡으로 인한 공격자가 원하는 동작 실행
동적 할당된 메모리 관리 미흡으로 인한 약점
: 해제한 메모리를 다시 사용하려는 경우 발생 (C, C++)
CWE - CWE-416: Use After Free (4.14)
웹 애플리케이션이 구동 중인 서버에서 임의의 OS 명령을 수행하도록 하는 약점
⇒ Path Traversal, …
CWE - CWE-20: Improper Input Validation (4.14)
⇒ File Inclusion
CWE - CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') (4.14)
무결성 검증 실패 ⇒ 공격자의 요청 위조 ⇒ 데이터 노출, 코드 실행, …
CWE - CWE-352: Cross-Site Request Forgery (CSRF) (4.14)
CWE - CWE-434: Unrestricted Upload of File with Dangerous Type (4.14)
CWE - CWE-862: Missing Authorization (4.14)
CWE - CWE-476: NULL Pointer Dereference (4.14)
CWE - CWE-287: Improper Authentication (4.14)
Wraparound : MIN보다 더 작은 값 할당 ⇒ 매우 큰 값으로 인식
CWE - CWE-190: Integer Overflow or Wraparound (4.14)
공격 코드 삽입하여 직렬화
⇒ 역 직렬화 과정에서 변조된 데이터 삽입 ⇒ 공격
CWE - CWE-502: Deserialization of Untrusted Data (4.14)
사용자 입력을 조작해 임의의 명령 수행
작업 수행하는 메모리 버퍼에 대한 범위 제한 미흡
⇒ 경계 외부의 데이터 조작
CWE - CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer (4.14)
CWE - CWE-798: Use of Hard-coded Credentials (4.14)
서버에 위조된 요청 전달 ⇒ 서버 내부 자원 접근, 외부로 유출 및 오동작 발생
- ex:) 외부로 노출된 호스트 : 내부로 접근하기 위한 다리로 사용
CWE - CWE-918: Server-Side Request Forgery (SSRF) (4.14)
CWE - CWE-306: Missing Authentication for Critical Function (4.14)
두 코드가 동시에 실행될 수 있고, 두 코드 모두 동일한 데이터(공유 리소스)를 참조할 때 코드에 의해 의도하지 않은 동작을 일으키는 것
CWE - CWE-269: Improper Privilege Management (4.14)
서버로 보내는 코드의 일부에 외부의 입력 값 포함 ⇒ 코드 수정 가능
CWE - CWE-94: Improper Control of Generation of Code ('Code Injection') (4.14)
CWE - CWE-863: Incorrect Authorization (4.14)
CWE - CWE-276: Incorrect Default Permissions (4.14)
[1] 보안 취약점 관련 용어 (CCE, CVE, CWE), https://shuu.tistory.com/50
[2] 보안 취약점 관련 용어 (CCE, CVE, CWE, CVSS), https://feccle.tistory.com/162
[3] CWE 표기 방식 https://scribnote5.github.io/posts/CWE2/
[4] CWE 표기 방식 https://blog.naver.com/suresofttech/221238390435
[4] CVSS 계산기 https://www.first.org/cvss/calculator/4.0
[5] Memory Corruption, Logical Bug https://velog.io/@yosub1220/%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%95%B4%ED%82%B9-1-%EC%B7%A8%EC%95%BD%EC%A0%90%EC%9D%98-%EB%8C%80%ED%91%9C%EC%A0%81%EC%9D%B8-%EC%A2%85%EB%A5%98
[6] 2023 CWE Top 25 Most Dangerous S/W Weaknesses https://cwe.mitre.org/data/definitions/1425.html
[7] Race Condition https://m.blog.naver.com/ijoos/221604501739