본문 바로가기
INFORMATION SECURITY · FREE LEARNING정보보안 학습센터원리 → MASTER → 문제·복습 → MUST KNOW

파일 이름과 파일 내용은 다른 주장이다

정보보안의 원리 · 방향 6

© K-BOOKS · 무료 웹 열람용 콘텐츠입니다. 무단 복제·저장·인쇄·재배포를 제한합니다.

여덟 번째 발걸음파일 이름과 파일 내용은 다른 주장이다

이용자가 이력서 파일을 올립니다. 이름은 resume.pdf이고, 업로드 요청에는 PDF라는 형식 정보가 들어 있습니다. 이것만 보고 안전한 PDF라고 믿을 수 있을까요? 파일 이름과 요청 헤더는 이용자가 정할 수 있습니다. 실제 내용이 무엇인지, 어떤 프로그램으로 처리할지, 어디에 저장하고 누가 다시 읽을지를 함께 살펴야 합니다. 이 과정의 검증·저장·실행·권한 경계가 잘못되어 생기는 문제를 파일 업로드 취약점으로 살펴봅니다.

확장자는 파일을 구분하는 표지이지만 내용을 보증하지는 않습니다. MIME 형식과 파일 시작 부분의 표식을 확인하는 일도 각각 일부 근거입니다. 필요한 파일 종류를 허용 목록으로 정하고 내용 처리기를 적절히 제한하되, 한 가지 검사만으로 모든 악성 자료를 판별할 수 있다고 가정하지 않습니다. 이미지 변환이나 문서 미리보기 도구 자체도 신뢰할 수 없는 입력을 해석하는 프로그램입니다.

업로드 파일을 웹 서버의 실행 경로에 그대로 두면 단순 저장 기능이 서버 코드 실행으로 이어질 수 있습니다. 업로드 자료는 실행이 불필요한 저장 공간에 두고, 서버가 생성한 식별자와 이름으로 관리합니다. 다운로드는 식별자에 대응하는 자료를 찾아 해당 이용자의 접근 권한을 확인한 뒤 제공하는 구조로 설계할 수 있습니다. 저장 위치만 비공개여도 다운로드 기능의 인가가 빠지면 유출은 남습니다.

파일 경로를 외부 입력과 단순히 합치면 정해진 폴더 밖으로 벗어나는 경로 순회가 생길 수 있습니다. 상위 폴더를 나타내는 표현이나 절대 경로, 운영체제별 구분 문자와 링크 처리의 차이를 고려해야 합니다. 가능하면 임의 경로 자체를 입력으로 받지 말고 서버의 허용된 식별자와 내부 경로를 매핑합니다. 정규화 뒤 허용 경계 안에 있는지 확인하는 경우에도 검사와 실제 파일 열기 사이에 링크가 바뀌는 조건을 검토해야 합니다.

압축 파일에는 여러 항목의 경로가 들어 있습니다. 압축을 푸는 프로그램이 그 경로를 무조건 따라가면 목적 폴더 밖에 파일을 만들거나 기존 파일을 덮어쓸 수 있습니다. 항목별 경로와 링크를 확인하고, 압축을 푼 뒤의 전체 크기와 파일 수, 처리 시간을 제한합니다. 압축 파일의 전송 크기가 작다는 사실만으로 실제 처리 비용도 작다는 뜻은 아닙니다. 작은 압축 입력이 풀리면서 지나치게 큰 데이터나 처리량을 만드는 압축 폭탄도 이 차이를 이용합니다.

검사 단계와 공개 단계도 분리합니다. 검사 중인 파일이 곧바로 외부에서 내려받아지면 검사가 끝나기 전에 위험한 내용이 공개될 수 있습니다. 상태를 접수·검사·승인·거부처럼 관리하고 승인된 자료만 제공해야 합니다. 민감한 파일을 외부 검사 서비스에 보내는 경우에는 그 전송이 새로운 정보 제공이 된다는 점도 확인합니다. 도구를 사용한다는 이유로 데이터의 경계가 사라지지 않습니다.

함께 따라가기 · 영수증 업로드를 안전하게 처리한다

가상의 경비 처리 서비스에서 직원이 영수증 이미지를 올립니다.

  1. 접수할 때 이용자와 업무 권한, 허용한 파일 종류와 전송 크기를 확인합니다. 저장 이름은 서버가 정하고, 원래 이름은 화면에 표시할 자료로 별도 보관합니다.

  2. 검사·변환은 제한된 권한과 자원에서 수행합니다. 이미지 처리기의 성공 여부를 확인하고, 실패한 자료를 정상 영수증처럼 승인하지 않습니다. 임시 파일과 처리 결과의 연결도 기록합니다.

  3. 공개할 때 영수증 번호에 대한 인가를 다시 확인합니다. 읽을 때의 권한은 업로드 당시의 권한과 달라질 수 있으므로 현재 정책을 적용합니다.

  4. 보유가 끝나면 원본·변환본·임시본을 정책에 따라 정리합니다. 저장만 안전하고 오래된 사본이 남는다면 생애주기의 보호는 끝나지 않은 것입니다.

깨달음파일 보안은 확장자 검사 한 줄보다 접수부터 처리·제공·파기까지 이어지는 설계에 가깝습니다.

참고 [233] · [234] · [235]

이 브라우저에 학습 기록을 저장합니다.

CONTINUE LEARNING

지금 공부한 흐름을 책으로 이어가세요

무료 학습은 그대로, 종이책은 필요한 분을 위한 선택지입니다.

정보보안 MUST KNOW전체 도서 12권