잘못된 권한 관리

Improper Privilege Management

설명

제품이 적절하게 권한을 할당, 수정, 추적 또는 점검하지 않아 예기치 않은 제어 영역을 형성하는 취약점입니다.

잠재적 영향

  • 권한 상승 (Gain Privileges) 또는 신분 도용 (Assume Identity): 공격자가 시스템 내에서 부적절한 권한을 가지게 되어, 승인이 필요 없는 작업을 수행하거나 다른 사용자의 신분으로 행동할 수 있는 보안 취약점입니다.

해결 방법

  1. 최소 권한 원칙을 준수하여 사용자 및 프로세스에 필요한 최소한의 권한만 부여합니다.

  2. 역할 기반 접근 제어 (RBAC)를 사용하여 권한을 관리합니다.

  3. 권한 수정을 트래킹하는 로그를 유지하고 주기적으로 점검합니다.

  4. 권한 변경이 필요한 경우 반드시 검증된 프로세스를 통해 승인받아야 합니다.

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

취약한 코드

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

안전한 코드

설명:

  • 취약한 코드: 위험한 점은 사용자가 'USER' 역할만 있어도 관리자 작업을 수행할 수 있게 됩니다. 이는 권한 관리에서의 중요한 실수이며, 사용자가 부적절한 권한을 가질 위험성을 높입니다.

  • 안전한 코드: 이 코드에서는 'ADMIN' 역할을 가진 사용자만이 관리자 작업을 할 수 있도록 제한하여 권한을 적절하게 관리합니다. 이를 통해 권한 남용과 부적절한 액세스를 방지할 수 있습니다.

관련 CVE

참조

Last updated