과도하게 허용된 파일 권한 설정 (Overly Permissive File Permissions)

Incorrect Permission Assignment for Critical Resource

설명

애플리케이션이 파일 또는 디렉터리의 권한을 과도하게 허용하면, 공격자가 중요 파일을 읽거나 수정할 수 있는 보안 취약점이 발생할 수 있습니다. 특히, java.nio.file.Files.setPosixFilePermissions() 메서드를 사용할 때 적절한 권한을 설정하지 않으면 민감한 데이터가 노출될 수 있습니다.

잠재적 영향

  • 민감한 정보 노출: 공격자가 파일을 읽을 수 있으면 암호, API 키, 사용자 정보 등의 중요 데이터가 유출될 수 있습니다.

  • 파일 조작 및 삭제: 과도한 쓰기 권한(rw-rw-rw- 등)이 설정되면 공격자가 임의로 파일을 변경하거나 삭제할 수 있습니다.

  • 권한 상승: 악의적인 사용자가 중요한 실행 파일을 수정하여 악성 코드를 삽입할 수 있습니다.

해결 방법

  1. 최소 권한 원칙 적용

    • 파일 및 디렉터리에는 필요한 최소한의 권한만 부여합니다.

    • 기본적으로 파일 소유자만 접근 가능하도록 설정합니다(rw-------).

  2. 파일 권한을 명확하게 제한

    • java.nio.file.attribute.PosixFilePermissions.fromString("rw-------")를 사용하여 소유자만 읽고 쓸 수 있도록 설정합니다.

  3. 민감한 데이터가 포함된 파일 보호

    • 설정 파일, 로그 파일, 임시 파일 등이 외부에 노출되지 않도록 주의합니다.

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

취약한 코드

안전한 코드

설명:

  • 취약한 코드:

    • rw-rw-rw- 권한을 설정하여 모든 사용자가 파일을 읽고 쓸 수 있도록 허용.

  • 안전한 코드:

    • rw------- 권한을 설정하여 소유자만 접근 가능하도록 제한.

참조

Last updated