안전하지 않은 임시 파일 생성
Insecure Temporary File Creation
설명
안전하지 않은 임시 파일 생성은 임시 파일을 생성할 때 race condition에 취약한 tempfile.mktemp() 함수를 사용했을때 발생하는 취약성입니다. Race Condition이 발생할 경우 공격자가 생성된 임시 파일을 악용하여 데이터를 탈취하거나 덮어쓸 수 있는 위험이 있습니다.
잠재적 영향
데이터 유출: 공격자가 임시 파일에 접근하여 민감한 정보를 탈취할 수 있습니다.
데이터 변조: 공격자가 임시 파일을 덮어써서 데이터를 변조할 수 있습니다.
권한 상승: 공격자가 임시 파일을 조작하여 권한을 상승시킬 수 있습니다.
해결 방법
안전한 임시 파일 생성:
tempfile.mkstemp()또는tempfile.NamedTemporaryFile()함수를 사용하여 안전하게 임시 파일을 생성합니다.임시 파일 접근 제한: 임시 파일의 접근 권한을 적절히 설정하여 보안을 강화합니다.
임시 파일 사용 후 삭제: 임시 파일 사용 후 즉시 삭제하여 불필요한 노출을 방지합니다.
취약한 코드 및 안전한 코드 예시
취약한 코드
# Unsafe temporary file creation
import tempfile
filename = tempfile.mktemp() # Noncompliant
tmp_file = open(filename, "w+")안전한 코드
tempfile.mkstemp 활용
tempfile.NamedTemporaryFile 활용
설명:
취약한 코드:
tempfile.mktemp()를 사용하여 임시 파일을 생성하면, 파일이 생성되는 동안의 시간차를 악용하여 다른 프로세스가 파일을 덮어쓸 수 있습니다.안전한 코드:
tempfile.mkstemp()또는tempfile.NamedTemporaryFile()을 사용하여 임시 파일을 안전하게 생성할 수 있습니다. 추가로tempfile.NamedTemporaryFile(delete=True)을 사용하여 파일이 안전하게 생성되고 자동으로 삭제되도록 할수도 있습니다.
참조
OWASP: Insecure Temporary File
Last updated