The Open Web Application Security Project Top 10 (OWASP Top 10)

웹 애플리케이션의 가장 심각한 보안 위험 10가지를 정리한 보고서.
이 프로젝트는 전 세계 보안 전문가들의 연구와 실제 데이터를 기반으로 주기적으로 업데이트된다.

주요 특징:

목적:

중요성:

2021 주요 변경사항:

2021 OWASP Top 10

취약점 분석 및 대응 방안 상세 가이드

항목주요 취약점방지 방법테스트 방법테스트 도구
A01: 접근 제어 취약점• 인증 우회
• 권한 상승
• 강제 탐색
• 최소 권한 원칙 적용
• 역할 기반 접근 제어 구현
• 서버 측 접근 제어 강화
• 권한 없는 사용자로 접근 시도
• URL 조작을 통한 우회 시도
• 권한 상승 시도
• OWASP ZAP
• Burp Suite
• Acunetix
A02: 암호화 실패• 취약한 암호화 알고리즘 사용
• 평문 데이터 전송
• 하드코딩된 암호
• 강력한 암호화 알고리즘 사용
• 모든 민감 데이터 암호화
• 안전한 키 관리
• 암호화 알고리즘 확인
• 데이터 전송 중 암호화 확인
• 저장된 데이터 암호화 확인
• Wireshark
• OpenSSL
• Qualys SSL Labs
A03: 인젝션• SQL 인젝션
• OS 명령어 인젝션
• XSS
• 입력값 검증 및 살균
• 매개변수화된 쿼리 사용
• ORM 프레임워크 활용
• 다양한 인젝션 페이로드 테스트
• 동적 및 정적 코드 분석
• 자동화된 스캔 도구 사용
• SQLmap
• OWASP ZAP
• Acunetix
A04: 안전하지 않은 설계• 부적절한 인증 제어
• 입력값 검증 부재
• 안전하지 않은 자격 증명 저장
• 보안을 고려한 설계 패턴 적용
• 위협 모델링 수행
• 정기적인 보안 코드 리뷰
• 설계 문서 검토
• 위협 모델 분석
• 보안 요구사항 검증
• Microsoft Threat Modeling Tool
• OWASP Threat Dragon
A05: 보안 설정 오류• 기본 계정/비밀번호 사용
• 불필요한 기능 활성화
• 상세한 에러 메시지 노출
• 보안 설정 표준화
• 최소 기능만 활성화
• 자동화된 설정 관리 도구 활용
• 기본 설정 확인
• 불필요한 기능 점검
• 에러 메시지 노출 확인
• Nessus
• OpenVAS
• Nikto
A06: 취약하고 오래된 구성요소• 알려진 취약점이 있는 라이브러리 사용
• 지원 종료된 소프트웨어 사용
• 정기적인 업데이트 및 패치
• 의존성 관리 도구 사용
• 불필요한 구성요소 제거
• 구성요소 버전 확인
• 알려진 취약점 데이터베이스 대조
• 자동화된 의존성 스캔
• OWASP Dependency-Check
• Snyk
• WhiteSource
A07: 식별 및 인증 실패• 약한 비밀번호 정책
• 부적절한 세션 관리
• 다중 인증 부재
• 강력한 비밀번호 정책 적용
• 안전한 세션 관리 구현
• 다중 인증(MFA) 구현
• 비밀번호 정책 테스트
• 세션 관리 취약점 확인
• 인증 우회 시도
• Hydra
• Burp Suite
• OWASP ZAP
A08: 소프트웨어 및 데이터 무결성 실패• 무결성 검사 부재
• 신뢰할 수 없는 소스의 데이터/코드 사용
• 무결성 검사 및 디지털 서명 사용
• 신뢰할 수 있는 저장소만 사용
• CI/CD 파이프라인 보안 강화
• 무결성 검사 메커니즘 점검
• 데이터/코드 소스 확인
• CI/CD 파이프라인 보안 점검
• GitGuardian
• Snyk
• SonarQube
A09: 보안 로깅 및 모니터링 실패• 중요 이벤트 로깅 부재
• 로그 데이터 무결성 부족
• 실시간 모니터링 부재
• 중요 이벤트에 대한 로깅 구현
• 로그 데이터 무결성 보장
• 실시간 모니터링 및 경고 시스템 구축
• 로깅 범위 및 품질 확인
• 로그 무결성 검증
• 모니터링/경고 시스템 점검
• ELK Stack
• Splunk
• Graylog
A10: 서버 측 요청 위조 (SSRF)• 내부 리소스에 대한 무단 접근
• 외부 서비스로의 악의적 요청
• 사용자 제공 URL에 대한 엄격한 검증
• 화이트리스트 기반 URL 필터링
• 네트워크 분리 및 세그먼테이션
• 내부 리소스 접근 시도
• 다양한 URL 스키마 테스트
• 에러 메시지를 통한 정보 노출 확인
• OWASP ZAP
• Burp Suite
• SSRFmap

취약점들을 예방하기 위한 핵심 원칙들

  1. 심층 방어 (Defense in Depth) 여러 계층의 보안 통제를 구현하여 하나의 방어책이 실패하더라도 다른 방어책이 보호할 수 있도록 합니다.
  2. 최소 권한 원칙 사용자와 프로세스에 필요한 최소한의 권한만을 부여합니다.
  3. 입력값 검증 모든 사용자 입력은 신뢰할 수 없다고 가정하고, 서버 측에서 철저히 검증합니다.
  4. 보안 모니터링 지속적인 모니터링과 로깅을 통해 보안 사고를 빠르게 감지하고 대응합니다.

참고 및 출처