시큐어코딩
- home
- 보안소식
- 시큐어코딩
05. [입력 데이터 검증 및 표현] 위험한 형식 파일 업로드
2018.03.07 16:52
# 위험한 형식 파일 업로드란?
위험한 형식 파일 업로드란, 서버 측에서 실행될 수 있는 스크립트 파일(asp,jsp,php 파일 등)이 업로드가능하고, 이 파일을 공격자가 웹을 통해 직접 실행시킬 수 있을 때 발생하는 보안약점입니다. 공격자는 스크립트 파일을 업로드 시켜 시스템 내부 명령어를 실행하거나 외부와 연결하여 시스템을 제어할 수 있습니다.
예를 들어 살펴보겠습니다.
위 사진은 파일첨부 기능이 있는 게시판에서 스크립트 파일을 첨부하여 웹 서버에 업로드 시키는 사진입니다. 글이 작성이 된다면 php 스크립트로 작성된 웹 쉘은 서버의 어딘가에 저장될 것이고, 공격자가 그 경로를 찾아 실행시킨다면 자신이 만든 스크립트의 기능을 사용하여 악의적인 행동을 할 수 있을 것입니다.
테스트 환경에서 웹 쉘을 실행한 결과입니다. 서버의 정보와 파일 시스템을 포함하여 다양한 기능을 제공하고 있습니다. 공격자는 이 웹 쉘을 사용하여 웹 서버를 장악할 수 있을 것입니다.
이와 같이 스크립트 파일을 업로드하여 악의적인 파일을 업로드시킬 수 있는 보안약점이 바로 위험한 형식 파일 업로드 입니다.
# 위험한 형식 파일 업로드를 막기 위한 보안 대책은?
위험한 형식 파일 업로드를 방어하기 위한 대책은 소프트웨어 개발 생명 주기에 따라 크게 두 가지로 나눌 수 있습니다.
위험한 형식 파일 업로드를 방어하는 데에는 정해진 답은 없지만, 소프트웨어 개발보안 가이드에서 제시하는 방법은 위와 같으며, 각각의 상황에 맞게 적절히 사용하기를 권장하고 있습니다.