공개 쓰기 가능 디렉터리 사용

공개 쓰기 가능 디렉터리 사용

설명

/tmp, /var/tmp, /dev/shm 같은 공개 쓰기 가능 디렉터리에 보안 관련 파일을 만들면 다른 사용자의 간섭을 받을 수 있습니다.

잠재적 영향

  • 심볼릭 링크 공격, 파일 교체, 경쟁 조건, 데이터 변조가 발생할 수 있습니다.

해결 방법

서비스 전용 디렉터리를 만들고 소유자와 접근 권한을 제한하거나, 원자적 임시 파일 API를 사용하세요. 경로 이름을 바꾸는 것만으로 권한이 설정되지는 않습니다.

예시

변경 전

c
FILE *f = fopen("/tmp/app.log", "w");

변경 후

c
FILE *f = fopen("/var/lib/app/app.log", "w");

설명:

  • 변경 전: 공개 쓰기 가능 디렉터리에 파일을 생성합니다.
  • 변경 후: /var/lib/app을 서비스가 소유하고 접근 권한이 제한된 디렉터리로 미리 구성해야 합니다. 기존 파일과 상위 디렉터리를 다른 사용자가 교체할 수 없어야 하며, 파일 권한과 열기 실패도 처리하세요.

참조