1619, 78/81 회원가입  로그인  
   twinz
   - [해킹기법] HTTP Session Hijacking

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=835 [복사]


앞서 해킹기법에서 스니핑(sniffing)에 대해서 살펴보았다. telnet, ftp, pop3 등의 비암호화 프로토콜 어플리케이션은 스니핑 공격을 통하여 사용자 계정 및 암호 도용에 취약할 수 있음을 알게 되었다. 마찬가지로 우리가 웹 브라우징시 사용하는 HTTP 프로토콜도 이러한 도용에 취약할 수 있다.

HTTP Session Hijacking(혹은 Session ID Hijacking)이라는 공격 기법은 웹 브라우징시 세션 관리를 위해 사용되는 Session ID를 스니핑이나 무작위 추측 공격(brute-force guessing)을 통해서 도용하는 기법이다. 먼저 이러한 공격에 대한 기초적인 배경지식으로 HTTP 프로토콜의 특성 및 Session ID에 대해 이해해보도록 하겠다.


HTTP 프로토콜의 특성

HTTP는 기본적으로 비연결유지(stateless) 프로토콜이다. 반면, telnet과 ftp와 같은 프로토콜은 클라이언트와 서버 사이에 하나의 연결(session)이 성립되어 통신하는 프로토콜이다. 따라서, 우리가 보통 웹 브라우저를 열어 URL을 입력하고 해당 홈페이지에 들어간다는 것은 해당 홈페이지에 포함되어 있는 페이지(html), 그림(jpg, gif 등), 자바스크립트(js) 등을 다운받기 위해 개별적인 여러 개의 80 요청(request)을 발송한 후 서버로부터 각각의 응답(reply)
을 받는 것을 의미한다.

이러한 일련의 요청과 응답이 이루어진 후 해당 서버와의 통신은 다시 종료된다. 위와 같은 기본적인 지식을 알고 있다면 다음과 같은 질문을 할 수 있다. HTTP는 비연결유지 프로토콜이라고 하였는데 Session Hijacking 이란 공격은 어떻게 가능한 것인가? 이는 HTTP 세션 관리를 위해 사용되는 Session ID를 통해서 가능하다.


Session ID란 무엇인가?

웹 서버는 다수의 웹 페이지 요청자를 구별하기 위하여 각각의 사용자의 세션에 대해서 임의의 긴 문자열 값인 Session ID를 부여한다. 사용자가 홈페이지 방문시 혹은 인증 로그인시에 생성된다. 이러한 Session ID는 사용자의 계정, 암호, 그 밖의 IP 주소, timestamp 등의 여러 파라미터들을 조합하여 생성할 수 있다.

Session ID의 취약성은 무엇인가?

웹 서버에서의 Session ID 생성 기법 및 관리 기법에 따라서 다음과 같은 취약점이 존재할 수 있다.

강력하지 못한 알고리즘(Weak Algorithm)
: session ID 스트링 값을 생성함에 있어서 공격자가 reverse 엔지니어링이 가능한 쉬운 알고리즘으로 생성될 경우 cracking이나 brute-force guessing 공격의 위험이 있다.

길이가 짧은 Session ID : 강력한 암호 알고리즘을 사용하더라도 그 길이가 충분하지 않고 짧은 경우에는 cracking이나 brute-force guessing 공격의 위험이 있다.

계정 잠금 기능 미비 : 로그인 패스워드의 특정 회수 실패에 대해서는 보통 계정잠금 기능이나 해당 IP 차단 기능을 구현하고 있습니다. 그러나 보통 Session ID에 대한 무결성 침해나 특성 회수 실패에 대해서는 이러한 잠금 기능 구현이 미비하다. 따라서, brute-force guessing 공격의 위험이 있다.

무한 만료의 Session ID : 사용자의 로그 아웃 이후에도 서버측에서 해당 세션 ID값을 폐기하지 않고 무한정 유효 인정한다면 cookie sniffing이나 프락시 서버의 로그 취득을 통하여 session ID 공격이 가능하다.

평문으로 전달되는 Session ID : 서버에서 클라이언트로의 session ID 쿠키 전달 방식이 비암호화 방식일 경우에는 sniffing을 통하여 해당 값이 노출되어 공격 받을 수 있다. 특히 Session ID 값 자체가 사용자명이나 암호 등의 평문으로 구성되어 있는 경우에는 직접적인 공격이 가능하다.

위와 같은 취약성에 대한 Session ID 공격의 유형은 다음과 같다.

Session ID 공격유형

직접적인 Cookie Sniffing을 통한 Session ID 도용
간접 우회 공격을 통한 Session ID 도용

Brute-force guessing을 통한 Session ID 도용

지금까지 Session ID가 무엇인지, 어떤 형태로 존재하는지, 왜 취약한지에 대해서 알아보았다. 다음에는 실제 공격 유형에 대해 살펴보고, 대응 방안에 대해서도 논의해 보도록 하겠다.

출저 - 네이버지식인

  Hit : 12607     Date : 2007/08/28 10:28



    
whqkdnf000 왜 공격유형과 대응방안은 안올려주시는건가요??,,, 보고싶은데. 2007/08/29  
79   - [해킹기법] 스니핑 [2]     twinz
08/28 10000
78   - [해킹기법] 스니핑 [1][3]     twinz
08/28 11921
77   - [해킹기법] 스푸핑     twinz
08/28 11209
76   - [해킹기법] 서비스 거부공격     twinz
08/28 9513
75   - [해킹기법] 버퍼오버플로우     twinz
08/28 13030
74   - [해킹기법] 백도어와 트로이목마     twinz
08/28 11457
  - [해킹기법] HTTP Session Hijacking[1]     twinz
08/28 12606
72   - [해킹기법] DOS[6]     twinz
08/28 12562
71   - [해킹기법] 웹 애플리케이션 해킹[1]     twinz
08/28 12108
70   - System Hacking 리버스엔지니어링[3]     twinz
08/25 11593
69   - netstat 보안의 첫걸음     twinz
08/27 10680
68   - 해커의 수준및 기법[322]     twinz
08/27 24311
67   - 해킹상식[1]     twinz
08/27 12305
66   - 프로그래밍팁     twinz
08/27 9912
65   - 정보시스템 감리사란?[1]     twinz
08/27 13083
64   - 정보보안전문가의 개요     twinz
08/27 9014
63   - 정보보안전문가의 필요성[1]     twinz
08/27 12656
62   - 정보보안 전문가의 미래     twinz
08/25 9440
61   - 자바스크립트[1]     twinz
08/27 9732
60   - 재밌는글 설린인터넷고[1]     twinz
08/27 10102
[1]..[71][72][73][74][75][76][77] 78 [79][80]..[81]

Copyright 1999-2026 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org