반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
구현 단계 시큐어코딩 가이드 - 입력 데이터 검증 및 표현 - 위험한 형식 파일 업로드
가. 개요
- 서버 측에서 실행될 수 있는 스크립트 파일(asp, jsp, php 파일 등)이 업로드 가능하고, 이 파일을 공격자가 웹을 통해 직접 실행시킬 수 있는 경우, 시스템 내부 명령어를 실행하거나 외부와 연결하여 시스템을 제어할 수 있는 보안약점이다.
나. 보안대책
- 화이트 리스트 방식으로 허용된 확장자만 업로드를 허용한다.
- 업로드 되는 파일을 저장할 때에는 파일명과 확장자를 외부 사용자가 추측할 수 없는 문자열로 변경하여 저장하며, 저장 경로는 ‘web document root’ 밖에 위치시켜서 공격자의 웹을 통한 직접 접근을 차단한다.
- 파일 실행여부를 설정할 수 있는 경우, 실행 속성을 제거한다.
다. 코드예제
JAVA
더보기
업로드할 파일에 대한 유효성을 검사하지 않으면, 위험한 유형의 파일을 공격자가 업로드하거나 전송할 수 있다.
아래 코드는 업로드 파일의 확장자를 검사하여 허용되지 않은 확장자인 경우 업로드를 제한하고 있다.
C#
더보기
업로드할 파일에 대한 유효성을 검사하지 않으면, 위험한 유형의 파일을 공격자가 업로드하거나 전송할 수 있다.
파일 타입과 크기 등을 검사하여 제한하도록 한다.
참고자료
- CWE-434 Unrestricted Upload of File with Dangerous Type, MITRE,
http://cwe.mitre.org/data/definitions/434.html - Prevent arbitrary file upload, CERT,
http://www.securecoding.cert.org/confluence/display/java/IDS56- J.+Prevent+arbitrary+file+upload - Secure File Upload Check List With PHP, Clay,
http://hungred.com/useful-information/secure-file-upload-check-list-php/ - Unrestricted File Upload, OWASP
https://www.owasp.org/index.php/Unrestricted_File_Upload
반응형
'공부 > KISA' 카테고리의 다른 글
XQuery 삽입 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
---|---|
신뢰되지 않는 URL 주소로 자동접속 연결 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
운영체제 명령어 삽입 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.18 |
크로스사이트 스크립트 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.18 |
경로 조작 및 자원 삽입 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.18 |
댓글