**크로스 사이트 스크립팅(XSS) 공격 종류 및 대응 방법**

§크로스 사이트 스크립트 취약점?

  • 취약한 웹 사이트에 악성 스크립트를 포함할 수 있는 손쉬운 방법 중에 하나다.

  1. 사이버 공격 동향

    • 내부 시스템에 대한 비인가 접속 시도 및 공격 차단 => 내부 사용자의 합법적인 인터넷 사용을 악용하는 방식으로 공격 변경

      EX) 사용자가 정상적으로 웹 사이트를 접속할 때 또는 이메일을 읽을 때 공격자가 악성 스크립트를 포함시켜 개인 pc 감염시키고 정보탈취

    •  

     

  1. HTTP 프로토콜

    • XSS공격은 웹 응용에 존재하는 취약점을 기반으로 웹 서버와 클라이언트간 통신 방식인 HTTP 프로토콜 동작 과정중에 발생

    • ㅇHTTP(웹 개발하는 사람이라면 누구나 다 알아야 하는 통신 프로토콜)

      • 프로토콜? 상호간의 정의한 규칙을 의미, 데이터 주고받기 위해 정의됨

      • 상태없는 프로토콜(데이터 주고받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다.)

      • 클라이언트(요청을 보내는 쪽. 웹 관점으로 봤을 떄 브라우저)와 서버 (요청을 받는 쪽. 일반적으로 데이터를 보내주는 원격지의 컴퓨터)로 이루어짐

        • **GET** : 존재하는 자원에 대한 **요청**

        • **POST** : 새로운 자원을 **생성**

        • **PUT** : 존재하는 자원에 대한 **변경**

        • **DELETE** : 존재하는 자원에 대한 **삭제**

    • 클라이언트는 서버로 헤더 정보를 포함하여 관련 정보 **요청**을 하면, 웹 서버는 클라이언트 요청을 분석하여 요청한 자원데이터 및 헤더를 포함하여 클라이언트로 **응답**을 보낸다

§. XSS취약점 및 공격

  1. `현황`

    • XSS는 이런 상황에서 발생한다.

      1. 앱에서 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터를 검증하지 않을 때

      1. 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터를 검증하지 않을 때

      2. 출력시 위험 데이터를 무효화 시키지 않을 때

    **※ 공격자가 의도적으로 브라우저에서 실행될 수 있는 악성 스크립트를 웹 서버에 입력 할 때 or 출력 할때 위험한 문자를 중성화 시키지 않고 처리하는 앱 개발 시 발생**

    **※일반적으로 자바스크립트에서 발생. BUT [VB스크립트 ACTIVE X등 클라이언트에서 실행되는 <u>동적 데이터를 생성</u>하는 모든 언어에서 발생 가능 ]**

`2.XSS 취약점을 이용한 공격방법은 총 3가지다`

***<u>**[저장 XSS공격]: 접속 자가 많은 웹사이트를 대상으로 공격자가 XSS 취약점이 있는 웹 서버에 공격용 스크립트를 입력시키면 방문자가 악성스크립트가 삽입되어있는 페이지를 읽는 순간 방문자 브라우저 공격</u>*****

▶게시판 같은 곳에 HTML 문서에 <script>를 이용하여 이 스크립트 태그 안에 악성 스크립트를 저장하는 방식! ex) <script> "악성 스크립트" </script>

<script>alert(document.cookie)</script>

[반사 XSS공격]: 악성 스크립트가 포함된 URL을 사용자가 클릭하도록 유도하여 클라이언트 공격

▶웹 애플리케이션의 지정된 변수를 이용할 때 발생하는 취약점을 이용

▶서버에 검색 내용을 입력하면, 검색 결과가 있는 경우 결과 값을 사용자에게 전달하지만 서버에 정확한 결과가 없는 경우 브라우저에 입력한 값을 HTML문서에 포함하여 응답. 이경우 HTML 페이지에 포함된 악성 스크립트가 브라우저에서 실행

<html> <body> <div id="pageTitleTxt"> <h2><span class="highlight">Search Results</span><br /> Search: "<script>alert(document.cookie)</script>"</h2> </body> </html>

[DOM기반 XSS공격]: DOM환경에서 악성 URL을 통해 사용자의 브라우저 공격

▶피해자의 브라우저가 HTML 페이지를 구문 분석 할 때마다 공격 스크립트가 DOM 생성의 일부로 실행되면서 공격.

▶페이지 자체는 변하지 않으나 페이지에 포함되어 있는 브라우저 측 코드 DOM환경에서 악성코드로 실행된다.

▶다른 XSS공격은 악성 페이로드가 서버 측 애플리케이션 취약점으로 인해 응답 페이지에 악성 스크립트가 포함되어 브라우저로 전달되면서 공격하는 반면, DOM기반 XSS는 서버와 관계없이 브라우저에서 발생

§. XSS공격으로 얻을 수 있는 것

  1. 쿠키 정보/세션 ID획득

  2. 시스템 관리자 권한 획득

  3. 악성코드 다운로드

§. XSS취약점 예방 기술

  • 많은 조직에서 XSS공격을 대응하기 위해 웹 방화벽을 도입하여 방어 중

    • 대부분의 웹 방화벽은 시그니처 기반의 XSS공격만 탐지

    • 특정 문자열을 탐지하는 기술은 쉽게 우회 가능

  • 웹 애플리케이션 개발자는 <script> 태그 등 브라우저에서 실행되는 위험한 문자를 중성화하여 xss 취약점 예방중

참고 URL: https://www.kisa.or.kr/uploadfile/201312/201312161355109566.pdf

https://joshua1988.github.io/web-development/http-part1/

설정

트랙백

댓글