기출 2025 OWASP

agnusdei·2025년 12월 22일

Information Security

목록 보기
85/96

OWASP (Open Web Application Security Project, 오픈 소스 웹 애플리케이션 보안 프로젝트)는 웹 소프트웨어의 보안을 개선하기 위해 활동하는 글로벌 비영리 단체입니다. 전 세계 보안 전문가들이 참여하여 보안 도구, 기술 표준, 교육 및 문서를 무료로 제공하며, 보안을 '기술'이 아닌 '프로세스'의 관점에서 접근하도록 돕습니다.

기술사적 관점에서 OWASP Top 10은 단순한 취약점 목록을 넘어, 현대적인 보안 프레임워크 설계와 거버넌스의 핵심 지표로 활용됩니다. 특히 현재(2025년) 기준으로 가장 최신 표준인 OWASP Top 10:2025의 주요 내용과 대응 방안을 상세히 설명합니다.


1. OWASP Top 10:2025 주요 목록 및 상세 설명

2025년 버전은 클라우드 네이티브 환경과 소프트웨어 공급망 보안, 그리고 비정상적인 시스템 동작에 대한 복원력을 강조하는 방향으로 개편되었습니다.

A01:2025 – Broken Access Control (취약한 접근 제어)

사용자가 자신의 권한을 벗어난 기능이나 데이터에 접근할 수 있는 상태입니다. 2021년에 이어 1위를 유지하고 있으며, 기존의 SSRF (Server-Side Request Forgery, 서버 측 요청 위조)가 이 범주에 통합되었습니다.

  • 시나리오: URL 파라미터의 ID 값을 변경하여 타인의 개인정보를 조회하거나, 권한 없는 사용자가 관리자 API(Application Programming Interface)를 호출하는 경우.
  • 대응방안: RBAC (Role-Based Access Control, 역할 기반 접근 제어)ABAC (Attribute-Based Access Control, 속성 기반 접근 제어) 구현, 기본 차단(Deny by Default) 원칙 적용.

A02:2025 – Security Misconfiguration (보안 설정 오류)

서버, 데이터베이스, 클라우드 인프라의 보안 설정이 적절하지 않거나 기본 설정 그대로 방치된 경우입니다. 인프라가 복잡해짐에 따라 순위가 상승했습니다.

  • 시나리오: 클라우드 스토리지(S3 등)의 권한이 Public으로 설정되어 있거나, 불필요한 포트 및 샘플 앱이 구동 중인 경우.
  • 대응방안: IaC (Infrastructure as Code, 코드형 인프라) 기반의 자동화된 보안 설정 검토, 불필요한 기능 제거(Hardening).

A03:2025 – Software Supply Chain Failures (소프트웨어 공급망 실패)

과거의 '취약한 구성 요소 사용'에서 확장된 개념으로, 오픈소스 라이브러리뿐만 아니라 CI/CD (Continuous Integration / Continuous Deployment, 지속적 통합 및 배포) 파이프라인 전체의 위협을 다룹니다.

  • 시나리오: 악성 코드가 포함된 오픈소스 패키지를 의존성(Dependency)으로 설치하거나, 빌드 서버의 탈취로 인해 오염된 바이너리가 배포되는 경우.
  • 대응방안: SBOM (Software Bill of Materials, 소프트웨어 자재 명세서) 관리, 서명된 코드만 배포, 주기적인 종속성 취약점 스캐닝.

A04:2025 – Cryptographic Failures (암호화 실패)

중요 데이터가 평문으로 저장/전송되거나, 취약한 암호 알고리즘을 사용하여 기밀성이 깨지는 경우입니다.

  • 시나리오: 암호화되지 않은 HTTP (HyperText Transfer Protocol)를 통한 로그인, MD5/SHA-1과 같은 취약한 해시 함수 사용.
  • 대응방안: 최신 TLS (Transport Layer Security) 적용, HSTS (HTTP Strict Transport Security) 강제, 강력한 암호 알고리즘(AES-256 등) 및 적절한 키 관리.

A05:2025 – Injection (주입 공격)

사용자 입력이 명령어나 쿼리의 일부로 해석되어 실행되는 공격입니다.

  • 시나리오: SQL (Structured Query Language) 주입을 통해 인증 없이 로그인하거나, OS(Operating System, 운영체제) 명령어를 실행하는 경우.
  • 대응방안: 파라미터화된 쿼리(Parameterized Queries) 사용, 서버 측 입력값 검증, 안전한 API(Application Programming Interface) 활용.

A06:2025 – Insecure Design (안전하지 않은 설계)

구현의 실수가 아닌 설계 단계에서의 보안 결함을 다룹니다. 위협 모델링의 부재가 원인입니다.

  • 시나리오: 비밀번호 복구 로직에서 본인 확인 절차가 미흡하거나, 과도한 정보 노출을 방지하는 설계가 없는 경우.
  • 대응방안: Threat Modeling (위협 모델링) 도입, Secure SDLC (Software Development Life Cycle, 보안 소프트웨어 개발 생명주기) 준수.

A07:2025 – Authentication Failures (인증 실패)

사용자 식별 및 세션 관리 체계가 취약하여 타인으로 위장할 수 있는 상태입니다.

  • 시나리오: 무차별 대입 공격(Brute-force) 허용, 취약한 암호 정책, 세션 타임아웃 미설정.
  • 대응방안: MFA (Multi-Factor Authentication, 다요소 인증) 필수 적용, 실패 횟수 제한(Lockout), 세션 ID 재생성 및 안전한 관리.

A08:2025 – Software or Data Integrity Failures (소프트웨어 및 데이터 무결성 실패)

코드나 데이터 아티팩트의 무결성이 검증되지 않아 신뢰할 수 없는 환경에서 수정된 데이터가 처리되는 경우입니다.

  • 시나리오: 안전하지 않은 Deserialization(역직렬화)을 통해 악의적인 객체가 생성되거나, 업데이트 서버가 변조되는 경우.
  • 대응방안: 디지털 서명을 통한 무결성 검증, 신뢰할 수 없는 데이터의 역직렬화 금지.

A09:2025 – Logging & Alerting Failures (로깅 및 경고 실패)

단순한 로깅 누락을 넘어, 침해 사고 발생 시 이를 즉시 탐지하고 대응할 수 있는 '경고(Alerting)' 체계의 부재를 강조합니다.

  • 시나리오: 공격자가 수일간 시스템을 공격해도 로그가 남지 않거나, 로그는 남았지만 담당자에게 알람이 가지 않아 대응이 늦어지는 경우.
  • 대응방안: SIEM (Security Information and Event Management, 보안 정보 및 이벤트 관리) 연동, 실시간 임계치 기반 알람 설정, 로그 위변조 방지.

A10:2025 – Mishandling of Exceptional Conditions (예외적 조건의 오처리)

2025년에 새롭게 추가된 항목으로, 에러 처리 미흡으로 인한 정보 노출이나 시스템 논리 결함을 다룹니다.

  • 시나리오: 시스템 오류 시 내부 DB 구조나 스택 트레이스(Stack Trace)를 사용자에게 그대로 보여주어 공격 힌트를 주는 경우.
  • 대응방안: 통합 에러 핸들링 메커니즘 구축, 사용자에게는 일반적인 에러 메시지만 노출, 상세 정보는 서버 로그에만 기록.

2. 대응을 위한 기술사적 제언 (Strategic Approach)

  1. Shift-Left Security: 보안을 개발 마지막 단계가 아닌 기획/설계 단계(Insecure Design 방어)부터 적용해야 합니다.
  2. DevSecOps의 내재화: 소프트웨어 공급망 보안(A03)에 대응하기 위해 파이프라인 단계마다 자동화된 보안 스캔(SAST/DAST)을 배치해야 합니다.
  3. Zero Trust Architecture (제로 트러스트 아키텍처): "절대 신뢰하지 말고 항상 검증하라"는 원칙에 따라 모든 접근 제어(A01)와 무결성 검증(A08)을 강화해야 합니다.
profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글