본문 바로가기
💻Information Security

XSS와 CSRF의 차이와 구분

by Prof. Panda 2024. 2. 1.

Levi Meir Clancy on Unsplash

XSS와 CSRF의 공통점

XSS와 CSRF는 둘 다 직접적인 공격대상이 클라이언트 측 사용자라는 것이 가장 큰 공통점입니다. XSS의 경우 브라우저가 스크립트를 해석하여 실행시킨다는 것이고, CSRF의 경우는 피해자(사용자)의 권한으로 의도하지 않은 요청이 보내지는 것입니다. 따라서 해당 행위에 따른 피해는 피해자가 받게된다는 것입니다. 뿐만아니라, 공격 방식도 일반적으로 특정 악의적인 공격이 담겨있는 URL에 접근하거나 요청하는 것으로 이루어지기 때문에 공격이 받는 방식이 거의 완전히 유사합니다. 이러한 눈에 확실히 보이는 공통적인 특징 때문에 이 두 공격 방식은 헷갈리기기 매우 쉽습니다.

둘의 차이점

그럼에도 불구하고, 이 둘은 명백한 차이가 있습니다. XSS는 브라우저에서 스크립트를 해석하는 과정에서 악의적인 스크립트가 실행되는 것이므로 실행되는 것 자체가 클라이언트 측에서 실행됩니다. 공격 대상이 서버가 아니므로 서버측을 대상으로 흔적이 남지 않을 수도 있습니다. 반면, CSRF는 '요청'을 위조하여 보내는 것입니다. 공격자가 사용자가 보내는 요청인 것처럼 위조하여서 임의의 값을 '서버로 전송'하는 것입니다. 즉, 서버로 요청을 전송하는 것이기 때문에 서버에 기록이 남지 않을 이유가 없으며 방어의 책임도 서버가 더 큽니다. 이름에서도 유추할 수 있듯, 크로스사이트 스크립팅(XSS)은 스크립트가 실행되는 것이 중심인 반면, 크로스 사이트 요청 위조(CSRF)는 요청이 보내지는 것이 중심입니다. 

둘의 관계

XSS와 CSRF는 함께 실행되는 경우가 많습니다. 따라서 더욱 헷갈리기 쉽습니다. XSS가 상위 개념인 것은 아니지만 범위가 더 넓다는 것과 CSRF를 실행시키도록 하기 위해 XSS를 사용한다는 점에서 XSS의 공격 일부로 CSRF를 생각하는 것으로 착각하기도 쉽습니다. 하지만, 스크립트가 실행되지 않더라도 CSRF 공격은 충분히 가능할 수 있으며 공격의 목표가 다르다는 것을 생각해보면 구분하기가 쉬울 수 있습니다. XSS 공격 자체는 매우 다양하고 방식도 다양합니다. 다만, 상대적으로 CSRF에 비해서는 위험성이 적어보이는 것도 사실입니다. CSRF의 경우 사용자의 민감한 정보나 권한과 관련된 요청을 보내는 것을 목표로 하여 공격에 성공한 경우 그 영향력이 XSS보다 일반적으로 더 큽니다. 따라서, XSS 취약점과 CSRF 취약점이 합쳐졌을 때 생길 수 있는 문제가 더 크다고 할 수 있습니다. XSS를 더욱 위협적이게 해주는 CSRF, 그리고 CSRF에게 날개를 달아주는 XSS는 서로 정말 시너지가 잘 맞는 친구입니다. 이 둘은 같은 부분도 있지만 명백하게 다른 공격이면서 서로 긴밀한 관계를 가지고 있는 정말 나쁜 친구들이라고 할 수 있습니다. 이런 불량한 친구들과는 가까이 하지 않는게 좋겠네요!

'💻Information Security' 카테고리의 다른 글

SlowLoris(늘보로리스)와 RUDY DDoS에 대해  (0) 2024.02.01
TCP와 UDP의 개념과 차이점  (0) 2024.02.01
Burp Suite 사용법  (0) 2024.01.30
XSS 공격 시나리오  (1) 2024.01.29
DOM(Document Object Model)이란?  (0) 2024.01.29