Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

웹개발

이제 웹 기반 응용개발 지식은 거의 필수적으로 요구되는 시대입니다. 구체적인 웹 사이트 개발은 아니더라도 거시적인 웹 기반 서비스에 대한 지식 배양을 위해 할 것이 참 많네요 ^^

[웹 보안 시리즈] 6. 데이터 변조 - 쿠키 변조

작성자 : 박종명
최초 작성일 : 2008-06-25 (수요일)
최종 수정일 : 2008-06-25 (수요일)
조회 수 : 9187

이번에는 쿠키 변조에 대해 알아 봅니다. 앞에서 알아본 세션ID 변조와 크게 다르지 않습니다.

 

* 쿠키란 ?
쿠키 역시 HTTP 무 상태 프로토콜에서의 특정 클라이언트 식별 및 데이터 공유를 위해 서버와 클라이언트간에 데이터를 주고 받는 메커니즘 입니다.

쿠키가 세션과 다른 점은 그 저장되는 장소가 클라이언트의 메모리 또는 하드 디스크란 점입니다
(세션은 서버에도 동일한 정보가 저장되는 것을 이미 알고 있습니다)

참고로 쿠키라고 이름이 붙여진 유래는 과자의 부스러기와 유사한 개념이라고 합니다.

 

* 쿠키 변조?

예전에 쇼핑몰에서는 특정 사용자의 장바구니 정보를 유지 하기 위해 쿠키를 많이사용하곤 했었습니다. 또한 현재까지도 쿠키는 아주 유용하게 사용되어 지고 있습니다.

사용자의 중요한 정보를 쿠키에 저장하여 사용하는 시나리오에서의 쿠키 변조는 심각한 문제를 야기 시킬 수도 있습니다.

예를 들면 사용자의 주민등록번호, 비밀번호와 같은 데이터 말이죠..

 

또한 만료 시간이 없는 쿠키 사용은 공공장소에서의 개인 정보 유출을 초래 할 수도 있습니다

 

* 쿠키 변조 방법

지금부터 간단한 데모 화면을 통해 쿠키 변조 방법을 살펴 봅니다.

데모를 위해 간단한 쿠키 설정 및 쿠키를 가져 오는 코드를 아래와 같이 작성합니다

 

1. SetCookie.asp

<%

  CookieValue = " 777"

  Response.Cookies("MyCookie") = CookieValue

 

  Response.Write "쿠키가 설정 되었습니다 - "& CookieValue

%>

 

2. GetCookie.asp
<%

  CookieValue = Request.Cookies("MyCookie")

 

  Response.Write CookieValue

%>

 

 

정상적인 시나리오 라면 아래와 같은 시퀀스로 구매과정이 일어 날 것입니다.

1. 쿠키 저장

 

   

 

2. 쿠키 값 확인

 
   
그러나 위 1 2의 과정에서 프록시 툴을 이용해 아래와 같이 쿠키 값을 변경합니다. 
  

 

그러면 위 2의 과정은 아래와 같이 될 것입니다. 

 

777 이었던 쿠키 값이 444로 변경되어 서버로 전달 되었습니다.

 

 

쿠키 변조는 아래와 같은 사항들을 점검 하세요..

1. 개인 정보와 같은 중요한 정보는 쿠키를 사용하지 않는다.

2. 쿠키 값을 암호화 한다.

3. 웹 방화벽이나 PKI 솔루션을 도입한다 (쿠키 변조를 차단하는 기타 보안 솔루션 도입)



  
  
 

이름
비밀번호
홈페이지
YK <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요