사이트 간 요청 위조
위키백과, 우리 모두의 백과사전.
사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어 : Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격 의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다.
유명 경매 사이트인 옥션 에서 발생한 개인정보 유출 사건에서 사용된 공격 방식 중 하나다.
사이트 간 스크립팅 (XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저 를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인 한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.
csrf 공격은 아래와 같습니다.
- 이용자는 웹사이트에 로그인하여 정상적인 쿠키 를 발급받는다
- 공격자는 다음과 같은 링크 를 이메일이나 게시판 등의 경로를 통해 이용자에게 전달한다.http://www.geocities.com/attacker
- 공격용 HTML 페이지는 다음과 같은 이미지태그를 가진다.해당 링크는 클릭시 정상적인 경우 출발지와 도착지를 등록하기위한 링크이다. 위의 경우 도착지를 변조하였다.
<img src= "https://travel.service.com/travel_update?.src=Korea&.dst=Hell">
- 이용자가 공격용 페이지를 열면, 브라우저는 이미지 파일을 받아오기 위해 공격용 URL을 연다.
- 이용자의 승인이나 인지 없이 출발지와 도착지가 등록됨으로써 공격이 완료된다. 해당 서비스 페이지는 등록 과정에 대해 단순히 쿠키를 통한 본인확인 밖에 하지 않으므로 공격자가 정상적인 이용자의 수정이 가능하게 된다.
위 같은 공격을 못하도록 가변하는 변수인 csrf 토큰을 사용하게 됩니다.
csrf를 사용하게 되면 아래와 같이 호출하게 되며 사용자가 접속할때 또는 페이지 변경시마다 csrf 토큰이 변경 되기
때문에 악의적인 공격을 방어 할 수 있습니다.
&.dst=Hell&csrf=token1
<input type="hidden" name="${_csrf.parameterName}" value="{_csrf.token}">
스프링 시큐리티 csrf(크로스도메인) 설정 방법 : https://rockdrumy.tistory.com/1341 참고
'Spring > study' 카테고리의 다른 글
Spring 프로젝트에 Mysql DB 연동하는 방법 (0) | 2019.07.23 |
---|---|
spring 30강 Spring Security (0) | 2019.07.16 |
spring 28강 Spring Boot와 MongboDB 연동 실습(방명록) (0) | 2019.07.12 |
spring 27강 Spring Boot와 MongboDB 연동 실습(한줄메모장) (0) | 2019.07.11 |
spring 25강 Spring Boot와 Oracle 연동, Thymeleaf Template 적용 (1) | 2019.07.10 |