Part 8 : OWASP 2017 TOP 10 RC2 A8 - 크로스사이트 요청변조[CSRF]

개발/OWASP 2017 2020.12.17 댓글 임통끼
728x90

 

A8 : 크로스사이트 요청변조[CSRF]

 

 

* 정의

CSRF 공격은 로그인 된 공격 대상자의 브라우저가 공격 대상자의 세션 쿠키와 자동으로 포함된 인증 정보를 포함하여 위조된 HTTP 요청을 취약한 웹 애플리케이션에 보내도록 하는 것이다. 예를 들어, 공격자는 공격 대상자의 브라우저가 취약한 애플리케이션이 합법적이라고 생각하는 요청을 생성하도록 한다.

 

Ex) html로 form을 작성하고 직접 실행하게 만들거나 onload속성을 통해 자동실행되게 하여 접속자로 하여금 원격으로 페이지 요청을 시키는 방법 그밖에도 <img src=”사이트내api위치”> 방법도 있음.
즉, 페이지를 요청한다는 개념만 빼면 XSS와 기본적으로 유사한 공격이라고 할 수 있다.
즉, httpOnly옵션으로 인해 쿠키복사가 불가능 하다면 피해대상에게 원격으로 요청을 시켜 결과값을 탈취하는 것

 


 

* 대응방법

1. CSRF공격은 XSS공격에 기반하고 있으므로 XSS방어 방법과 동일한 방법으로 기본적인 CSRF공격에 대응이 가능하다. (스크립트 필터링방식등)

  -> CSRF 공격은 인증된 사용자의 권한을 갖고 공격을 하므로 공격자가 회원정보를 변경하는 스크립트를 포함한 게시물을 작성하고, 다른 사용자가 그 게시물을 읽었을 경우 자동으로 회원정보를 바꾸는 등의 공격이 가능하다.

  이 때, 회원정보 변경 페이지 접근 전에 현재 패스워드를 확인하는 절차를 추가한다면, 이 사용자의 패스워드를 알지 못하는 이상 피해 사용자의 권한을 가지고도 자동으로 회원정보를 바꾸는 CSRF 공격은 실패하게 된다.

 

2. 사용자 Form이나 URL에 의한 요청시 토큰을 추가/검증

  -> 입력 폼에서 특정 문자조합의 토큰을 생성, Session에 저장하여 이를 처리 페이지로 전달한다. (전달받은 토큰과 Session을 비교하여 동일할 경우에만 다음 로직을 수행하도록 한다. )


  ** csrf 토큰이란?

  CSRF공격에 대응을 하기 위한 방어 기법 중 하나다.
  CSRF공격은 특정 액션시 넘어가는 파라미터를 가지고 그 행위를 특정 액션 이외에 자동으로 넘어가게 하기법인데 이것을 넘어가는값 중에 랜덤으로 발행되는 키값을 넘기고 받게 해서 이값이 일치하지 않으면 그 액션을 수행하지 않는 것이다.

 

  ex) 게시판에 글을 등록시 등록폼을 통해서 반드시 등록을 해야된다는 정책을 수립하고 글을 등록폼화면을 호출시 랜덤한 키값을 세션에 저장하고, 실제로 글을 등록하려고 할 때 세션에 있는 해당 키값과 넘어온 키값이 동일한지를 체크하는 것이다. 해당 키값이 없거나 불일치하다면 그것은 CSRF공격으로 판단하는 것이다.

  CSRF공격의 방어법은 캡차 !

 

 

 


 

* 실제 사

 

[보안뉴스] 포털 다음 카페 게시글 쓸 때 악성코드 삽입 가능하다?

2016/03/15

 

다음카페에 가입한 일반 회원이 악성코드를 포함한 글을 작성할 수 있는 취약점과 해당 글에 대해 관리자가 읽을 경우 글을 작성자가 원하는 권한으로 변경할 수 있는 취약점이 발견됐다. “이번에 발견된 취약점은 Hex Code 삽입으로 XSS 필터링을 우회하는 CSRF 공격과 Html Event Tag’s Attribute를 이용한 CSRF 공격 총 2개”라며 “해당 취약점은 포털사 다음의 XSS 필터링 정책을 우회하고, 회원등급 변경 URL을 이용한 CSRF 공격이 가능하다”고 밝혔다.

 

2008년 1080만명의 개인정보가 유출되었던 옥션 해킹사건에 사용된 공격기법

 

그럼 Part 9으로 넘어갑니당 ~

 

 

 

 

반응형

댓글