Detecting CSRF through Analysis of Web Site Structure and Web Usage Patterns

웹사이트 구조와 사용패턴 분석을 통한 CSRF 공격 탐지

  • 최재영 (인천대학교 컴퓨터공학과) ;
  • 이혁준 (인천대학교 컴퓨터공학과) ;
  • 민병준 (인천대학교 컴퓨터공학과)
  • Received : 2011.12.09
  • Accepted : 2011.12.20
  • Published : 2011.12.30

Abstract

It is difficult to identify attack requests from normal ones when those attacks are based on CSRF which enables an attacker transmit fabricated requests of a trusted user to the website. For the protection against the CSRF, there have been a lot of research efforts including secret token, custom header, proxy, policy model, CAPTCHA, and user reauthentication. There remains, however, incapacitating means and CAPTCHA and user reauthentication incur user inconvenience. In this paper, we propose a method to detect CSRF attacks by analyzing the structure of websites and the usage patterns. Potential victim candidates are selected and website usage patterns according to the structure and usage logs are analyzed. CSRF attacks can be detected by identifying normal usage patterns. Also, the proposed method does not damage users' convenience not like CAPTCHA by requiring user intervention only in case of detecting abnormal requests.

CSRF(Cross Site Request Forgery)는 정상적인 자격을 부여받은 사용자의 요청을 변조하여 웹서버로 보내는 공격으로 정상적인 요청과 공격 요청을 구별하기 어렵다. CSRF 방지를 위해 비밀 토큰, 커스텀 헤더, 프록시, 정책 모델, CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart), 사용자 재인증 등이 연구되고 이용되고 있다. 그러나 무력화시킬 수 있는 공격 기법이 존재하며, CAPTCHA나 사용자 재인증의 남용은 웹사이트의 사용 편의성을 저하시킨다. 본 논문에서는 웹사이트의 구조와 웹사이트 사용 패턴을 분석하여 CSRF 공격을 탐지하는 방법을 제안한다. CSRF 공격 대상 후보를 선출하고 웹사이트 구조에 따른 패턴과 사이트 사용 로그를 분석한다. 정상적인 사용패턴을 추출하여, CSRF 공격을 탐지한다. 제안한 방법을 적용하여 CSRF 방지를 위해 정상 요청 시에도 사용자 개입을 요구하여 CAPTCHA를 입력하는 불편을 해소하고 이상 요청패턴을 탐지 시에만 사용자가 개입하도록 하여 CSRF를 방어하며 사용 편의성을 유지할 수 있음을 확인하였다.

Keywords

References

  1. David Gourley and Brian Totty, "HTTP: The Definitive Guide", O'Reilly Media, 2002.
  2. http://www.owasp.org/index.php/Cross-Site_Request_Forgery
  3. OWASP, CSRF Guard, http://www.owasp.org/index.php/CSRF_Guard
  4. N. Jovanovic, E. Kirda, and C. Kruegel, "Preventing Cross Site Request Forgery attacks", In IEEE International Conference on Security and Privacy in Communication Networks (SecureComm), 2006.
  5. A. Barth, C. Jackson, and J. C. Mitchell, "Robust defenses for Cross-Site Request Forgery", In Proceedings of the 15th ACM Conference on Computer and Communications Security (CCS 2008), 2008.
  6. Mike Shema, "Seven Deadliest Web Application Attacks", Syngress, 2010.
  7. A. Klein. Forging, "HTTP request headers with Flash", http://www.securityfocus.com/archive/1/441014, 2006.
  8. M. Johns and J. Winter, "RequestRodeo: Client side protection against session riding", In In Proceedings of the OWASP Europe 2006 Conference, 2006
  9. W. Maes, T. Heyman, L. Desmet, and W. Joosen, "Browser Protection against Cross-Site Request Forgery", In Workshop on Secure Execution of Untrusted Code (SecuCode), 2009.
  10. www.captcha.net
  11. Bing Liu, "Web Data Mining: Exploring Hyperlinks, Contents, and Usage Data", Springer, 2006.
  12. J. Srivastava, R. Cooley, M. Deshpande, P.-N. Tan, "Web usage mining: Discovery and applications of usage patterns from web data", ACM SIGKDD, 2000.