IT/영어 공부노트

[Web 보안] 파일 업로드 취약점 본문

🛡️ security/주통기

[Web 보안] 파일 업로드 취약점

소저어엉 2023. 7. 31. 16:43
반응형

주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드 - 웹보안

22. 파일 업로드

 

파일 업로드 취약점이란?

파일 업로드 기능이 존재하는 웹 상업로드 파일에 대한 제어(필터링, 개수 및 크기 제한 등) 미흡으로 외부에서 파일이 업로드 될 수 있는 취약점이다. 

파일 업로드 취약점으로 서버 파일시스템에 파일 경로/파일 명을 업로드 할 수 있다 -> 공격자가 파일을 업로드하여 공격에 사용할 수 있다.

 


취약점 분석

취약점 개요
점검내용 - 웹 사이트의 게시판, 자료실 등에 조작된 Server Side Script 파일 업로드 및 실행 가능 여부 점검
점검목적 - 업로드되는 파일의 확장자에 대한 적절성 여부를 검증하는 로직을 통해 공격자가 조작된 Server Side Script 파일 업로드 방지 및 서버상에 저장된 경로를 유추하여 해당 Server Side Script 파일 실행을 불가능하게 하기 위함
보안위협  - 해당 취약점이 존재할 경우 공격자는 조작된 Server Side Script 파일을 서버에 업로드 및 실행하여 시스템 관리자 권한 획득 또는 인접 서버에 대한 침입을 시도할 수 있음

※ Server Side Script: 웹에서 사용되는 스크립트 언어 중 서버 측에서 실행되는 스크립트

 

 

점검대상 및 판단기준
대상 - 웹 애플리케이션 소스코드, 웹 서버, 웹 방화벽
판단기준 - 양호: 업로드되는 파일에 대한 확장자 검증이 이루어지는 경우
- 취약: 업로드되는 파일에 대한 확장자 검증이 이루어지지 않는 경우
조치방법 - 업로드되는 파일에 대한 확장자 검증 및 실행 권한 제거 

점검 방법

1. 웹 사이트에 파일 업로드 기능이 존재하는 경우, 확장자가 jsp, php, asp, cgi 등 Server SIde Script 파일들이 업로드 가능한지 확인

2. 웹 사이트에 있는 디렉터리 정보를 이용하여 첨부한 파일의 위치를 조사 해 브라우저 주소창에 해당 경로를 입력하여 실행 가능한지 확인

 


보안설정방법

<사용자가 파일을 업로드 할 수 있는 모든 모듈에 적용 필요>

- 화이트 리스트 방식으로 허용된 확장자만 업로드 가능토록 서버 측 통제 적용

- 업로드되는 파일을 디렉터리에 젖아할 때 파일명과 확장자를 외부 사용자가 추측할 수 없는 문자열로 변경하여 저장 (파일 이름은 DB에 저장)

- 업로드 파일을 위한 전용 디렉터리를 별도 생성하여 웹 서버 데몬 설정파일에서 실행 설정을 제거함으로써, 스크립트가 업로드 되더라도 웹 엔진이 실행하지 않는 환경 설정

- 파일 업로드 필드를 대상으로 특수문자 필터링하도록 웹 방화벽 룰셋 적용

 


참고

주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드 p.699-p.706

반응형