140 likes | 436 Views
Session Hijacking. 발표 및 실습 최인범 , 홍승우. 하이재킹에 대해 알아보기 전에 ... 하이재킹의 사전적 의미 ☞ 강탈 / 약탈 / 납치하다 세션 설정을 위한 3 Way-Handshaking 의 과정 동기화 상태 (Synchronized) 비동기화 상태 (Desynchronized). SYN(Synchronization) - 세션 설정을 위한 동기화를 위하여 보내는 패킷 . ACK(Acknowledgement)
E N D
Session Hijacking 발표 및 실습 최인범, 홍승우
하이재킹에 대해 알아보기 전에... • 하이재킹의사전적 의미 ☞강탈/약탈/납치하다 • 세션 설정을 위한 3 Way-Handshaking의 과정 • 동기화 상태 (Synchronized) 비동기화 상태 (Desynchronized)
SYN(Synchronization) • -세션 설정을 위한 동기화를 위하여 보내는 패킷. • ACK(Acknowledgement) • -송신측으로 부터의 수신이 성공적이었음을 알리는 패킷.
Established 상태란? A B 각자의 SEQ No. 를 교환하여 저장하면 일단 Established 상태로 전환. I know A’s SEQ No. I know B’s SEQ No.
유의 사항 • 하이재킹에 의한 공격자가 개입된 상태에서는 통신 양자간에 모두 Established 상태라 해도 세션 설정이 되었다는 보장은 없다.(통상적으로는 세션 설정 성립.) • 하이재킹은 공격자가 CLT와 SVR간의 동기화 상태를 비동기화상태로 고의적으로 만드는 것에서 본격적으로 시작된다. • 세션설정의 과정을 거치기전에 이미 CLT는 인증과정을 거친 상황.(예-ID와 Password 일치)
SVR CLT ①SYN ATT ②ACK + SYN ②도청 CLT_Est. ③ACK SVR_Est. ④RST ⑤SYN ⑥ACK + SYN CLT_Est. ⑦ACK SVR_Est. Normal packet ACK ACK ACK Storm ACK ACK ACK
과정 - ② Attacker 3Way-Handshaking의 두 번째 단계에서 CLT와 SVR의 시퀀스넘버, 포트번호 등의 중요 정보를 공격자가 획득.
과정 - ④ • RST패킷의 역할-비정상적인 종료를 알림. • 공격자가 도청한 정보를 바탕으로 RST 패킷을 보내면 서버는 일시적인 장애로 인해종전의 세션이 설정된 CLT와 연결이 끊긴것으로 인식. • RST패킷을 보냄으로써 연결이 끊긴 상태지만 세션 설정하기 전의 인증과정을 다시 거칠 필요는 없다. (하이재킹의 장점)
과정 - ⑤⑥⑦ • 공격자가 CLT와 SVR의 세션 설정을 끊은 후,자신과 SVR간에 세션 설정을 위해3Way-Handshaking 과정을 거침으로서, CLT가 확보했던 세션권한을공격자가 갈취하게 됨. • 과정⑦까지의 상황이 될 때까지 CLT가 가만히 있기만 한다면 CLT 자신은 세션을 갈취당한 사실 조차 모른다.
ACK Storm • CLT와 SVR 은 모두 Established 상태이지만정작 중요한 시퀀스 넘버는 서로 일치하지않는 상태이므로 정상적인 통신은 불가능. • 시퀀스 넘버가 서로 일치하지 않기 때문에 동기화를 위해 CLT와 SVR은 서로 ACK패킷을 끊임없이 주고 받게 됨으로써 ☞ACK Storm 발생.
ACK Storm 발생 우려 없는 보다 안전한 하이재킹 앞서 배운 arp 스푸핑을 이용하여 CLT와 SVR간의 모든 패킷이 공격자를 거치도록 한다.
세션 하이재킹의 탐지 • 비동기화 상태 탐지. • ACK Storm 탐지. • 패킷의 유실 및 재전송 증가 탐지. • 접속 초기 시 리셋의 탐지.
대응책 • 전송 데이터의 암호화. -스니핑 방지를 위함. • 지속적인 인증. -공격자는 인증절차를 건너 뛴 상태. 아직까지는 근본적인 대응책은 없음.