권한 누락
Missing Authorization
설명
권한 누락은 사용자가 리소스에 접근하거나 특정 작업을 수행할 때 필수적인 권한 검사를 수행하지 않는 경우 발생하는 취약점입니다.
잠재적 영향
애플리케이션 데이터 읽기 및 쓰기 (애플리케이션 데이터 읽기 및 쓰기): 공격자가 제한되지 않은 데이터 저장소에 직접 접근하거나 충분히 보호되지 않은 기능에 접근하여 데이터를 읽거나 수정할 수 있습니다.
권한 상승 및 보호 메커니즘 우회 (권한 상승 및 보호 메커니즘 우회): 공격자가 권한이 필요한 기능에 접근하거나 중요한 데이터를 수정 또는 읽음으로써 권한을 얻을 수 있습니다.
서비스 거부 공격 (서비스 거부 공격): 공격자가 시스템 리소스에 무단 접근하여 리소스를 과다하게 소비함으로써 서비스 거부 상태를 초래할 수 있습니다.
해결 방법
모든 사용자 요청에 대해 필수적인 권한 검사를 수행하세요.
권한 검사가 필요한 모든 엔드포인트에 Security 설정을 적용하세요.
Spring Security와 같은 인증 프레임워크를 사용하여 인증 및 권한을 관리하세요.
취약한 코드 및 안전한 코드 예시
취약한 코드
@GetMapping("/admin")
public String getAdminPage() {
// 민감한 데이터 또는 관리자 전용 기능
return "admin-page";
}안전한 코드
설명:
취약한 코드: 비권장 코드에서는 '/admin' 엔드포인트에 접근하기 위한 권한 검사가 없습니다. 모든 사용자가 이 엔드포인트에 접근할 수 있습니다.
안전한 코드: 권장 코드에서는 @PreAuthorize("hasRole('ROLE_ADMIN')") 어노테이션을 사용하여 관리자 권한이 있는 사용자만 '/admin' 엔드포인트에 접근할 수 있도록 설정합니다.
관련 CVE
참조
Last updated