728x90

Cross-site Request Forgery

웹 어플리케이션 취약점 중 하나로 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 등록, 삭제 등)를 특정 웹사이트에 요청하게 만드는 공격.

주로 이미지에 source로 공격자가 의도한 행위를 넣어, 해당 이미지가 담긴 페이지를 여는것만으로 공격을 받게된다.

 

CSRF가 이뤄지기 위해서는 다음과 같은 선행조건이 이뤄져야한다.

  • 사용자가 이용하는 사이트(bank.com)에 로그인 상태
  • 공격자가 만든 사이트 또는 메일에 사용자가 접속

예시

옥션에서도 CSRF로 인한 해킹사건이 일어났는데 방법은 다음과같다.

  1. 옥션 관리자 중 한명이 관리 권한을 가지고 회사내에서 작업을 하던 중 메일을 조회한다.
  2. 해커는 다음과 같이 태그가 들어간 코드가 담긴 이메일을 보낸다. 관리자는 이미지 크기가 0이므로 전혀 알지 못한다.
  3. <img src="http://auction.com/changeUserAccount?id=admin&password=admin" width="0" height="0"/>
  4. 피해자가 이메일을 열면 API가 호출된다.(비밀번호 1111초기화 같은)

대처

  • Referrer(요청 전송 페이지) 검증
    • request의 referrer을 확인하여 domain이 일치하는지 확인하는 검증방법
      • 위의 상황에서는 옥션 홈페이지가 아닌 메일에서 악의적인 요청이 발생한 것처럼 서버가 해킹당하지 않는 이상 referrer는 다를 수 밖에 없다. 
  • Security Token(CSRF Token) 사용 (OTP와 유사)
    • 랜덤한 Token을 세션에 저장하여 사용자의 요청마다 해당 token을 삽입. 서버에서 해당 token이 맞는지 검증하여 request 허용/불허 판단 
  • CAPCHA
    • 사람이 하려고하는 행위인지 봇이 하려고 하는 행위인지 판단하는 시스템. 원치않는 행위인지 사용자가 판단하게 해준다.

CAPCHA


XSS vs CSRF

XSS CSRF
개요: 악성 스크립트가 클라이언트에서 실행
공격대상 : 클라이언트
목적: 개인정보 갈취, 웹사이트 변조
개요: 권한을 도용당한 클라이언트가 가짜 요청을 서버에 전송
공격대상: 서버
목적: 권한도용

'Security & Errors' 카테고리의 다른 글

1.SOP (Same Origin Policy)  (0) 2020.12.02

+ Recent posts