OWASP Top 10은 웹 애플리케이션의 가장 중요한 보안 취약점을 분류한 목록입니다.
아래는 2021년 기준 최신 Top 10을 간략히 정리한 내용입니다.(2025년에 업데이트 될 예정이라고 함)
OWASP: https://owasp.org/www-project-top-ten/
![업로드중..]()
A01: 접근 통제 실패 (Broken Access Control)
- 설명: 권한 없는 사용자가 데이터 접근 또는 수정이 가능.
- 예시:
- URL 매개변수 조작으로 민감 데이터 접근.
- 관리자 권한이 올바르게 제한되지 않음.
- 예방 방법:
- 역할 기반 접근 제어(RBAC) 적용.
- 강력한 접근 제어 정책 설계 및 테스트.
A02: 암호화 실패 (Cryptographic Failures)
- 설명: 암호화 관련 취약점으로 민감 데이터 노출 위험.
- 예시:
- HTTPS가 아닌 HTTP 사용.
- 오래된 암호화 알고리즘(MD5, SHA1) 사용.
- 예방 방법:
- 최신 암호화 표준(TLS 1.3 등) 사용.
- 데이터 최소화 및 불필요한 데이터 삭제.
A03: 인젝션 (Injection)
- 설명: 악성 데이터를 주입하여 명령 실행.
- 예시:
- SQL 인젝션으로 데이터베이스 탈취.
- 크로스 사이트 스크립팅(XSS) 공격.
- 예방 방법:
- 사용자 입력값 검증 및 정규화.
- 준비된 문(statement) 사용.
A04: 설계 결함 (Insecure Design)
- 설명: 설계 단계에서 보안이 충분히 고려되지 않음.
- 예시:
- 민감 데이터 보호 설계 미흡.
- 위협 모델링 미실행.
- 예방 방법:
- 보안 설계 패턴 및 원칙 준수.
- 위협 모델링을 설계 단계에서 실행.
A05: 보안 구성 오류 (Security Misconfiguration)
- 설명: 잘못된 소프트웨어 설정으로 발생하는 취약점.
- 예시:
- 디폴트 설정 사용.
- 불필요한 디버깅 정보 노출.
- 예방 방법:
- 기본 설정 변경 및 불필요한 서비스 비활성화.
- 정기적인 구성 감사 수행.
A06: 취약하거나 오래된 구성 요소 (Vulnerable and Outdated Components)
- 설명: 오래된 또는 알려진 취약점이 있는 소프트웨어 구성 요소 사용.
- 예시:
- 지원 종료된 라이브러리 사용.
- 외부 의존성을 업데이트하지 않음.
- 예방 방법:
- 최신 보안 패치를 정기적으로 적용.
- 신뢰할 수 있는 소프트웨어 저장소만 사용.
A07: 인증 및 식별 실패 (Identification and Authentication Failures)
- 설명: 약한 비밀번호 정책, 취약한 인증 방식 등이 포함됨.
- 예시:
- 기본 인증 정보 사용.
- 비밀번호 재사용 공격.
- 예방 방법:
- 다중 인증(MFA) 사용.
- 강력한 비밀번호 정책 구현.
A08: 소프트웨어 및 데이터 무결성 실패 (Software and Data Integrity Failures)
- 설명: 업데이트, 데이터, CI/CD 파이프라인 무결성 검증 부족.
- 예시:
- 서명되지 않은 업데이트 사용.
- 외부에서 제공된 코드 실행.
- 예방 방법:
- 코드 무결성을 검증하는 툴 사용(예: OWASP Dependency Check).
- 안전한 CI/CD 파이프라인 설정.
A09: 보안 로깅 및 모니터링 실패 (Security Logging and Monitoring Failures)
- 설명: 보안 사고를 탐지하거나 대응하지 못하는 문제.
- 예시:
- 중요한 이벤트의 로깅 누락.
- 침입 탐지 시스템 미비.
- 예방 방법:
- 적절한 로그 수집 및 분석 시스템 구축.
- 경고 알림과 모니터링을 자동화.
A10: 서버사이드 요청 위조 (Server-Side Request Forgery, SSRF)
- 설명: 공격자가 서버를 통해 임의의 외부 요청을 전송하도록 조작.
- 예시:
- 예방 방법:
- 외부 요청을 허용하지 않는 기본 설정 사용.
- 요청의 유효성을 철저히 검증.