잘못된 권한 부여

Incorrect Authorization

설명

제품이 리소스 접근이나 행동 수행 시 권한 검사를 하지만 정확하게 수행되지 않아 발생하는 문제입니다.

잠재적 영향

  • Application Data Reading (애플리케이션 데이터 읽기): 공격자가 부적절하게 제한된 데이터 저장소에 접근하여 애플리케이션 데이터를 읽을 수 있는 취약점

  • File System Access (파일 시스템 접근): 공격자가 파일이나 디렉터리를 무단으로 읽거나 수정할 수 있는 취약점

  • Privilege Escalation (권한 상승): 공격자가 잘못된 권한 검사를 통해 불법적으로 권한을 상승할 수 있는 취약점

  • Unauthorized Code Execution (무단 코드 실행): 공격자가 권한을 남용하여 승인되지 않은 명령이나 코드를 실행할 수 있는 취약점

  • Denial of Service (서비스 거부): 시스템 자원을 남용하여 서비스를 거부 상태로 만들 수 있는 취약점

해결 방법

  • 접근을 제어할 모든 리소스 및 기능에 대해 올바른 권한 검사를 수행합니다.

  • Spring Security와 같은 인증 및 권한 부여 프레임워크를 사용하여, 민감한 리소스에 대한 접근 제어의 구현을 단순화합니다.

  • 코드 리뷰와 테스트를 통해 누락된 권한 검사를 발견하고 보완합니다.

취약한 코드 및 안전한 코드 예시

취약한 코드

안전한 코드

설명:

  • 취약한 코드: 권한에 대한 검사가 없으므로, 누구나 가지고 있는 접근 권한만으로 민감한 관리자 데이터를 요청하여 볼 수 있는 위험이 있습니다.

  • 안전한 코드: @PreAuthorize 어노테이션과 Spring Security를 사용하여, ADMIN 권한을 소유한 사용자만이 /admin/data 엔드포인트에 접근할 수 있도록 제한함으로써, 권한 검사를 바르게 수행하고 있습니다.

관련 CVE

참조

Last updated