네트워크 보안 - TCP 세션 하이재킹 Session hijacking
본문 바로가기

네트워크 보안 - TCP 세션 하이재킹 Session hijacking

액트 2019. 8. 20.

네크워크 보안 세션 하이재킹


다음 지문의 방법들이 탐지하려는 공격은?   2
[보기]
- 비동기화 상태 탐지 
- Ack Storm SATI 
- 패킷의 유실과 재전송 증가 탐지 
- 예상치 못한 접속의 리셋
① MITM 공격 
② TCP 세션 하이재킹
③ 스푸핑 공격
④ 스머프 공격


TCP 세션 하이재킹 Session hijacking

 

세션은 송수신 네트워킹을 위해 상호 인증에 필요한 정보 교환 후 두 컴퓨터 간의 연결된 활성화 상태를 말한다.

 

세션 하이재킹은 시스템의 접속하기 위한 인가된 ID와 Password가 없을 경우 현재 접속된 시스템들의 세션 정보를 가로채는 공격 기법이다. 즉, 공격자는 ID와 Password 없이 다른 시스템의 세션 정보를 가로챈 후 시스템에 접속할 수 있다.

공격자는 정상적인 네트워킹 과정인 TCP 3Way HandShake 과정상의 취약점을 악용하여 세션을 가로채는 공격을 시도하게 된다.


정상적인 접속을 유지한 상태를 동기화라고 한다. 

동기화 상태는 서버와 클라이언트가 서로의 시퀀스 번호를 올바르게 알고 있는 상태이다.

 

아래 사진은 TCP 3Way HandShake의 정상적인 과정이다. 

이 과정을 통해 상호 간의 동기화된 시퀀스 번호를 가지게 된다.

정상적인 TCP 3Way HandShake

 

① client 는 32비트 임의의 숫자로 Client_My_Seq 생성 후 서버에게 전송한다.

② Server는 수신된 Client_My_Seq 를 Server_Client_Seq 값으로 저장한다.

③ Server는 Server_My_Seq를 생성하고, Server_Client_Seq + Packet Length와 같이 클라이언트에게 전송한다.

④ Client는 수신된 Server_Client_Seq + Packet Length를 받아 자신의 Client_My_Seq와 비교하여 일치하면 Server_My_Seq를 Client_Server_Seq 값으로 저장한다.

⑤ Client는 Client_Server_Seq + Packet Length를 Server에게 보내고 Established 상태가 되며, 서버는 수신된 Client_Server_Seq + Packet Length를 자신의 Server_My_Seq과 비교하여 일치하면 Established 상태가 된다.

 

동기화 상태를 요약하면 다음과 같다.

Client_My_Seq = Server_Client_Seq

Server_My_Seq = Client_Server_Seq

 

 

아래 사진은 세션 하이재킹 공격 기법에 대한 설명이다.

 

동기화된 상태를 비동기화 상태로 만드는 것부터 시작이다. 

 

세션 하이재킹

Server와 Client 사이에서 공격자가 스니핑 중일 때, 공격자는 Server의 패킷과 Client의 패킷을 확인할 수 있다.

 

① 공격자는 Client 인 척하여 Server에 RST 패킷을 보낸다.

② Server가 잠시 Closed 상태일 때 공격자는 A_Client_My_Seq를 생성하여 보낸다.

③ Server는 A_Client_My_Seq를 수신하여, Server_My_Seq를 재생성하여 공격자에게 보낸다.

④ 공격자는 정상적인 연결처럼 Server와 시퀀스 번호를 교환하고 공격자와 Server의 동기화가 이뤄진다.

 

 

Ack Storm

공격자와 Server가 동기화를 이룰 때, Client는 계속 정상적인 패킷을 보내게 된다. 

Server는 이미 동기화가 이뤄진 상태이기 때문에 정상적이지 않은 시퀀스 번호라고 인식하여 시퀀스 번호를 맞추기 위해, Server_My_Seq와 Server_Client_Seq를 담아 보낸다.

 

Client는 Server로부터 수신된 Server_client_Seq가 자신의 Client_My_Seq와 다름을 확인하여, Server에 Client_My_Seq와 Client_Server_Seq가 담긴 ACK를 보내는데, 이러한 과정이 반복되는 경우를 Ack Storm 이라고 한다.

 

잘못된 패킷이 전달되지 않도록 ARP 스푸핑을 사전에 해야하는 이유이다.

 

 

IP Spoofing과 차이점

세션 하이재킹 공격은 공격 과정에서 정상적인 사용자로 위장한 후 시스템을 공격하는 형태가 IP 스푸핑과 유사하다고 할 수 있다. 그러나 IP 스푸핑은 송수신자 상호 트러스트 정보를 이용하여 공격을 시도하는 것이고, TCP 기반의 세션 하이재킹은 활성화 되어 있는 세션을 RST 신호를 이용하여 강제로 리셋 시킨 후 이를 악용하여 공격을 시도하는 부분에서 차이가 있다.

 

 

 

보안대책

비동기화 탐지 - 서버와 시퀀스 넘버를 주기적으로 체크, 비동기화 상태 시 탐지

Ack Strom 탐지 - 급격한 Ack 비율 증가시 탐지

패킷의 유실과 재전송 증가 탐지 - 공격자가 중간에 끼어서 작동하므로 패킷의 유실과 서버와의 응답시간이 길어진다.

예상치 못한 접속의 리셋 탐지 - 세션에 대한 공격 시도 시 세션이 멈추거나 리셋되는데 이를 탐지한다.

 

 

 

 

댓글