세션 가로채기
Session hijacking이 섹션은 검증을 위해 추가 인용구가 필요하다.(2010년 6월) (이 과 시기 |
컴퓨터 과학에서 세션 하이잭킹은 때때로 쿠키 하이잭킹이라고도 알려져 있는데, 컴퓨터 시스템의 정보나 서비스에 대한 무단 액세스를 얻기 위해 유효한 컴퓨터 세션(세션 키라고도 함)을 이용하는 것이다.특히 원격 서버에 대한 사용자 인증에 사용되는 매직 쿠키의 도난을 가리키는 데 쓰인다.많은 웹사이트에서 세션을 유지하기 위해 사용되는 HTTP 쿠키는[1] 공격자가 중간 컴퓨터를 사용하거나 피해자의 컴퓨터에 저장된 쿠키에 접근하여 쉽게 도난당할 수 있기 때문에 웹 개발자와 특별히 관련이 있다(HTTP 쿠키 도난 참조).적절한 세션 쿠키를 성공적으로 훔친 후, 상대방은 세션 가로채기를 수행하기 위해 쿠키 통과 기술을 사용할 수 있다.[2] 쿠키 하이잭킹은 일반적으로 인터넷상의 클라이언트 인증확인을 반대하여 사용된다.[3]현대의 웹 브라우저는 쿠키 보호 메커니즘을 사용하여 웹이 공격받는 것을 방지한다.[3]
일반적인 방법은 소스로 라우팅된 IP 패킷을 사용하는 것이다.이를 통해 네트워크상의 B 지점에 있는 공격자가 B의 기계를 통과하도록 IP 패킷을 유도함으로써 A와 C의 대화에 참여할 수 있다.
소스 라우팅을 끄면 공격자는 "블라인드" 하이잭킹을 사용할 수 있으며, 여기서 두 기계의 반응을 추측할 수 있다.따라서 공격자는 명령을 보낼 수는 있지만, 결코 반응을 볼 수는 없다.그러나, 일반적인 명령은 인터넷 상의 다른 곳에서 접속할 수 있는 암호를 설정하는 것이다.
공격자는 또한 대화를 보기 위해 냄새를 맡는 프로그램을 사용하여 A와 C 사이에 "인라인"이 될 수 있다.이것은 "중간 공격"으로 알려져 있다.
HTTP의 역사
HTTP 프로토콜 버전 0.8과 0.9에는 세션 가로채기에 필요한 쿠키 및 기타 기능이 부족했다.1994년 10월 13일 발매된 모자이크 넷스케이프 버전 0.9베타는 쿠키를 지원했다.
초기 버전의 HTTP 1.0은 세션 가로채기와 관련된 일부 보안 취약점이 있었지만 대부분의 초기 HTTP 1.0 서버와 브라우저의 질 때문에 이용하기 어려웠다.2000년대 초반부터 HTTP 1.0이 HTTP 1.1의 대체 서버로 지정되었고 HTTP 1.0 서버가 모두 본질적으로 HTTP 1.1 서버로서 세션 가로채기 문제는 거의 영구적인 보안 위험으로 진화되었다.[4]
현대화된 HTTP 1.1과 함께 슈퍼쿠키와 다른 기능들을 도입함으로써 납치 문제가 지속적인 보안 문제가 될 수 있게 되었다.웹서버 및 브라우저 상태 컴퓨터 표준화는 이러한 지속적인 보안 문제에 기여했다.
방법들
세션 하이잭을 저지르기 위해 사용되는 네 가지 주요 방법이 있다.다음은 다음과 같다.
- 세션 고정: 예를 들어 공격자가 특정 세션 ID가 포함된 링크가 포함된 이메일을 사용자에게 전송하여 사용자의 세션 ID를 알려진 세션 ID로 설정하는 경우.이제 공격자는 사용자가 로그인할 때까지 기다리면 된다.
- 세션 사이드 잭킹(Session side jacking), 공격자가 패킷 스니핑을 사용하여 두 당사자 사이의 네트워크 트래픽을 읽고 세션 쿠키를 도용함.많은 웹 사이트는 공격자가 암호를 볼 수 없도록 로그인 페이지에 SSL 암호화를 사용하지만 인증되면 사이트의 나머지 부분에 대해서는 암호화를 사용하지 않는다.이것은 네트워크 트래픽을 읽을 수 있는 공격자가 서버에 제출되는 모든 데이터나 클라이언트가 보는 웹 페이지를 가로챌 수 있게 해준다.이 데이터에는 세션 쿠키가 포함되기 때문에 비밀번호 자체가 훼손되지 않더라도 피해자를 사칭할 수 있다.[1]보안되지 않은 Wi-Fi 핫스팟은 특히 취약하다. 네트워크를 공유하는 사람은 일반적으로 다른 노드와 액세스 지점 사이의 대부분의 웹 트래픽을 읽을 수 있기 때문이다.
- 사이트 간 스크립팅 - 공격자가 사용자의 컴퓨터에서 실행 중인 코드를 속여서 실행하도록 하는 데, 이 코드가 서버에 속하므로 신뢰할 수 있는 것으로 간주되어 공격자가 쿠키 복사본을 얻거나 다른 작업을 수행할 수 있게 하는 기능.
- 악성코드와 원하지 않는 프로그램은 브라우저 가로채기를 이용해 사용자 모르게 브라우저의 쿠키 파일을 도용한 다음 사용자 모르게 (안드로이드 앱 설치 등) 액션을 수행할 수 있다.[5]물리적 액세스가 있는 공격자는 예를 들어 사용자의 컴퓨터나 서버의 해당 부분의 파일이나 메모리 내용을 입수함으로써 세션 키를 훔치려고 시도할 수 있다.
적절한 세션 쿠키를 성공적으로 획득한 후, 상대방은 쿠키 패스(Pass the Cookie) 기술을 활용하여 세션 가로채기를 수행할 수 있다.
악용
파이어십
2010년 10월에는 모질라 파이어폭스 확장판인 파이어폭스가 출시되어 세션 납치범들이 암호화되지 않은 공공 와이파이 사용자를 공격할 수 있는 간편한 접속 지점을 제공하였다.Firesheep 사용자는 Firesheep 사용자로 하여금 쿠키의 개인 정보에 쉽게 접근하여 공용 Wi-Fi 사용자의 개인 재산을 위협할 수 있다.[6]불과 몇 달 후, 페이스북과 트위터는 HTTP Secure를 전체적으로 제공(이후 요구)함으로써 응답했다.[7][8]
WhatsApp sniffer
2012년 5월 구글플레이에서 WhatsApp Sniffer라는 이름의 앱을 사용할 수 있게 되었다.앱 사용자와 동일한 네트워크에 연결된 다른 왓츠앱 사용자의 메시지를 표시할 수 있었다.[9]당시 WhatsApp은 일반 텍스트 통신이 아닌 암호화가 적용된 XMPP 인프라를 사용했다.[10]
드로이드십
DroidSheep은 웹 세션 가로채기(sidejacking)를 위한 간단한 안드로이드 툴이다.무선(802.11) 네트워크 연결을 통해 전송된 HTTP 패킷을 청취하고 이를 재사용하기 위해 이들 패킷에서 세션 ID를 추출한다.DroidSheep은 libpcap 라이브러리를 사용하여 세션을 캡처할 수 있으며 개방형(암호화되지 않은) 네트워크, WEP 암호화 네트워크, WPA/WPA2 암호화 네트워크(PSK만 해당)를 지원한다.이 소프트웨어는 libpcap과 arpspoof를 사용한다.[11][12]이 apk는 구글 플레이에서 사용 가능하게 만들었지만 구글에 의해 다운되었다.
쿠키캐더
쿠키캐더는 암호화되지 않은 GET 요청을 사용하는 애플리케이션에서 정보 누출을 식별하기 위해 HTTP 요청의 sidejacking과 재생을 자동화하는 그래픽 자바 앱이다.와이어샤크 제품군을 기반으로 한 크로스 플랫폼 오픈소스 유틸리티로, 유선 이더넷이나 불안정한 Wi-Fi를 모니터링하거나 패킷 캡처 파일을 로드해 오프라인 분석을 할 수 있다.쿠키캐더는 셔터플라이(AYSO 축구리그 사용)와 팀스냅 등 유소년 팀 공유 사이트의 약점을 부각시키는 데 활용됐다.[13]
예방
세션 가로채기를 방지하는 방법:
- SSL/TLS를 사용하여 당사자 간에 전달된 데이터 트래픽 암호화, 특히 세션 키(이상적으로 전체 세션의[14] 모든 트래픽)이 기법은 스니핑 방식의 공격을 완전히 차단하기 때문에 웹 기반 은행과 다른 전자상거래 서비스들이 널리 의존하고 있다.하지만, 다른 종류의 세션 하이잭을 수행하는 것은 여전히 가능할 수 있다.이에 대해, Radboud University Nijmegen의 과학자들은 2013년에 신청 세션과 SSL/TLS 자격[15] 증명을 상호 연관시켜 세션 가로채기를 방지하는 방법을 제안했다.
- 긴 임의 번호 또는 문자열을 세션 키로 사용.이는 공격자가 시행착오나 무력 공격을 통해 유효한 세션 키를 추측할 수 있는 위험을 감소시킨다.
- 로그인 성공 후 세션 ID 재생성이렇게 하면 공격자가 로그인한 후 사용자의 세션 ID를 알 수 없으므로 세션 고정을 방지할 수 있다.
- 일부 서비스는 사용자의 ID에 대해 2차 검사를 한다.예를 들어, 웹 서버는 사용자의 IP 주소가 해당 세션 동안 마지막으로 사용된 주소와 일치하는지 각 요청으로 확인할 수 있다.그러나 이는 동일한 IP 주소를 공유하는 사람에 의한 공격을 방지하지 않으며, 검색 세션 중에 IP 주소가 변경되기 쉬운 사용자에게는 좌절감을 줄 수 있다.
- 또는, 일부 서비스는 각각의 요청과 함께 쿠키의 가치를 변화시킬 것이다.이렇게 하면 공격자가 조작할 수 있는 창이 현저히 줄어들고 공격이 발생했는지 여부를 쉽게 식별할 수 있지만 다른 기술적 문제를 일으킬 수 있다(예를 들어, 동일한 클라이언트에서 두 개의 합법적이고 긴밀하게 타이밍을 맞춘 요청이 서버에 토큰 확인 오류를 초래할 수 있음).
- 사용자들은 또한 웹사이트 사용이 끝날 때마다 로그아웃하기를 원할 수 있다.[16][17]그러나 이것은 Firesheep과 같은 공격으로부터 보호되지 않을 것이다.
참고 항목
참조
- ^ a b "Warning of webmail wi-fi hijack". BBC News. August 3, 2007.
- ^ wunderwuzzi23. "Pivot to the Clouds using Pass the Cookie". Pass The Cookie.
- ^ a b Bugliesi, Michele; Calzavara, Stefano; Focardi, Riccardo; Khan, Wilayat (2015-09-16). "CookiExt: Patching the browser against session hijacking attacks". Journal of Computer Security. 23 (4): 509–537. doi:10.3233/jcs-150529. hdl:10278/3663357. ISSN 1875-8924.
- ^ "Session Hijacking & HTTP Communication". 19 October 2020.
- ^ "Malware use Browser Hijacking to steal cookie". 19 October 2020.
- ^ "Firefox extension steals Facebook, Twitter, etc. sessions". The H. 25 October 2010.
- ^ "Facebook now SSL-encrypted throughout". The H. 27 January 2011.
- ^ "Twitter adds 'Always use HTTPS' option". The H. 16 March 2011.
- ^ "Sniffer tool displays other people's WhatsApp messages". The H. 13 May 2012.
- ^ "WhatsApp no longer sends plain text". The H. 24 August 2012.
- ^ "DroidSheep".
- ^ "DroidSheep Blog".
- ^ "How Shutterfly and Other Social Sites Leave Your Kids Vulnerable to Hackers". Mother Jones. 3 May 2013.
- ^ "Schneier on Security: Firesheep". 27 October 2010. Retrieved 29 May 2011.
- ^ Burgers, Willem; Roel Verdult; Marko van Eekelen (2013). "Prevent Session Hijacking by Binding the Session to the Cryptographic Network Credentials". Proceedings of the 18th Nordic Conference on Secure IT Systems (NordSec 2013).
- ^ 참조 "NetBadge: How To Log Out".
- ^ 참고 항목 "Be Card Smart Online - Always log out".