CSRF


Screen Shot 2021-03-10 at 10 28 45 PM

  • 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 구현 및 시큐어 토큰을 추가하는 등 많은 방법이 있다.

위키 백과


설명이 조금 부족해서 위키백과를 찾아보았다.

Screen Shot 2021-03-10 at 10 39 18 PM

  • 사이트 간 요청 위조, 원 클릭 공격 또는 세션 라이딩이라고 한다.
  • 웹 응용프로그램이 신뢰하는 사용자로서 무단 명령을 제출하는 웹 사이트의 악의적인 공격 유형이다.
  • 악의적인 웹 사이트가 이러한 명령을 전송할 수 있는 방법은 여러가지가 있다. 예를들어, 특수하게 조작된 이미지 태그, 숨겨진 양식 및 JavaScript XMLHttpRequest는 사용자의 동작에 따라서 작동되기도 하지만 전혀 알아차리지 못하게 이루어지기도 한다.
  • XSS(Cross-site-scripting)과의 차이점은 XSS는 특정 사이트에 대해서 사용자가 가지는 신뢰정보를 이용하는데 반해서, CSRF는 사용자의 브라우저에 있는 신뢰 정보를 이용한다.

특징


Screen Shot 2021-03-10 at 10 54 10 PM

  • CSRF 공격에서 공격자의 목표는 무고한 피해자가 악의적으로 조작된 웹 공격을 대상자가 액세스 권한을 가진 웹 사이트에 몰래 제출하도록 하는 것이다.

  • 사용자의 웹 브라우저에 저장된 쿠키에 의해 인증된 사용자는 자신도 모르게 사용자를 신뢰하는 사이트로 HTTP 요청을 전송하여 원치 않는 작업을 발생시킬 수 있습니다.

  • 웹 브라우저는 특정 도메인에서 사용하는 쿠키를 해당 도메인으로 보내는 웹 요청에 보이지 않게 포함시킵니다.

  • 이러한 속성 때문에, 웹 사이트에 로그인 할 때, 생성된 쿠키를 이용해 공격합니다.

  • 사용자가 브라우저를 통해서 실수로 요청을 제출한 경우 자동으로 포함된 이 쿠키로 인해서 위조된 요청이 웹 서버에 실제로 나타나며 데이터 반환, 세션 상태 조작, 피해자 계정 변경 등 적절하게 요청된 모든 작업을 수행한다

  • 웹 브라우저는 특정 도메인에서 사용하는 쿠키를 해당 도메인으로 보내는 웹 요청에 보이지 않게 포함시킵니다.

  • 이러한 속성 때문에, 웹 사이트에 로그인 할 때, 생성된 쿠키를 이용해 공격합니다.

  • 사용자가 브라우저를 통해서 실수로 요청을 제출한 경우 자동으로 포함된 이 쿠키로 인해서 위조된 요청이 웹 서버에 실제로 나타나며 데이터 반환, 세션 상태 조작, 피해자 계정 변경 등 적절하게 요청된 모든 작업을 수행 한다.

예방법


Screen Shot 2021-03-10 at 10 59 01 PM

대부분의 CSRF 방지 기술은, 웹 응용 프로그램이 허가되지 않은 요청을 탐지할 수 있도록 요청해 추가 인증 데이터를 포함시킴으로서 작동한다.

참고 문헌


>> Home