CSRF 공격 막기

Web service 2010. 8. 5. 12:38

<배경>

A 포털에 로그인된 상태에서 B 블로그에 A 포털 로그인의 쿠키를 지우도록 하는 img 태그안에 src 안에 web call되게 합니다. 테스트해니. 됨..

 이런식으로 취약점을 발견하고, CSRF 적용된(?) 사례가 옥션 해킹, 네이버 카페 지기 강퇴 등이 있었음..


공격자가 특정 사이트의 게시물에 아래와 같이 img 태그를 이용해서
동일 사이트의 아래와 같이 예금을 인출 하는 악성 코드를 심어 넣는다.
피해자는 동일 사이트에 로그인 된 상태로 악성 코드가 심겨져 있는 게시물을 보는 순간 예금 인출 URL을 GET으로 동일 사이트에 보내게 된다.
서버에서는 공격에 의한 요청인지 정상적인 요청인지를 구분할 수 있는 방법이 없기 때문에 공격을 당하게 된다.


<방지대책>

1. 우선 img src안에 jpg, gif, png와 같이 명시적인 이미지 파일만 온다고 확신되면, 확장자를 통한 white list 추가하여 막으면 됨
만약.. 실시간이나 다양한 형태로 img src를 쓴다면..
2. get 방식으로 들어 오는 것을 막는다. (post일때는 뚫릴 수 있음)
3. 이와 함께 Referer white list 검사할 수 있도록 하여 막는다. 
4. 필요하면, script, iframe, link 등의 태그를 무조건 막는다.


현재 톰캣 7에서는 CSRF 공격을 막을 수 있는 필터를 제공하고 있음
http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/filters/CsrfPreventionFilter.html

'Web service' 카테고리의 다른 글

Tomcat 7 Unit Test에 쓰는 mocking framework  (0) 2010.08.05
Tomcat 7 빌드(build) 하기  (0) 2010.08.05
Tomcat 7 mark tomcat와의 인터뷰  (0) 2010.08.05
mod_proxy 이용  (0) 2010.07.30
High Performance Web 관련  (0) 2010.07.30
Posted by '김용환'
,