CSRF 간단하게 알아보기

[verify$y]·2025년 8월 18일

CS핵심개념

목록 보기
33/35

CSRF

사용자의 권한을 도용하기 위한 수법(공격)

  • Cross-Site Request Forgery의 약자로 웹 취약점이다.
  • 특정 웹 사이트에서 공격자가 위조 요청을 보내 피해자가 요청에 대한 수행을 하게 되고 공격자는 피해자가 이미 로그인한 상태(세션, 쿠키)를 사용하여 사용자의 권한으로 서버에 요청을 보낸다.
  • 결과적으로 서버는 요청자가 인증된 사용자라고 보며, 개인정보가 있는 작업들을 수행하게 된다.

동작

  • 피해자가 특정 사이트에 로그인 → 세션/쿠키가 브라우저에 저장
  • 공격자가 만든 악성 웹 페이지에 피해자가 접속
  • 해당 페이지에 자동으로 요청을 보내는 악의적 코드가 숨겨져 있고
  • 브라우저는 기존에 저장된 세션 쿠키를 포함해서 사용자의요청이라고 착각하고 실행한다. → 공격 성공


특징

  • 공격 자체는 피해자의 브라우저에서 발생한다.
  • 공격자는 사용자의 인증 쿠기나 세션 값을 직접 알 지 않아도 브라이저를 통해 탈취한다.
  • 사용자의 권한을 도용하는 해킹 방식이다..


예시

  • 은행 사이트 html요소로 <`img src = “https://www.wonhansite.com”> 에 url 을 담음
  • 자동으로 사용자가 은행에서 해당 페이지작업을 하면 자동으로 공격자가 심어둔 url요청이 실행된다.


방어

  • CSRF 토큰을 사용하여 요청마다 예층 불가능한 토큰을 포함하고 서버에서 검증해야한다.
  • Refer / Origin 을 검증
  • 세션 쿠키에 SameSite 속성을 결정해두고 다른 사이트에서는 전송되지 않게 설정해둔다.
  • 중요 요청에서는 추가인증욜 요구한다. OTP
profile
welcome

0개의 댓글