[정보 보안] 네트워크 보안

[정보 보안] 세션 하이재킹(Session Hijacking)

ITsubin 2022. 7. 2. 21:14

[ 세션(Session) 이란? ]

> 사용자와 컴퓨터, 또는 두 대의 컴퓨터 간의 활성화된 상태를 말한다.

 

[ 세션 하이재킹(Session Hijacking)이란? ]

> 두 시스템 간 연결이 활성화된 상태, 즉 로그인(Login)된 상태를 가로채는 것을 뜻한다.

 

[ TCP 세션 하이재킹(Transmission Control Protocol Session Hijacking)이란? ]

> TCP가 가지는 고유한 취약점을 이용해 정상적인 접속을 빼앗는 방법.

TCP는 클라이언트와 서버 간 통신을 할 때 패킷의 연속성을 보장하기 위해 클라이언트와 서버는 각각 시퀀스 넘버를 사용한다. 이 시퀀스 넘버가 잘못되면 이를 바로 잡기 위한 작업을 하는데, TCP 세션 하이재킹은 서버와 클라이언트에 각각 잘못된 시퀀스 넘버를 위조해서 연결된 세션에 잠시 혼란을 준 뒤 자신이 끼어 들어가는 방식이다.

 

클라이언트와 서버 사이의 패킷을 통제하고, ARP 스푸핑 등을 통해 클라이언트와 서버 사이의 통신 패킷이 모두 공격자를 지나가게 하도록 한다. 서버에 클라이언트 주소로 연결을 재설정하기 위한 RST(Reset) 패킷을 보낼 때 서버는 해당 패킷을 받고, 클라이언트의 시퀀스 넘버가 재설정된 것으로 판단한 후 다시 TCP 3-way Handshaking을 수행한다.

따라서 공격자는 클라이언트 대신 연결되어 있던 TCP 연결을 그대로 물려받게 된다.

 

[ 세션 하이재킹 공격 대응 ]

> SSH 등의 세션에 대한 인증 수준이 높은 프로토콜을 이용하여 서버에 접속한다.

> 클라이언트와 서버 사이에 MAC 주소를 고정시켜 ARP 스푸핑을 막는다. 결과적으로 세션 하이재킹까지 막을 수 있다.