티스토리 뷰

반응형

 

 

 

가. 취약점 개요

  - 서버측에서 실행될 수 있는 스크립트 파일을 업로드 및 직접실행시킬 수 있을 경우 내부명령어 실행 및 시스템 제어가 가능한 취약점

   → 위험한 형식 파일 업로드

 

  - 외부입력값에 경로조작이 가능한 문자를 필터링하지 않으면 시스템 정보노출, 서비스 장애 등을 유발할 수 있는 취약점

   → (경로조작 문자를 이용한 파일 다운로드 취약점)

 

  - 원격으로부터 소스코드 또는 실행파일을 무결성 검사없이 다운로드 및 실행하여, 호스트 서버 변조, 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 다운로드 파일 무결성 검사 파일의 무결성 검사를 수행한 후 파일을 다운로드 한다. 업로드한 파일과 동일한 경우에만 다운로드 한다.

 

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday