CSRF 공격이란 ?

GonnabeAlright·2021년 11월 28일
0
post-thumbnail

개념

  • Cross-site request forgery, CSRF, XSRF, 사이트 간 요청 위조
  • 일단 사용자가 웹사이트에 로그인한 상태에서 사이트 간 요청 위조 공격 코드가 삽입된 페이지를 열면 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.

공격방식

1) 공격자는 이메일이나 게시판에 CSRF 스크립트가 포함된 게시물을 전송
2) 관리자는 공격자가 등록한 CSRF 스크립트가 포함된 게시물을 확인
3) 관리자가 CSRF 스크립트가 포함된 게시물을 열람하면 관리자의 권한으로 공격자가 원하는 CSRF 스크립트 요청이 발생
4) 공격자가 원하는 CSRF 스크립트가 실행되어 관리자 및 사용자의 피해가 발생

방어 방법

  • XSS와 마찬가지로 입력 필터링은 중요한 문제입니다.

  • 모든 민감한 동작에 필수로 요구되는 확인 절차가 항상 수행되도록 합니다.

  • 민감한 동작에 사용되는 쿠키는 짧은 수명만 갖도록 합니다.

  • Referer 체크

    HTTP 헤더에 있는 Referer로 해당 요청이 요청된 페이지의 정보를 확인하는 방법. 간단하여 소규모 웹사이트에 주로 이용된다. 하지만 해당 정보는 Paros나 Zap, fiddler같은 프로그램으로 조작이 가능하다.

  • GET/POST 요청 구분

    img 태그 등의 경우 GET 요청으로, form 태그로 값을 받을 경우 POST를 이용하여 요청을 구분해준다.

  • Token 사용

    서버에서 hash로 암호화 된 token을 발급, 사용자는 매 요청마다 token을 함께 보내어 서버의 검증을 거치게 한다.

  • 추가 인증 수단 사용

    추가 인증 수단을 거쳐 만약 테스트를 통과하지 못할 시 해당 요청 자체를 거부하는 방법

XSS vs CSRF

  • 사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면 사이트 간 요청 위조(CSRF)는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다.

0개의 댓글