티스토리 뷰
가. 취약점 개요
- 서버측에서 실행될 수 있는 스크립트 파일을 업로드 및 직접실행시킬 수 있을 경우 내부명령어 실행 및 시스템 제어가 가능한 취약점
→ 위험한 형식 파일 업로드
- 외부입력값에 경로조작이 가능한 문자를 필터링하지 않으면 시스템 정보노출, 서비스 장애 등을 유발할 수 있는 취약점
→ (경로조작 문자를 이용한 파일 다운로드 취약점)
- 원격으로부터 소스코드 또는 실행파일을 무결성 검사없이 다운로드 및 실행하여, 호스트 서버 변조, DNS 스푸핑, 악성코드 실행을 유발하는 취약점
→ 무결성 검사없는 코드 다운로드
나. 요구사항
1. 업로드 파일의 타입, 크기, 갯수, 실행권한을 제한
2. 업로드 된 파일은 외부에서 식별되지 않도록 구현
3. 파일 다운로드 요청 시 파일명 검증
4. 다운로드 받은 소스코드 및 실행파일의 무결성 검사 실행
다. 요구사항 별 고려사항
1. 업로드 파일의 타입, 크기, 갯수, 실행권한을 제한
- 없음
2. 업로드 된 파일은 외부에서 식별되지 않도록 구현
- 외부에서 직접 접근이 불가능한 경로에 업로드 파일을 저장
- 업로드 되는 파일명은 랜덤하게 생성하여 사용
3. 파일 다운로드 요청 시 파일명 검증
- 파일명에 경로를 조작하는 문자(.. / \)의 포함여부를 점검
- 허가된 사용자의 허가된 안전한 파일에 대한 요청인지 확인
- 사용자의 요청에 의해 존재하는 파일이 참조될 경우 화이트리스트 정책으로 접근통제
4. 다운로드 받은 소스코드 및 실행파일의 무결성 검사 실행
- 없음
라. 요구사항 별 진단기준 및 방법
0. 공통내용
- 요구사항 정의서에 보안요구항목에 대한 대책이 수립
- 아키텍쳐 설계서에 보안요구항목 적용계획이 수립
- 요구사항 추적표를 통해 요구사항 추적가능 여부
1. 업로드 파일의 타입, 크기, 갯수, 실행권한을 제한
- 파일업로드 기능을 지원하는 프레임워크 / 라이브러리 사용여부 확인
- 파일의 속성을 제한하는 설정계획을 확인
- 업로드 되는 파일의 속성을 제한하는 기능설계 확인
2. 업로드 된 파일은 외부에서 식별되지 않도록 구현
- 안전한 난수를 이용하여 파일명을 생성
- 저장되는 파일명이 중복되지 않도록 안전한 알고리즘 적용
- 원본 파일명과 저장 경로/파일명의 매핑정보를 관리하는지 확인
3. 파일 다운로드 요청 시 파일명 검증
- 다운로드 요청 파일명에 대한 경로조작문자 포함여부 확인
- DB정보를 이용하여 요청파일의 유효성 점검여부 확인
4. 다운로드 받은 소스코드 및 실행파일의 무결성 검사 실행
- 파일의 무결성 검사를 위한 값이 제공되도록 설계되었는지 확인
- 무결성 검사 수행 후 파일이 다운로드 되도록 설계되었는지 확인
마. 진단기준
1. 업로드 파일의 타입, 크기, 갯수, 실행권한을 제한
- 업로드 파일의 제한정책과 방법이 설계되었는지 확인
- 업로드 파일의 제한정책을 점검하는 테스트 계획 확인
2. 업로드 된 파일은 외부에서 식별되지 않도록 구현
- 업로드 된 파일이 외부에서 식별되지 않도록 안전한 저장위치에 저장되는지 확인
- 업로드 된 파일이 외부에서 식별가능한지 여부를 점검하는 테스트 계획 확인
3. 파일 다운로드 요청 시 파일명 검증
- 다운로드 요청 파일명에 대한 검증이 수행될 수 있도록 설계되었는지 확인
- 파일 다운로드 정책을 점검하는 테스트 계획 확인
4. 다운로드 받은 소스코드 및 실행파일의 무결성 검사 실행
- 파일 다운로드 시 파일의 무결성을 확인할 수 있도록 설계되었는지 확인
- 다운로드한 파일에 대한 무결성 점검을 위한 테스트 계획 확인
바. 안전한 보안설계 예
No | 요구사항 명 | 해결방안 | 검수기준 | |
1 | 업로드 파일 검증 | 2kb 미만의 이미지 파일을 3개까지만 업로드 할 수 있도록 하고, 저장 시 실행속성을 제거 | 2kb 미만의 이미지 파일 3개까지만 업로드 되며, 저장 파일의 실행속성이 제거되어 있다. | |
2 | 업로드 파일 접근 제한 | 저장 파일명과 경로를 외부에서 알 수 없도록 한다. | 원본 파일명과 저장 파일명이 상이하며, 경로를 포함한 매핑 정보를 관리하고 있다. | |
3 | 다운로드 파일명 검증 | 요청 파일명에 경로 조작 문자열 포함 여부를 확인하고 사용하며, 파라미터로 전달된 값을 저장 파일을 참조하는데 직접적으로 사용하지 않는다. | 경로조작 문자열을 필터링하며, 파라미터로 전달된 파일명과 매핑된 저장 파일명과 경로를 이용하여 파일을 다운로드한다. | |
4 | 다운로드 파일 무결성 검사 | 파일의 무결성 검사를 수행한 후 파일을 다운로드 한다. | 업로드한 파일과 동일한 경우에만 다운로드 한다. |
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[설계보안] 보안기능 02 - 인증 수행 제한 (0) | 2019.09.23 |
---|---|
[설계보안] 보안기능 01 - 인증 대상 및 방식 (0) | 2019.09.23 |
[설계보안] 입력데이터 검증 및 표현 09 - 보안기능 동작에 사용되는 입력값 검증 (0) | 2019.09.23 |
[설계보안] 입력데이터 검증 및 표현 08 - 허용된 범위내 메모리 접근 (0) | 2019.09.22 |
[설계보안] 입력데이터 검증 및 표현 07 - HTTP 프로토콜 유효성 검증 (0) | 2019.09.22 |
- Total
- Today
- Yesterday