반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
분석∙설계단계 SW 보안강화 - 설계보안항목 정의 및 설계 시 고려 사항 - HTTP 프로토콜 유효성 검증
설명
- 비정상적인 HTTP 헤더, 자동연결 URL 링크 등 사용자가 원하지 않은 결과를 생성할 수 있는 HTTP 헤더 및 응답 결과에 대한 유효성 검증방법과 유효하지 않은 값에 대한 처리방법을 설계한다.
설계항목내용
- 외부 입력값을 쿠키 및 HTTP 헤더 정보로 사용하는 경우, HTTP 응답 분할 취약점을 가지지 않도록 필터링해서 사용해야 한다.
- 외부 입력값이 페이지 이동(리다이렉트 또는 포워드)을 위한 URL로 사용되어야 하는 경우, 해당 값은 시스템에서 허용된 URL목록의 선택자로 사용되도록 해야 한다
가. 취약점 개요
사례 1: HTTP 응답 분할
- 공격자가 HTTP 요청에 삽입한 인자 값이 HTTP 응답 헤더에 포함되어 사용자에게 다시 전달될 때 개행 문자를 이용하여 첫 번째 응답을 종료시키고 두 번째 응답에 악의적인 코드가 주입되어 XSS 공격 등이 가능해진다.
사례 2: 신뢰되지 않은 URL로 자동 접속 연결
- 사용자의 입력값을 외부 사이트의 주소로 사용하여 자동으로 연결하는 서버 프로그램에서는 공격자가 사용자를 피싱(Phishing) 사이트 등 위험한 URL로 접속하도록 유도할 수 있게 된다.
나. 설계 시 고려사항
1. 외부 입력값을 쿠키 및 HTTP 헤더 정보로 사용하는 경우, HTTP 응답 분할 취약점을 가지지 않도록 필터링해서 사용해야 한다.
- ₩r₩n 문자는 HTTP 응답에서 헤더와 바디를 구분하는 구분자로 사용되기 때문에 HTTP 응답 헤더에 삽입되는 외부 입력값은 반드시 ₩r₩n 문자를 제거하여 사용할 수 있도록 시큐어코딩 규칙을 정의한다.
- 프로그램에서 Cookie값을 설정하거나, 응답 헤더 값을 설정하거나, 페이지 리다이렉트를 하기 위한 Location정보를 삽입하는 등 응답 헤더에 외부 입력값이 삽입되는 경우, HTTP 응답 분할을 일으킬 수 있는 문자(₩r₩n)를 필터링하도록 검증절차를 적용한다.
2. 외부 입력값이 페이지 이동(리다이렉트 또는 포워드)을 위한 URL로 사용되어야 하는 경우, 해당 값은 시스템에서 허용된 URL목록의 선택자로 사용되도록 해야 한다.
- 페이지 이동을 허용하는 URL목록을 소스코드에 하드코딩하거나, 설정 파일(XML, properties)에 저장하여 허용된 URL로만 이동할 수 있도록 설계한다.
참고자료
- CWE-113 Failure to Sanitize CRLF Sequences in HTTP Headers('Http Response Splitting'), MITRE,
http://cwe.mitre.org/data/definitions/113.html - Unvalidated Redirects and Forwords Cheat Sheet, OWASP,
www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet - WASC Threat Classsification v2.0 HTTP Response Splitting, WASC,
http://projects.webappsec.org/w/page/13246931/HTTP%20Response%20Splitting - WASC Threat Classification v2.0 URL Redirector Abuse, WASC,
http://projects.webappsec.org/w/page/13246981/URL%20Redirector%20Abuse - Google blog article on the dangers of open redirects, Jason Morrison,
http://googlewebmastercentral.blogspot.com/2009/01/open-redirect-urls-is-yoursite-being.html - Preventing Open Redirection Attacks (C#), Hon Calloway,
http://www.asp.net/mvc/overview/security/preventing-open-redirection-attacks
반응형
'공부 > KISA' 카테고리의 다른 글
보안기능 동작에 사용되는 입력값 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.10 |
---|---|
허용된 범위 내 메모리 접근 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.10 |
웹 기반 중요기능 수행 요청 유효성 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.09 |
웹 서비스 요청 및 결과 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.09 |
시스템 자원 접근 및 명령어 수행 입력값 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.09 |
댓글