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를 방어하며 사용 편의성을 유지할 수 있음을 확인하였다.