반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
구현 단계 시큐어코딩 가이드 - 입력 데이터 검증 및 표현 - 신뢰되지 않는 URL 주소로 자동접속 연결
가. 개요
- 사용자로부터 입력되는 값을 외부 사이트의 주소로 사용하여 자동으로 연결하는 서버 프로그램은 피싱(Phishing) 공격에 노출되는 취약점을 가질 수 있다.
- 일반적으로 클라이언트에서 전송된 URL 주소로 연결하기 때문에 안전하다고 생각할 수 있으나, 공격자는 해당 폼의 요청을 변조함으로써 사용자가 위험한 URL로 접속할 수 있도록 공격할 수 있다
나. 보안대책
- 자동 연결할 외부 사이트의 URL과 도메인은 화이트 리스트로 관리하고, 사용자 입력값을 자동 연결할 사이트 주소로 사용하는 경우에는 입력된 값이 화이트 리스트에 존재하는지 확인해야 한다.
다. 코드예제
JAVA
더보기
다음과 같은 코드가 서버에 존재할 경우 공격자는 아래와 같은 링크를 통해 희생자가 피싱 사이트 등으로 접근하도록 할 수 있다.
다음의 예제와 같이, 외부로 연결할 URL과 도메인들은 화이트 리스트를 작성한 후, 그중에서 선택하도록 함으로써 안전하지 않은 사이트로의 접근을 차단할 수 있다.
C#
더보기
외부 입력 값으로 받은 URL로 검증 없이 연결되는 경우, 공격자의 입력에 따라 피싱사이트 등으로 연결될 수 있다.
로컬 URL 검증이나 white list 등을 이용하여 검증이 필요하다.
참고자료
- CWE-601 URL Redirection to Untrusted Site, MITRE,
http://cwe.mitre.org/data/definitions/601.html - Unvalidated Redirects and Forwards Cheat Sheet, OWASP
https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet
반응형
'공부 > KISA' 카테고리의 다른 글
XPath 삽입 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
---|---|
XQuery 삽입 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
위험한 형식 파일 업로드 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.19 |
운영체제 명령어 삽입 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.18 |
크로스사이트 스크립트 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.18 |
댓글