티스토리 뷰

반응형

 

 

 

가. 취약점 개요

  - 개행문자를 포함한 외부입력값이 HTTP 응답헤더에 포함되어 두 번째 응답에 악의적인 코드를 주입하여 XSS 공격을 하는 취약점

   → HTTP 응답분할

 

  - 입력값을 외부 사이트 주소로 이용 시 공격자가 사용자를 피싱 사이트 등의 위험한 URL로 접속 유도하는 취약점

   → 신뢰되지 않은 URL주소로 자동접속 연결

 

 

나. 요구사항

1. 외부입력값을 쿠키 및 HTTP 헤더정보로 사용 시 응답분할을 방지하기 위해 필터링 후 사용

2. 외부입력값을 페이지 이동 URL로 사용 시 허용된 URL목록의 선택자로 사용되도록 구현

 

 

다. 요구사항 별 고려사항

1. 외부입력값을 쿠키 및 HTTP 헤더정보로 사용 시 응답분할을 방지하기 위해 필터링 후 사용

  - HTTP 응답헤더에 삽입되는 외부입력값을 반드시 개행문자(\r\n)를 필터링

  - 쿠키값 설정 / 응답헤더 값 설정 / Location 정보 삽입 시 개행문자를 필터링

 

2. 외부입력값을 페이지 이동 URL로 사용 시 허용된 URL목록의 선택자로 사용되도록 구현

  - 허용되는 URL 목록을 소스코드에 하드코딩

  - 허용되는 URL목록을 설정파일(XML, Properties)에 저장 

 

 

라. 요구사항 별 진단기준 및 방법

0. 공통내용

  - 요구사항 정의서에 보안요구항목에 대한 대책이 수립

  - 아키텍쳐 설계서에 보안요구항목 적용계획이 수립

  - 요구사항 추적표를 통해 요구사항 추적가능 여부

 

1. 외부입력값을 쿠키 및 HTTP 헤더정보로 사용 시 응답분할을 방지하기 위해 필터링 후 사용

  - 응답헤더에 값을 쓰는 기능을 식별 (setHeader, addCookie, sendRedirect 등 ) 후 개행문자 필터링 여부 확인

  - 입력값이 헤더에 포함되는 모든 기능에 안전하게 적용되었는지 확인

 

2. 외부입력값을 페이지 이동 URL로 사용 시 허용된 URL목록의 선택자로 사용되도록 구현

  - 시스템에서 이동이 허용된 도메인 주소 또는 주소 목록을 정의하는지 확인

  - 미리 정의한 허용목록을 이용한 입력값을 검증여부 확인

 

 

마. 진단기준

1. 외부입력값을 쿠키 및 HTTP 헤더정보로 사용 시 응답분할을 방지하기 위해 필터링 후 사용

  - HTTP 응답분할이 발생하지 않도록 입력값에 대한 검증을 수행하는지 확인

  - HTTP 응답분할 취약점을 점검할 수 있는 테스트 계획 확인

 

2. 외부입력값을 페이지 이동 URL로 사용 시 허용된 URL목록의 선택자로 사용되도록 구현

  - 외부입력값을 페이지 이동 URL로 직접 사용 시 오픈 리다이렉트 취약점이 발생하지 않도록 보안설계 되었는지 확인

  - 오픈 리다이렉트 취약점을 점검할 수 있는 테스트 계획 확인

 

 

바. 안전한 보안설계 예

No 요구사항 명 해결방안 검수기준
1 HTTP 응답분할 취약점 대응 응답헤더 구성에 사용되는 외부입력값에 개행 문자열 포함여부를 확인하고 필터링 후 사용 HTTP 응답분할이 발생하지 않는다.
2 오픈 리다이렉트 취약점 대응 리다이렉트 가능한 도메인과 주소를 미리 정의하고, 정의된 범위내에서만 리다이렉트 되도록 한다. 허용 목록 밖의 주소로 리다이렉트 되지 않는다.
반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday