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
728x90

SOP란?

<script></script>안 같은 Origin 내에서의 HTTP Reqeust/Response의 경우에서만 허용하는 browser 정책이다.

같은 IP와 Port 끼리의 HTTP Request/Response의 경우에만 SOP정책에 허용된다.

SOP란?

SOP가 필요한 이유

iframe 을 이용한 공격을 방어하는데 사용될 수 있다.

해커가 심어둔 iframe을 이용한 구글 로그인 화면이 들어있는 악의적인 화면이 있다고 가정하자

피해자는 해당 로그인 화면이 해커가 공격코드를 심어둔 악의적인 화면인지 알수있는 방법이 없다.  피해자는 해당 로그인 화면에서 로그인을 진행할 것이다.

만약 sop 가 없다면 악의적인 화면에서 구글 로그인이 성공하게되고 실시간으로 피해자의 신상, 메일 정보 등이 해커에게 전송될 수 있다.

sop가 있다면 애초에 iframe 으로 심어둔 구글 로그인이 성공할 수 없게 되고 공격으로부터 안전할 수 있다

 

 

SOP 우회 방법

  1. JSONP (Backend) -> Not Recommended
  2. Proxy (Frontend, new Backend(proxy server)) -> browser에게 눈속임 
    proxy with proxy server
  3. CORS (Backend) -> 가장 보편적으로 사용한다.

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

Cross-site Request Forgery ( CSRF or XSRF )  (0) 2020.12.07

+ Recent posts