CSRF
-
CSRF(Cross-Site Request Forgery)
는 신뢰할 수 있는 사용자를 가장하여 웹 사이트에 원치않는 명령을 보내는 공격입니다. -
예를 들어, 다른 곳으로 이동하기 위해 사용하는 링크 뒤에 있는
URL
에 악의적인 매겨변수를 포함시킴으로써 다음을 수행할 수 있다.
<img src="https://www.example.com/index.php?action=delete&id=123">
-
해당 도메인에 수정 권한이 있는 사용자의 경우
<img>
요소가, 사용자 모르게 동작을 수행한다. -
심지어, 요소가
https://www.example.com
에 없는 경우에도 실행된다. -
CSRF
를 방지하는 방법은RestfulAPI
구현 및 시큐어 토큰을 추가하는 등 많은 방법이 있다.
위키 백과
설명이 조금 부족해서 위키백과를 찾아보았다.
- 사이트 간 요청 위조, 원 클릭 공격 또는 세션 라이딩이라고 한다.
- 웹 응용프로그램이 신뢰하는 사용자로서 무단 명령을 제출하는 웹 사이트의 악의적인 공격 유형이다.
- 악의적인 웹 사이트가 이러한 명령을 전송할 수 있는 방법은 여러가지가 있다. 예를들어, 특수하게 조작된 이미지 태그, 숨겨진 양식 및
JavaScript XMLHttpRequest
는 사용자의 동작에 따라서 작동되기도 하지만 전혀 알아차리지 못하게 이루어지기도 한다. XSS(Cross-site-scripting)
과의 차이점은XSS
는 특정 사이트에 대해서 사용자가 가지는 신뢰정보를 이용하는데 반해서,CSRF
는 사용자의 브라우저에 있는 신뢰 정보를 이용한다.
특징
-
CSRF
공격에서 공격자의 목표는 무고한 피해자가 악의적으로 조작된 웹 공격을 대상자가 액세스 권한을 가진 웹 사이트에 몰래 제출하도록 하는 것이다. -
사용자의 웹 브라우저에 저장된 쿠키에 의해 인증된 사용자는 자신도 모르게 사용자를 신뢰하는 사이트로
HTTP
요청을 전송하여 원치 않는 작업을 발생시킬 수 있습니다. -
웹 브라우저는 특정 도메인에서 사용하는 쿠키를 해당 도메인으로 보내는 웹 요청에 보이지 않게 포함시킵니다.
-
이러한 속성 때문에, 웹 사이트에 로그인 할 때, 생성된 쿠키를 이용해 공격합니다.
-
사용자가 브라우저를 통해서 실수로 요청을 제출한 경우 자동으로 포함된 이 쿠키로 인해서 위조된 요청이 웹 서버에 실제로 나타나며 데이터 반환, 세션 상태 조작, 피해자 계정 변경 등 적절하게 요청된 모든 작업을 수행한다
-
웹 브라우저는 특정 도메인에서 사용하는 쿠키를 해당 도메인으로 보내는 웹 요청에 보이지 않게 포함시킵니다.
-
이러한 속성 때문에, 웹 사이트에 로그인 할 때, 생성된 쿠키를 이용해 공격합니다.
-
사용자가 브라우저를 통해서 실수로 요청을 제출한 경우 자동으로 포함된 이 쿠키로 인해서 위조된 요청이 웹 서버에 실제로 나타나며 데이터 반환, 세션 상태 조작, 피해자 계정 변경 등 적절하게 요청된 모든 작업을 수행 한다.
예방법
대부분의 CSRF
방지 기술은, 웹 응용 프로그램이 허가되지 않은 요청을 탐지할 수 있도록 요청해 추가 인증 데이터를 포함시킴으로서 작동한다.
참고 문헌
>> Home