Post

OWASP TOP 10

OWASP TOP 10

OWASP(Opensource Web Application Security Projcet)는 가장 큰 오픈소스 웹 애플리케이션 보안 프로젝트로 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션의 취약점(OWASP TOP 10)을 발표한다.

2025년도 상반기에 새로운 TOP 10을 발표할 예정이며, 현재로 가장 최신 TOP 10은 2021년도에 나온 버전이다. 세부 내용은 아래와 같다.

A01:2021-취약한 접근 제어

사용자가 권한에서 벗어난 행동을 할 수 없게 정책을 만들고 실행하는 기능이 접근제어이다.
이러한 접근 제어를 취약하게 만들면 주어진 권한에서 벗어나 행동 할수 있기 때문에 문제가 생긴다.

예시

  • CRUD에 대한 접근 제어가 누락된 경우 (데이터 사용에 대한 권한 검증 누락이라던지)
  • 파라미터나 쿠키를 조작해 다른 이의 권한을 사용하는 경우
  • 인증되지 않은 사용자가 인증이 필요한 기능을 사용하는 경우

A02:2021-암호화 실패

암호화에 오류가 있거나 미흡한 부분이 있는 경우이다. 이러한 암호화가 되어있는 데이터는 대부분 민감 데이터인데
암호화가 취약하면 민감 데이터 노출로 이어지게 된다.

예시

  • 데이터가 전송구간에서 평문으로 전송되는 경우
  • 취약한 암호화 알고리즘을 사용하는 경우
  • 암호키 관리가 미흡한 경우(하드코딩 등)

A03:2021-인젝션

사용자가 전달하는 데이터를 신뢰할 수 없는 데이터로 조작해서 서버측에서 명령어나 쿼리문의 일부로 인식하게 하는 취약점이다.

예시

  • SQL, NoSQL Injection
  • XSS
  • OS Command Injection

A04:2021-안전하지 않은 설계

코드 구현 단계에 앞서 기획과 설계 단에서 발생하는 보안 결함을 말한다.

A05:2021-보안 설정 오류

애플리케이션을 설치하거나 업데이트 할때 보안성을 고려하지 않은 설정으로 인해 발생하는 취약점이다.

예시

  • 불필요한 기능을 활성화했거나 설치해서 발생하는 취약점(불 필요한 포트, 불 필요한 페이지)
  • 기본 관리자 계정 및 비밀번호를 사용
  • 에러 페이지로 세부적인 에러정보 노출
  • 서버 OS, 프레임워크, 라이브러리, 데이터베이스 등의 보안 설정을 누락

A06:2021-취약하고 오래된 구성 요소

취약한 버전 혹은 기술 지원 중단 상태인 소프트웨어를 사용했을 때 발생 할 수 있는 모든 보안 위협이다.
서비스를 구성하는 모든 요소가 해당된다. (OS, DB, Appliaction, API, Library 등)

예시

  • 지원 종료된 OS
  • 이미 알려진 취약점 버전의 어플리케이션
  • 이미 알려진 취약점 버전의 라이브러리

A07:2021-식별 및 인증 실패

사용자 식별 및 인증에 실패하는 경우이다. 이는 취약한 인증이 포함되는 내용이다.

예시

  • 취약한 패스워드
  • URL에 인증 세션 ID가 노출되는 경우
  • 새로운 로그인시 기존의 세션 ID를 재 사용하는 경우

A08:2021-소프트웨어 및 데이터 무결성 실패

어플리케이션이 신뢰할 수 없는 소스, 저장소 등에 의존하는 경우 발생한다. 이전에 NPM에 기존에 사용되던 패키지 이름과 비슷하게 만들어서 공급자 공격을 노리던 것과 Log4j 사태도 해당 취약점에 속한다.

예시

  • 라이브러리나 모듈에 대한 무결성 검증이 없는 경우
  • 업데이트 공급망에 대한 검증이 없을 경우

A09:2021-보안 로깅 및 모니터링 실패

적절한 로깅과 모니터링이 없어서 공격을 감지하고 대응할 수 없는 경우이다.
공격 예방뿐만 아니라 발생 감지 및 사후 대응까지 포함하는 내용이다.

예시

  • 로그인, 인증 실패 등에 로깅이 없는 경우
  • 로그에 대한 백업 절차가 없을 경우
  • 알아 보기 힘든 경우의 로깅을 하는 경우

A10:2021-서버 사이드 요청 위조

어플리케이션이 사용자 제공 데이터를 적절한 검증 없이 로컬 및 원격 리소스를 가져와서 취약점이 발생하는 경우이다.

예시

  • 서버가 적절한 검증 없이 사용자 요청을 로컬 혹은 원격 리소스에 접근하게 하는 경우

참고자료

This post is licensed under CC BY 4.0 by the author.