본문 바로가기
CS/Network

[네트워크] CSRF(Cross Site Request Forgery)

by 테리는당근을좋아해 2020. 6. 27.

CSRF(Cross Site Request Forgery)

- 사이트 간 요청 위조

- 웹 애플리케이션 취약점 중 하나

- 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 함으로써, 특정 웹 페이지의 보안을 취약하게 하거나, 공격자가 의도한 작업을 하도록 하는 공격 기법

 

1) 공격 방식

(1) 사용자가 브라우저에 로그인 상태(유효한 쿠키 정보 보유)

(2) 사용자가 해커가 만든 피싱 사이트에 접속

(3) 해커는 사용자의 쿠키 정보를 사용한 스크립트 실행

(4) 서버는 공격명령을 사용자의 요청으로 인식하고 실행

 

2) 방어 방법

(1) Referer 검증

- HTTP Request 메시지의 Referer를 통해 바로 이전의 Domain과 일치하는 지 검증

- 같은 도메인 내의 페이지에 XSS 취약점이 있는 경우, CSRF 공격에 취약해질 수 있음

 

(2) CSRF Token

- Security Token

- 사용자의 세션에 임의의 난수 값을 저장, 요청 마다 해당 난수 값을 포함시켜 전송

- 서버는 세션에 저장된 토근값과 요청 파라미터로 전달되는 토큰이 일치하는지 검증

- 같은 도메인 내의 페이지에 XSS 취약점이 있는 경우, CSRF 공격에 취약해질 수 있음

 

(3) Double Submit Cookie 검증

- Security Token

- 스크립트 단에서 요청 시 난수 값을 생성해 쿠키에 저장, 동일한 난수 값을 요청 파라미터에 저장해 서버로 전달

- 서버에서는 쿠키의 토큰값과 파라미터의 토큰값이 일치하는지 검증

 

 

웹 애플리케이션 공격기법

1) XSS(Cross Site Srcripting)

- 게시판이나 웹 메일 등에 악의적인 스크립트를 삽입해 비정상적인 페이지가 보이게 하고, 다른 사용자의 사용을 방해하거나 개인 정보를 탈취하는 공격 기법

 

2) SQL Injection

- 웹 애플리케이션에 악의적인 SQL문을 삽입해 인증을 우회하거나 공격자의 악의적인 쿼리문을 데이터베이스로 보내는 공격 기법

 

3) CSRF(Cross site Request Forgery)

- 사용자의 의지와 상관없이 공격자가 의도한 대로 행동하므로써, 특정 웹 페이지의 보안을 취약하게 하거나 공격자의 의도대로 데이터를 수정, 삭제하는 공격 기법

 

4) Brute Force Attacks

- GET이나 POST 방식으로 인증하는 페이지에서 특정 ID에 대한 패스워드를 무한 입력해 해당 ID의 패스워드를 알아내는 공격 기법

 

5) Buffer Overflow

- 웹 서버에서 구동되는 실행파일에 비정상적인 버퍼 값을 입력해 시스템을 다운시키거나 관리자 권한을 획득하는 공격 기법

 

댓글