- XSS 보안 취약점 이슈가 발생했을 때 대응 방안에 대해 설명합니다.
XSS란?
- XSS는 Cross Site Scripting의 약자로 웹 서비스에 Javascript 등 스크립트를 실행할 수 있는 코드를 삽입하여 다른 사용자 등에게 공격자가 의도한 스크립트를 실행하게 하는 공격 방법입니다.
- XSS는 대표적으로
Reflected XSS
, Stored XSS
, DOM Based XSS
로 분류할 수 있습니다.
- Reflected XSS (반사식 XSS)는 웹 애플리케이션의 지정된 변수를 이용할 때 발생하는 취약점을 이용하는 것입니다.
- 검색 결과, 에러 메시지 등 서버가 외부에서 입력받은 값을 받아 브라우저에게 응답할 때 전송 과정에서 입력되는 변수의 위험한 문자를 사용자에게 그대로 돌려주면서 발생합니다.
- 대부분은 일회성 공격입니다.
- Stored XSS (저장식 XSS)는 웹 애플리케이션 취약점이 있는 웹 서버에 악성 스크립트를 영구적으로 저장해 놓는 방법입니다.
- DOM Based XSS (DOM 기반 XSS)는 피해자의 브라우저가 HTML 페이지를 구문 분석할 때마다 공격 스크립트가 DOM 생성의 일부로 실행되면서 공격합니다.
- 페이지 자체가 변하지 않으나 페이지에 포함되어 있는 브라우저측 코드가 DOM 환경에서 악성코드로 실행됩니다.
- 이러한 특성 때문에 DOM Based XSS는 웹사이트의 코드를 조사하지 않고는 취약점을 발견하기 힘들며, 전문 기술 지식을 갖추지 않은 이상 공격에 당하기 쉽습니다.
Reference
http://blog.plura.io/?p=7614
https://junhyunny.github.io/information/security/spring-mvc/reflected-cross-site-scripting/