잘못된 권한 관리

Improper Privilege Management

설명

권한의 할당, 변경, 추적 또는 점검이 부적절하여 필요 이상의 접근이나 작업을 허용하는 문제입니다.

잠재적 영향

  • 공격자가 과도한 권한을 얻어 허용되지 않은 작업을 수행하거나 다른 사용자의 신분으로 행동할 수 있습니다.

해결 방법

  1. 최소 권한 원칙을 준수하여 사용자 및 프로세스에 필요한 최소한의 권한만 부여합니다.
  2. 역할 기반 접근 제어 (RBAC)를 사용하여 권한을 관리합니다.
  3. 권한 수정을 트래킹하는 로그를 유지하고 주기적으로 점검합니다.
  4. 권한 변경이 필요한 경우 반드시 검증된 프로세스를 통해 승인받아야 합니다.

@EnableMethodSecurity 등으로 메서드 보안을 활성화하고, Spring이 관리하는 객체의 보안 프록시를 통해 호출하는 구성을 전제로 합니다.

예시

변경 전

java
@PreAuthorize("hasRole('USER')")
public void performAdminTask() {
    // 관리자 작업 수행
}

변경 후

java
@PreAuthorize("hasRole('ADMIN')")
public void performAdminTask() {
    // 관리자 작업 수행
}

설명:

  • 변경 전: USER 역할만으로 관리자 작업을 실행할 수 있습니다.
  • 변경 후: 이 메서드의 접근을 ADMIN 역할로 제한합니다. 역할 자체도 적절한 사용자에게만 부여해야 합니다.

관련 CVE

참조