잘못된 권한 부여
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