맨위로가기

세션 하이재킹

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

세션 하이재킹은 공격자가 다른 사용자의 유효한 세션 ID를 가로채어 권한을 획득하는 보안 공격 기법이다. 초기 HTTP 프로토콜의 취약점과 슈퍼쿠키와 같은 기능의 도입으로 인해 지속적인 보안 문제로 이어져 왔다. 주요 공격 방법으로는 세션 고정, 세션 사이드 재킹, XSS, 악성 소프트웨어 등이 있으며, TCP 시퀀스 번호 예측 공격도 세션 하이재킹에 활용될 수 있다. HTTP 세션 관리의 부적절한 구현은 세션 하이재킹의 위험을 높이며, 세션 ID 추측, 탈취, 세션 고정 공격 등의 형태로 나타난다. 안전한 세션 관리를 위해 쿠키 또는 폼 데이터의 hidden 필드를 사용하고, SSL/TLS를 통한 통신 데이터 암호화, 강력한 세션 키 사용, 로그인 후 세션 ID 재생성 등의 보안 대책이 필요하다.

더 읽어볼만한 페이지

  • 웹 취약점 공격 - 보안 취약점
    보안 취약점은 시스템의 설계, 구현, 운영, 관리상 결함이나 약점으로, 위협에 의해 악용되어 시스템 보안 정책을 위반할 수 있는 요소이며, ISO 27005, IETF RFC 4949, NIST SP 800-30, ENISA 등 다양한 기관에서 정의하고 있다.
  • 웹 취약점 공격 - 인터넷 보안
    인터넷 보안은 사이버 위협, 악성 소프트웨어, 서비스 거부 공격 등으로부터 정보와 시스템을 보호하기 위해 네트워크 계층 보안, 다단계 인증, 방화벽 등 다양한 기술과 방법을 포괄한다.
  • 취약점 공격 - 보안 취약점
    보안 취약점은 시스템의 설계, 구현, 운영, 관리상 결함이나 약점으로, 위협에 의해 악용되어 시스템 보안 정책을 위반할 수 있는 요소이며, ISO 27005, IETF RFC 4949, NIST SP 800-30, ENISA 등 다양한 기관에서 정의하고 있다.
  • 취약점 공격 - 인터넷 보안
    인터넷 보안은 사이버 위협, 악성 소프트웨어, 서비스 거부 공격 등으로부터 정보와 시스템을 보호하기 위해 네트워크 계층 보안, 다단계 인증, 방화벽 등 다양한 기술과 방법을 포괄한다.
  • 네트워크 보안 - 스파이웨어
    스파이웨어는 사용자의 동의 없이 설치되어 개인 정보를 수집하거나 시스템을 감시하며, 다양한 형태로 존재하여 광고 표시, 정보 탈취, 시스템 성능 저하 등의 피해를 유발하는 악성 프로그램이다.
  • 네트워크 보안 - 가상 사설 서버
    가상 사설 서버(VPS)는 공유 웹 호스팅과 전용 호스팅의 중간 단계 서비스로, 가상화 기술을 기반으로 슈퍼유저 수준의 접근 권한, 높은 운용 자유도와 향상된 보안성을 제공하지만, 환경 유지 관리 필요성, 상대적으로 높은 비용, 회선 공유 문제 등의 단점도 가진다.
세션 하이재킹
공격 개요
공격 유형세션 관리 공격
공격 목표사용자 세션 탈취
인증 우회
공격 방법세션 ID 예측 또는 획득
쿠키 가로채기
악성코드 감염
크로스 사이트 스크립팅 (XSS)
기술적 상세
공격 대상웹 애플리케이션, 웹 서버
취약점취약한 세션 ID 생성 알고리즘
세션 ID 암호화 미흡
XSS 공격에 취약한 웹 페이지
공격 단계

공격 종류
세션 고정 (Session fixation)공격자가 피해자에게 특정 세션 ID를 사용하도록 강제
세션 가로채기 (Session stealing)공격자가 네트워크 트래픽을 감시하여 세션 ID를 획득
크로스 사이트 스크립팅 (XSS)XSS 취약점을 이용하여 세션 쿠키를 탈취
악성코드악성코드를 통해 세션 정보를 탈취
예방 대책
세션 ID 보호강력한 세션 ID 생성 알고리즘 사용
세션 ID 암호화
HTTPS 사용
세션 ID 주기적 갱신
XSS 방지입력 값 검증 및 이스케이프 처리
쿠키 보안HttpOnly 속성 설정
Secure 속성 설정
사용자 교육의심스러운 링크 클릭 금지
관련 용어
세션 관리웹 애플리케이션에서 사용자 상태를 유지하는 메커니즘
세션 ID각 사용자 세션을 식별하는 고유한 값
쿠키웹 서버가 사용자 브라우저에 저장하는 작은 텍스트 파일
크로스 사이트 스크립팅 (XSS)웹 애플리케이션의 보안 취약점

2. 역사

HTTP 프로토콜 초기 버전(0.8 및 0.9)에는 세션 하이재킹에 필요한 쿠키 등의 기능이 없었다. 1994년 10월 13일에 출시된 Mosaic Netscape의 버전 0.9beta에서 쿠키가 지원되면서 세션 하이재킹의 가능성이 열렸다.[2]

HTTP 1.0의 초기 버전은 세션 하이재킹과 관련된 몇 가지 보안 취약점을 가지고 있었지만, 초기 HTTP 1.0 서버와 브라우저의 불안정성으로 인해 악용하기 어려웠다. 2000년대 초반부터 HTTP 1.0이 HTTP 1.1의 대체 방식으로 지정되면서 세션 하이재킹 문제는 영구적인 보안 위협으로 진화하였다.[2] HTTP 1.1에서 슈퍼쿠키 및 기타 기능 도입은 하이재킹 문제를 지속적인 보안 문제로 만들었다. 웹 서버 및 브라우저 상태 머신 표준화 역시 이러한 문제에 기여했다.

TCP에서 세션 ID에 해당하는 관리 항목은 IP 주소와 시퀀스 번호이다. 송신 IP 주소 위조와 TCP 시퀀스 번호 예측 공격을 조합하여, 확립된 TCP 세션에 부정 데이터를 삽입하거나 세션을 강제로 끊을 수 있으며, 세션 하이재킹이 가능하다.

TCP 시퀀스 번호 예측 공격과 관련해서는 다음과 같은 사건들이 있었다.

연도사건 내용
1985년밥 모리스(Bob Morris)가 TCP 시퀀스 번호 예측 공격을 통한 세션 하이재킹 수법을 보고함.
1995년TCP 시퀀스 번호 예측 공격 취약점을 이용한 광범위한 공격 발생 (CA-1995-01).
2001년TCP 구현 문제로 인한 취약점이 지적됨 (CA-2001-09).



2008년 현재는 이러한 문제에 대한 대책이 이루어져 잠잠해진 상태이다.

3. 세션 하이재킹의 방법

세션 하이재킹은 주로 웹 애플리케이션에서 사용자의 세션 ID를 탈취하여 이루어진다. 세션 ID는 사용자를 식별하고 인증 상태를 유지하는 데 사용되는 정보이다. 세션 하이재킹은 통신의 당사자가 아닌 제3자(공격자)가 세션 ID를 획득하여 세션을 가로채는 공격 수법이다. 웹 애플리케이션에서는 사용자가 처음에 로그인할 때 비밀번호를 요구하지만, 로그인 성공 후에는 세션 ID만으로 사용자를 식별하는 경우가 많다. 따라서 공격자가 세션 ID를 탈취하면 사용자의 비밀번호를 몰라도 세션을 가로챌 수 있다.

웹 애플리케이션에 대한 세션 하이재킹은 크게 세 가지 유형으로 분류할 수 있다.

유형설명
세션 ID 추측세션 ID를 연번, 시간, 사용자 ID, 이메일 주소 등 추측하기 쉬운 방법으로 할당하는 경우에 가능한 공격이다.
세션 ID 탈취크로스 사이트 스크립팅, HTTP 헤더 주입, 미들웨어 취약점 등 웹 애플리케이션의 취약점을 이용하여 브라우저에 보관된 세션 ID를 훔치는 방법이다.
세션 ID 고정 공격 (세션 픽세이션 공격)공격자가 피해자의 브라우저에 자신이 준비한 ID를 삽입하여 세션을 하이재킹하는 방법이다.



HTTP는 원래 세션 관리 메커니즘을 갖추고 있지 않기 때문에, 웹 애플리케이션 측에서 세션 관리 메커니즘을 준비하고 브라우저에 세션 ID를 부여해야 한다. 그러나 이 세션 관리 메커니즘이 부적절하면 세션 하이재킹의 위험이 있다.

3. 1. 세션 ID 획득 방법


  • '''세션 고정''': 공격자가 사용자의 세션 ID를 자신이 알고 있는 ID로 설정하는 방법이다. 예를 들어, 특정 세션 ID가 포함된 링크가 있는 이메일을 사용자에게 보내는 방식이다. 공격자는 사용자가 로그인할 때까지 기다린 후 해당 세션 ID를 이용하여 세션을 가로챌 수 있다.[3]
  • '''세션 사이드 재킹''': 공격자가 패킷 스니핑을 사용하여 네트워크 트래픽을 감청하고, 암호화되지 않은 HTTP 쿠키를 훔치는 방법이다. 많은 웹사이트가 로그인 페이지에는 SSL 암호화를 사용하지만, 인증 후에는 암호화를 사용하지 않는 경우가 많다. 이 점을 노려 공격자는 세션 쿠키를 훔쳐 피해자를 사칭할 수 있다.[3] 특히 보안되지 않은 와이파이 핫스팟이 취약하다.
  • '''XSS''': 공격자가 웹 사이트 취약점을 이용해 사용자의 컴퓨터에서 악성 코드를 실행시켜 쿠키를 훔치거나 다른 공격을 수행하는 방법이다.
  • '''악성 소프트웨어''': 잠재적 원치 않는 프로그램이나 악성코드를 통해 사용자의 브라우저 쿠키 파일을 훔치는 브라우저 하이재킹을 수행할 수 있다.[4] 물리적으로 접근 가능한 공격자는 사용자의 컴퓨터나 서버에서 세션 키를 직접 훔칠 수도 있다.
  • '''세션 ID 추측''': 세션 ID가 연번, 시간, 사용자 ID, 이메일 주소 등 예측 가능한 방식으로 생성된 경우, 공격자가 이를 추측하여 세션을 탈취할 수 있다.
  • '''리퍼러 악용''': 세션 ID가 URL에 포함되는 경우, HTTP 리퍼러를 통해 공격자가 세션 ID를 획득할 수 있다. 예를 들어, SNS에서 공격자가 대상 사용자에게 링크를 보내고, 사용자가 링크를 클릭하면 공격자는 리퍼러 정보를 통해 세션 ID를 알 수 있다.

3. 2. TCP 세션 하이재킹

TCP은 IP 통신에 대해 연결 기능을 제공하며, 최소한의 세션 기능을 갖춘 것이라고 할 수 있다.

TCP에서 세션 ID에 해당하는 관리 항목은 IP 주소와 시퀀스 번호이다. 송신 IP 주소 위조와 TCP 시퀀스 번호 예측 공격을 조합하여, 확립된 TCP 세션에 부정 데이터를 삽입하거나 세션을 강제로 끊을 수 있으며, 세션 하이재킹이 가능하다.

TCP 시퀀스 번호 예측 공격은 1985년에 밥 모리스(Bob Morris)가 공격 수법을 보고하였고, 1995년에 이 취약점을 이용한 광범위한 공격(CA-1995-01)이 발생하였으며, 2001년에는 불충분한 구현에 따른 문제(CA-2001-09)가 지적되는 등 과거부터 여러 번 문제가 되었지만, 대책이 이루어지고 있는 2008년 현재는 잠잠해졌다.

4. HTTP 세션 관리 및 대응

HTTP는 원래 브라우저의 요청에 대해 웹 페이지를 반환하는 일방향 통신을 상정하고 있으며, HTTP 자체에는 세션 관리 메커니즘이 없다. 따라서 웹 애플리케이션 측에서 세션 관리 메커니즘을 구현하고 브라우저에 세션 ID를 부여해야 한다. 하지만 이 세션 관리 메커니즘이 부적절하면 세션 하이재킹 위험이 있다.[2]

웹 애플리케이션의 세션 하이재킹은 다음 세 가지 유형으로 분류할 수 있다.


  • '''세션 ID 추측:''' 세션 ID를 연번, 시각[24], 사용자 ID[24], 이메일 주소[24] 등 추측하기 쉬운 방식으로 할당하면 공격자가 세션 ID를 추측할 수 있다.
  • '''세션 ID 탈취:''' 크로스 사이트 스크립팅[24], HTTP 헤더 주입[24], 미들웨어 취약점[24] 등 웹 애플리케이션의 취약점을 이용하여 브라우저에 보관된 세션 ID를 훔친다. 리퍼러를 악용하여 세션 ID를 탈취할 수도 있다.[24]
  • '''세션 고정 공격:''' 공격자가 피해자의 브라우저에 자신이 준비한 세션 ID를 삽입하는 공격이다.

4. 1. 세션 ID 송수신 방법

웹 애플리케이션과 브라우저가 세션 ID를 주고받는 방법은 다음 세 가지가 있다.[5]

방법설명보안 취약점
쿠키 (Cookie)가장 일반적인 방법이다. 웹 서버가 `Set-Cookie` 응답 헤더를 사용하여 세션 ID를 브라우저에 저장하고, 브라우저는 이후 요청에 쿠키를 포함하여 서버로 전송한다. (`RFC 6265` 규정)비교적 안전
폼(Form) 데이터의 `hidden` 필드세션 ID를 HTML 폼의 `hidden` 필드에 넣어 전송한다. 페이지 전환 시 폼 데이터 전송을 사용해야 한다.비교적 안전
URLURL에 세션 ID를 포함하는 방법.세션 하이재킹 위험에 노출되므로, 특별한 이유가 없는 한 사용해서는 안 된다.[5]



보안을 고려하면 쿠키나 폼 데이터의 `hidden` 필드를 이용하여 세션 관리를 해야 한다. 폼 데이터의 `hidden` 필드를 이용하는 방식이 쿠키를 이용하는 방식보다 세션 ID가 공격자에게 덜 노출되지만,[5] 구현이 복잡해지는 단점이 있다.[5]

4. 2. 보안 대책


  • SSL/TLS를 사용하여 데이터 통신을 암호화하여 세션 키를 보호한다. 특히 로그인 및 금융 거래와 같이 민감한 정보를 다루는 페이지에서는 필수적이다.[21]
  • 길고 예측 불가능한 임의의 숫자나 문자열을 세션 키로 사용하여 공격자가 추측하기 어렵게 만든다.
  • 로그인 성공 후에는 반드시 세션 ID를 재생성하여 세션 고정 공격을 방지한다.
  • 사용자의 IP 주소를 확인하는 등의 추가적인 인증 절차를 통해 공격을 방어할 수 있다. 그러나 동일한 IP 주소를 사용하는 사용자의 공격은 막을 수 없다.
  • 모든 요청에 대해 쿠키 값을 변경하여 공격 시간을 단축하고 공격을 식별한다.
  • 사용자는 웹사이트 사용을 마칠 때마다 로그아웃하여 세션을 종료하는 것이 좋다.[23][24]
  • 웹 애플리케이션 개발 도구(웹 애플리케이션 프레임워크)에서 제공하는 세션 관리 기능을 활용하는 것이 좋다. 세션 관리 기능을 직접 구현하는 것은 피해야 한다.[24]

5. 취약점 및 공격 도구

파이어쉽은 2010년 10월에 소개된 파이어폭스 확장 기능으로, 보안되지 않은 네트워크에서 세션 하이재킹 취약점을 시연했다. 이 확장 기능은 인기 웹사이트에서 암호화되지 않은 쿠키를 캡처하여, 동일 네트워크상의 다른 사용자의 활성 세션을 탈취할 수 있게 했다. 이 도구는 사이드바에 잠재적 대상자를 표시하여 비밀번호 도용 없이 세션에 접근할 수 있도록 했다. 지원되는 웹사이트로는 페이스북, 트위터, 플리커, 아마존, 윈도우 라이브, 구글 등이 있으며, 스크립트를 사용하여 다른 웹사이트를 추가할 수도 있었다.[6] 불과 몇 달 후, 페이스북과 트위터는 HTTP 전체 적용을 제안하고 (이후에는 필수화) 대응했다.[7][8]

DroidSheep은 웹 세션 하이재킹(sidejacking)을 위한 간단한 안드로이드 도구이다. 무선(802.11) 네트워크 연결을 통해 전송된 HTTP 패킷을 수신하고 이러한 패킷에서 세션 ID를 추출하여 재사용한다. DroidSheep은 libpcap 라이브러리를 사용하여 세션을 캡처할 수 있으며, 개방형(암호화되지 않은) 네트워크, WEP 암호화 네트워크, WPA/WPA2 암호화 네트워크(PSK만 해당)를 지원한다. 이 소프트웨어는 libpcap 및 arpspoof를 사용한다.[9][10] 구글 플레이에서 제공되었지만 구글에 의해 삭제되었다.

CookieCadger는 암호화되지 않은 GET 요청을 사용하는 애플리케이션에서 정보 유출을 식별하는 데 도움이 되도록 HTTP 요청의 사이드재킹 및 재실행을 자동화하는 그래픽 자바 애플리케이션이다. 이는 유선 이더넷, 보안되지 않은 와이파이를 모니터링하거나 오프라인 분석을 위해 패킷 캡처 파일을 로드할 수 있는 와이어샤크 제품군을 기반으로 하는 크로스 플랫폼 오픈 소스 유틸리티이다. Cookie Cadger는 Shutterfly (AYSO 축구 리그에서 사용) 및 TeamSnap과 같은 청소년 팀 공유 사이트의 취약점을 강조하는 데 사용되었다.[11]

쿠키 몬스터(CookieMonster)는 "암호화된 세션만" 속성이 제대로 설정되지 않은 경우 제3자가 HTTPS 쿠키 데이터를 획득할 수 있는 중간자 공격의 일종이다. 이는 민감한 개인 정보나 금융 정보가 포함된 사이트에 대한 접근을 허용할 수 있다. 2008년에는 Gmail, 구글 문서, 이베이, 넷플릭스, 캐피탈원, 익스피디아를 포함한 주요 웹사이트에 영향을 미칠 수 있었다.[12] 이것은 보안 연구원 마이크 페리(Mike Perry)가 개발한 파이썬 기반 도구이다. 페리는 2007년 BugTraq에서 쿠키 몬스터가 악용한 취약점을 처음 발표했다. 1년 후, 그는 데프콘 16(Defcon 16)에서 쿠키 몬스터를 개념 증명 도구로 시연했다.[13][14][15][16][17][18][19][20]

참조

[1] 간행물 CookiExt: Patching the browser against session hijacking attacks 2015-09-16
[2] 웹사이트 Session Hijacking & HTTP Communication https://cwatch.comod[...] 2020-10-19
[3] 웹사이트 Warning of webmail wi-fi hijack http://news.bbc.co.u[...] BBC News 2007-08-03
[4] 웹사이트 Malware use Browser Hijacking to steal cookie https://blog.malware[...] 2020-10-19
[5] 서적 Engineering Secure Software and Systems Springer 2011
[6] 뉴스 Firefox extension steals Facebook, Twitter, etc. sessions http://www.h-online.[...] 2010-10-25
[7] 뉴스 Facebook now SSL-encrypted throughout http://www.h-online.[...] 2011-01-27
[8] 뉴스 Twitter adds 'Always use HTTPS' option http://www.h-online.[...] 2011-03-16
[9] 웹사이트 DroidSheep https://code.google.[...]
[10] 웹사이트 DroidSheep Blog http://droidsheep.de[...] 2012-08-07
[11] 웹사이트 How Shutterfly and Other Social Sites Leave Your Kids Vulnerable to Hackers https://www.motherjo[...] 2013-05-03
[12] 웹사이트 CookieMonster nabs user creds from secure sites • The Register https://www.theregis[...] www.theregister.co.uk 2009-02-18
[13] 웹사이트 CookieMonster: Cookie Hijacking {{!}} fscked.org https://fscked.org/p[...] 2018-12-18
[14] 웹사이트 CookieMonster Can Steal HTTPS Cookies -- Security -- InformationWeek http://www.informati[...] 2008-09-11
[15] 웹사이트 CookieMonster nabs user creds from secure sites https://www.theregis[...] 2018-12-18
[16] 웹사이트 Incomplete List of Alleged Vulnerable Sites {{!}} fscked.org https://fscked.org/b[...] 2018-12-18
[17] 웹사이트 HTTPS Cookie-Hijacking Tool CookieMonster Gobbles Personal Data https://www.eweek.co[...] Ziff-Davis 2008-09-12
[18] 웹사이트 Perry's Defcon Presentation (YouTube) https://www.youtube.[...]
[19] 웹사이트 Defcon Presentation slides https://fscked.org/p[...]
[20] 웹사이트 CookieMonster Core Logic, Configuration, and READMEs http://fscked.org/bl[...]
[21] 웹사이트 Schneier on Security: Firesheep http://www.schneier.[...] 2011-05-29
[22] 서적 Secure IT Systems
[23] 웹사이트 NetBadge: How To Log Out http://itc.virginia.[...]
[24] 웹사이트 Be Card Smart Online - Always log out http://www.becardsma[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com