설명
/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을 서비스가 소유하고 접근 권한이 제한된 디렉터리로 미리 구성해야 합니다. 기존 파일과 상위 디렉터리를 다른 사용자가 교체할 수 없어야 하며, 파일 권한과 열기 실패도 처리하세요.