웹 애플리케이션 보안의 대표 기준인 OWASP Top 10 은 웹 애플리케이션 보안 위험을 다루는 가장 널리 알려진 표준입니다. 개발자, 보안 엔지니어, 비즈니스 책임자 모두를 위해 이 가이드에서 각 범주를 실제 사례, 탐지 기법, 개선 전략과 함께 설명합니다.
수백 개 조직의 데이터 분석, 커뮤니티 설문과 실제 침해 데이터를 토대로 웹 애플리케이션의 가장 중대한 보안 위험 순위를 정해 주기적으로 갱신하는 인식 제고 문서입니다. 다음 규정과 표준에서 참조합니다. PCI DSS, DORA, NIS2를 비롯한 여러 산업 표준입니다.
가장 흔한 취약점 1위로, 테스트한 애플리케이션의 94%에서 발견되었습니다.
/api/users/123/profile 을 /api/users/124/profile일반 사용자가 /admin/dashboard에 접근하는 경우이전 명칭은 “민감한 데이터 노출”이었으며, 근본 원인에 초점을 맞추도록 이름이 바뀌었습니다.
모든 구간에 HSTS와 HTTPS를 강제하십시오. AES-256, bcrypt/Argon2, SHA-256 이상을 사용하고 비밀값을 하드코딩하지 마십시오. Vault 또는 AWS Secrets Manager를 사용하고 저장 데이터를 암호화하며 TLS 1.0/1.1을 비활성화하십시오.
고전적인 웹 취약점이지만 20년이 지난 지금도 상위 3개 위험에 포함됩니다.
' OR 1=1 -- 및 이보다 훨씬 정교한 공격매개변수화 쿼리 를 모든 데이터베이스 작업에 사용하십시오. 허용 목록 기반 입력 검증, 문맥별 출력 인코딩, Content Security Policy 헤더, 최소 권한 데이터베이스 계정을 적용하고 ORM을 일관되게 사용하십시오.
구현 버그가 아니라 설계 단계의 결함을 다루는 새로운 범주입니다.
개선: 설계 단계에 위협 모델링(STRIDE, PASTA)을 통합하십시오. 안전한 설계 패턴을 사용하고 정상 사용 사례와 함께 악용 사례를 작성하십시오.
테스트한 애플리케이션의 90%에서 발견되었습니다.
반복 가능한 강화 절차를 마련하십시오. 불필요한 기능을 모두 제거하고 모든 보안 헤더를 구현하십시오. IaC로 설정 관리를 자동화하고 정기적으로 설정을 감사하며 클라우드에는 CSPM을 사용하십시오.
개선: 구성요소 목록(SBOM)을 유지하고 CVE 데이터베이스를 지속적으로 모니터링하십시오. 사용하지 않는 의존성을 제거하고 Dependabot/Renovate로 업데이트를 자동화하십시오.
MFA를 구현하십시오. 침해 비밀번호 데이터베이스 확인과 함께 강력한 비밀번호 정책을 적용하고 인증 엔드포인트에 속도 제한을 두십시오. 무작위 ID와 HTTPOnly/Secure 플래그를 사용하는 안전한 세션 관리를 구현하고 로그아웃 또는 비밀번호 변경 시 세션을 무효화하십시오.
개선: 모든 소프트웨어와 데이터에 디지털 서명을 적용하고 외부 리소스에는 Subresource Integrity(SRI)를 사용하십시오. 접근 통제와 서명으로 CI/CD를 보호하십시오. 안전하지 않은 역직렬화를 피하고 JSON을 사용하십시오.
침해를 식별하는 데 걸리는 평균 시간: 204일 (IBM 2024). 충분한 로깅이 없으면 공격자는 경보를 전혀 울리지 않은 채 지속성을 확보하고 데이터를 유출하며 장악 범위를 넓힐 수 있습니다.
개선: 모든 인증 이벤트, 접근 통제 실패, 입력 검증 실패를 기록하십시오. 타임스탬프, 사용자, IP, 작업 등 문맥을 포함하고 변조 방지 SIEM에 로그를 중앙화하십시오. 자동 경고를 구현하고 탐지 역량을 정기적으로 시험하십시오.
클라우드 네이티브 아키텍처에서 발생 빈도가 늘어 추가된 새로운 범주입니다.
http://169.254.169.254/ 에 접근사용자가 제공한 모든 URL을 서버에서 검증하십시오. 허용 도메인은 허용 목록으로 관리하고 사설 IP 대역(10.x, 172.16.x, 169.254.x, 127.x)을 차단하십시오. 불필요한 URL 스킴(file://, gopher://)을 비활성화하고 AWS에서 IMDSv2를 사용하며 URL 가져오기 서비스를 분리하십시오.
| OWASP 범주 | KENSAI 탐지 범위 |
|---|---|
| A01 취약한 접근 통제 | IDOR 테스트, 권한 우회, CORS 검사 |
| A02 암호화 실패 | TLS 분석, 헤더 검사, 암호화 검증 |
| A03 인젝션 | SQL, XSS, 명령어 인젝션, SSTI, 헤더 인젝션 |
| A04 안전하지 않은 설계 | 속도 제한, 예측 가능한 리소스, 로직 테스트 |
| A05 보안 설정 오류 | 헤더, 기본값, 정보 노출, HTTP 메서드 |
| A06 취약한 구성요소 | 기술 식별, 33만 2천 개 이상의 CVE 데이터베이스 |
| A07 인증 실패 | 기본 인증 정보, 세션 테스트, 쿠키 분석 |
| A08 무결성 실패 | SRI 검사, 역직렬화 테스트 |
| A09 로깅 실패 | 보안 헤더 분석, 오류 처리 검토 |
| A10 SSRF | 내부 엔드포인트 인젝션, 클라우드 메타데이터 테스트 |
취약한 접근 통제(A01) 입니다. 테스트한 애플리케이션의 94%에서 발견되었습니다. 특히 API와 SPA에서 권한 부여를 제대로 강제하지 못하는 사례가 널리 퍼지면서 5위에서 1위로 올라갔습니다.
OWASP Top 10 자체는 자율 표준입니다. 그러나 다음 규정에서 참조합니다. PCI DSS 는 OWASP Top 10 대응을 요구하고, NIS2 는 체계적인 취약점 관리를 요구하며, DORA 는 산업 표준 테스트를 참조합니다. 여러 공급업체 평가도 이를 요구하므로 실무에서는 사실상 필수입니다.
자동화된 DAST 도구는 대부분의 범주, 특히 인젝션(A03), 암호화 실패(A02), 설정 오류(A05), 취약한 구성요소(A06)를 효과적으로 탐지합니다. 안전하지 않은 설계(A04)와 로깅 실패(A09) 같은 범주는 수동 평가가 필요한 경우가 많습니다. 자동화 스캔으로 폭넓게 확인하고 수동 테스트로 깊이를 더하십시오.
3~4년마다 갱신됩니다. 주요 발표 연도는 2013년, 2017년, 2021년입니다. 각 개정판은 위협 환경 변화를 반영합니다. 2021년판은 안전하지 않은 설계(A04)와 SSRF(A10)를 도입하고 다른 범주를 재구성했습니다.
보안은 선택이 아닙니다.
🗡️ KENSAI 팀