1. CSRF(Cross Site Request Forgery)란?
CSRF(Cross Site Request Forgery)는 사이트간의 요청 조작으로 사용자가 자신의 의지와 무관하게 attrack의 의도를 따라 행동하여 문제를 일으키는 웹 보안 취약점으로 이를 통해 공격자는 동일한 출처 정책을 부분적으로 우회할 수 있다.
피싱을 활용해 사용자 모르게 패스워드를 변경하는 등의 공격을 수행할 수 있다.
2008년 4차례 칩입해 1080만명의 개인정보를 유출시킨 옥션 해킹 사건에 사용된 공격기법이다.
2. 공격 진행 과정
예시)
(1) 사용자가 사이트에 정상 접속 및 로그인 상태이다.
(2) 공격자가 이때 이메일을 보내서 어떤 링크를 클릭하도록 피싱을 한다.
(3) 사용자가 클릭시 접속한 웹사이트에 비밀번호 변경 요청이 전송됨.
(4) 변경된 패스워드로 로그인한다.
전달 메커니즘은 기본적으로 반영된 XSS의 경우와 동일하다. 일반적으로 공격자는 자신이 제어하는 웹사이트에 악성 HTML을 배치한 후 피해자가 웹 페이지를 방문하도록 유도한다.
3. CSRF가 작동할 수 있는 세가지 요건
(필수 조건) 사용자가 링크를 누른 시점에 사이트에 로그인이 되어있어야한다. 탭을 여러개 열어놓을 경우 당할 확률이 높다.
(1) 공격자가 유도할 수 있는 애플리케이션 내 동작이 있음. 권한을 수정하는 일이나 사용자의 암호를 변경할 수 있는 작업 등이 이에 해당된다.
(2) 애플리케이션은 세션 쿠키에만 의존하여 요청한 사용자를 식별해야한다.
세션을 추적하거나 사용자 요청을 검증하기위한 다른 매커니즘이 없어야한다.
(3) 작업 수행 시 공격자가 알지 못하는 매개변수가 없어야한다. 예를 들어 암호 변경 시 기존 암호를 알아야하는 경우가 있다.
4. CSRF 공격의 방어기법
(1) Referrer 검증
요청을 받을 시 도메인이 일치하는지 검증하도록 만든다.
(2) Security Token 사용(CSRF Token)
사용자 세션에 임의의 수를 지정해 보낸 후 요청을 받을 때마다 이 세션의 값을 검증한다.
그렇지만 이 경우에 도메인 내에 XSS 취약점이 있다면 방어가 정상적으로 수행될 수 없다.
'Web hacking > Nomaltic) 웹 해킹 수업 노트 👩💻' 카테고리의 다른 글
[8주차]CSRF의 현재 모습 (0) | 2021.12.03 |
---|---|
[7주차] CSRF 개념 정리 (0) | 2021.12.03 |
[6주차]XSS 키로커 삽입과 대응방안 (0) | 2021.11.20 |
[6주차]XSS 공격 벡터와 대응방안 (0) | 2021.11.18 |
[5주차]XSS(Cross site script)를 공부해보자 + XVWA에서 실습 (0) | 2021.11.12 |