1. 입력 데이터 검증 및 표현 (15개)
사용자가 입력한 값에 대한 검증 과정 및 데이터 자료형에 대한 오용으로 인해 발생하는 보안 취약점입니다. 주로 외부에서 제공되는 데이터를 신뢰하지 않고 검증 없이 사용하는 경우에 발생할 수 있습니다.
- SQL 삽입 (SQL Injection)
 
- 크로스사이트 스크립트 (XSS, Cross-Site Scripting)
 
- 크로스사이트 요청 위조 (CSRF, Cross-Site Request Forgery)
 
- Format String Bug (포맷 스트링 버그)
 
- 버퍼 오버플로우 (Buffer Overflow)
 
- 위험한 형식 파일 업로드 (Dangerous File Upload)
 
- 경로 조작 및 자원 삽입 (Path Manipulation and Resource Injection)
 
- 정수형 오버플로우 및 언더플로우 (Integer Overflow and Underflow)
 
- 명령어 삽입 (Command Injection)
 
- LDAP 삽입 (LDAP Injection)
 
- XQuery 삽입 (XQuery Injection)
 
- XPath 삽입 (XPath Injection)
 
- HTTP 응답 분할 (HTTP Response Splitting)
 
- 개발 코드 및 설정정보 노출 (Disclosure of Development Code and Configuration Information)
 
- 위험한 URL 리다이렉션 (Dangerous URL Redirection)
 
2. API 악용 (2개)
API 사용 시, 잘못된 방법으로 호출하거나, 의존적인 보안 결정을 내리는 경우 발생하는 보안 취약점입니다.
- DNS lookup에 의존한 보안 결정 (Security Decision Based on DNS Lookup)
 
- 취약한 API 사용 (Use of Vulnerable or Deprecated API)
 
3. 보안 기능 (16개)
인증, 접근 제어, 암호화 등 기본적인 보안 기능의 잘못된 구현으로 발생하는 취약점입니다.
- 중요 정보 평문 저장 (Storing Sensitive Information in Plain Text)
 
- 중요 정보 평문 전송 (Transmission of Sensitive Information in Plain Text)
 
- 하드코딩된 비밀번호 (Hardcoded Password)
 
- 하드코딩된 암호화 키 (Hardcoded Encryption Key)
 
- 충분하지 않은 키 길이 사용 (Use of Insufficient Key Length)
 
- 부적절한 암호화 알고리즘 사용 (Use of Inappropriate Cryptographic Algorithm)
 
- 취약한 암호화 방식 사용 (Use of Weak Cryptographic Mechanism)
 
- 인증 우회 (Authentication Bypass)
 
- 부적절한 인증 처리 (Improper Authentication Handling)
 
- 약한 비밀번호 정책 (Weak Password Policy)
 
- 취약한 접근 제어 (Improper Access Control)
 
- 세션 고정 (Session Fixation)
 
- 세션 탈취 (Session Hijacking)
 
- 중복된 인증 정보 사용 (Reuse of Authentication Credentials)
 
- 부적절한 세션 관리 (Improper Session Management)
 
- 인증 정보 노출 (Exposure of Authentication Information)
 
4. 시간 및 상태 (2개)
멀티프로세스나 멀티스레드 환경에서 시간 및 상태 관리의 실패로 발생하는 취약점입니다.
- 레이스 컨디션 (Race Condition)
 
- 종료되지 않는 반복문 또는 재귀 함수 (Endless Loop or Recursive Function Without Termination)
 
5. 에러 처리 (3개)
소프트웨어가 예외 상황을 적절히 처리하지 않거나, 오류 메시지를 통해 민감한 정보를 노출할 때 발생하는 보안 취약점입니다.
- 오류 메시지를 통한 정보 노출 (Information Exposure Through Error Messages)
 
- 오류 상황 대응 부재 (Lack of Response to Error Situations)
 
- 부적절한 예외 처리 (Improper Exception Handling)
 
6. 코드 품질 (4개)
코드의 안정성과 신뢰성을 저하시킬 수 있는 코드 품질 문제로 인해 발생하는 취약점입니다.
- Null Pointer 역참조 (Null Pointer Dereference)
 
- 부적절한 자원 해제 (Improper Resource Release)
 
- 해제된 자원 사용 (Use After Free)
 
- 초기화되지 않은 변수 사용 (Use of Uninitialized Variables)
 
7. 캡슐화 (5개)
캡슐화 원칙을 위반하여 발생하는 취약점으로, 시스템 내부 정보를 외부에서 접근하거나 조작할 수 있게 만드는 경우 발생합니다.
- 잘못된 세션에 의한 데이터 정보 노출 (Information Exposure Through Misused Sessions)
 
- 제거되지 않고 남은 디버그 코드 (Debug Code Not Removed)
 
- 시스템 데이터 정보 노출 (System Data Information Exposure)
 
- Public 메소드로부터 반환된 Private 배열 (Private Array Returned from Public Method)
 
- Private 배열에 Public 데이터 할당 (Public Data Assigned to Private Array)
 
이러한 소프트웨어 보안 취약점을 방지하기 위해서는 철저한 입력 검증, 안전한 API 사용, 적절한 보안 기능 구현, 안정적인 코드 작성, 올바른 에러 처리와 캡슐화 원칙 준수가 필요합니다.