용어집 · 보안
OWASP Top 10
다른 이름: OWASP Top Ten, OWASP 톱 10, OWASP 10대 취약점, OWASP top 10 list
정의
OWASP가 발표하는 가장 치명적인 웹 애플리케이션 보안 위험 10개 범주 목록으로, 보안 테스트와 코드 리뷰의 범위를 정하는 데 널리 쓰입니다.
OWASP Top 10은 OWASP(Open Worldwide Application Security Project)가 취약점 데이터와 커뮤니티 의견을 바탕으로 가장 치명적인 웹 애플리케이션 보안 위험 범주에 순위를 매긴 문서입니다. 이는 인식 제고용 문서이지 완전한 표준이 아닙니다. 어디부터 살펴봐야 하는지를 알려 줄 뿐이며, 상세하고 테스트 가능한 요구사항은 OWASP ASVS(Application Security Verification Standard) 같은 프레임워크가 제공합니다.
2021년 목록
| ID | 범주 | 테스터가 확인하는 내용(예시) |
|---|---|---|
| A01 | 취약한 접근 제어(Broken Access Control) | 사용자 A가 사용자 B의 데이터를 읽거나 바꿀 수 있는가? 일반 사용자가 관리자 엔드포인트를 호출할 수 있는가? |
| A02 | 암호화 실패(Cryptographic Failures) | 평문 HTTP로 전송되는 민감 데이터, 약한 비밀번호 해싱, 응답에 포함된 시크릿 |
| A03 | 인젝션(Injection) | SQL, 명령어, NoSQL 인젝션. 크로스 사이트 스크립팅도 여기에 포함됩니다 |
| A04 | 안전하지 않은 설계(Insecure Design) | 쿠폰 무제한 재사용처럼 비즈니스 로직 제한이 빠진 경우 |
| A05 | 보안 설정 오류(Security Misconfiguration) | 기본 자격 증명, 장황한 스택 트레이스, 공개된 클라우드 스토리지, 누락된 헤더 |
| A06 | 취약하고 오래된 구성 요소(Vulnerable and Outdated Components) | 알려진 CVE가 있는 의존성 |
| A07 | 식별 및 인증 실패(Identification and Authentication Failures) | 허술한 세션 처리, 무차별 대입 방어 부재, 결함 있는 비밀번호 재설정 |
| A08 | 소프트웨어 및 데이터 무결성 실패(Software and Data Integrity Failures) | 서명되지 않은 업데이트, 안전하지 않은 역직렬화, 신뢰할 수 없는 CI/CD 입력 |
| A09 | 보안 로깅 및 모니터링 실패(Security Logging and Monitoring Failures) | 로그인 실패와 접근 거부가 기록되거나 알림으로 전달되지 않음 |
| A10 | 서버 측 요청 위조(SSRF) | 서버가 내부 주소를 요청하게 만드는 URL 파라미터 |
OWASP는 몇 년마다 목록을 갱신합니다. 순위와 그룹 구성은 버전마다 달라지므로, 보고서에 범주 번호를 인용하기 전에 owasp.org에서 최신판을 확인하십시오.
테스터의 활용법
- 범위 설정. 각 범주를 우리 애플리케이션에 맞는 구체적인 점검 항목으로 연결한 다음, 어떤 것을 자동화하고 어떤 것을 수동으로 다루며 어떤 것을 전문 모의 해킹(침투 테스트)에 맡길지 결정합니다.
- 적합한 곳은 자동화. 접근 제어 검사(사용자 두 명으로 ID를 바꿔 요청하고
403또는404를 기대)와 의존성 스캔은 CI에서 잘 돌아갑니다. OWASP ZAP 같은 동적 스캐너는 스테이징 환경을 대상으로 실행할 수 있습니다.
흔한 실수
목록을 체크리스트로 여겨 모두 체크하면 “안전하다”고 생각하는 것, 그리고 이 목록을 API용과 LLM 애플리케이션용으로 따로 발표된 OWASP Top 10과 혼동하는 것입니다. 그 목록들은 범주가 서로 다릅니다.
본인이 소유했거나 서면으로 테스트 허가를 받은 시스템만 테스트하십시오.