세션 하이재킹(Session Hijacking)
- 세션 가로채기
- 세션: 두 호스트(컴퓨터) 간의 연결 활성화 상태
TCP 세션 하이재킹
※ Non-Blind Attack(로컬 세션 하이재킹 공격)
- TCP 시퀀스 넘버 제어의 문제점 이용
- 공격 대상 탐지 가능
- 시퀀스 넘버 알아낼 수 있음
※ Blind Attack(원격 세션 하이재킹 공격)
- 공격 대상 탐지 불가
- 시퀀스 넘버 알아낼 수 없음
TCP 세션 하이재킹 이해
- TCP 시퀀스 넘버 교환: 정상적인 세션 연결 시 동기화 상태
→ Clienct_My_Seq(클라이언트 관리 시퀀스 넘버) = Server_Client_Seq(클라이언트가 알고 있는 서버 시퀀스 넘버)
Server_My_Seq(서버 관리 시퀀스 넘버) = Client_Server_Seq(서버가 알고 있는 클라이언트 시퀀스 넘버)
- TCP 세션 하이재킹: 세션의 동기화 상태 파괴
※ 비동기화(Desynchronized) 상태 → 당연히 발생 가능
- (데이터가 전송되기 전) 안정적인(stable) 상태
- 데이터가 전송될 때는 저장하고, 클라이언트에 서버의 승인 번호는 전달되지 않음
- 패킷 수신이 불가능한 상태. 데이터도 버려짐
※ 비동기화 상태로 만드는 방법
- 서버에서 초기 설정 단계의 접속을 끊고 다른 시퀀스 넘버로 새로운 접속 생성
- 대량의 널(Null) 데이터 보내기
※ 새로운 접속 생성하기
- 서버와 클라이언트가 각자 알고 있는 시퀀스 넘버 조작
- 클라이언트 측
Client_My_Seq = 공격자가 생성한 Server_Client_Seq
Client_Server_Seq = 공격자가 생성한 Server_My_Seq
- 서버 측
Server_Client_Seq = 공격자가 생성한 Client_My_Seq
Server_My_Seq = 공격자가 생성한 Clienct_Server_Seq
※ TCP 세션 하이재킹 공격(새로운 접속을 생성하여 비동기화하는 방법 이용) → ACK Storm 발생 가능
① 클라이언트는 서버와 접속되어 있는 상태(Established). 공격자는 스니핑 중(시퀀스 넘버 획득)
② 서버가 잠시 Closed 상태일 때, 공격자는 RST 패킷(스니핑한 시퀀스 넘버 이용)을 생성하여 서버로 전송
③ 공격자는 위조된 시퀀스 넘버(A_Client_My_Seq)를 생성하여 서버로 전송
④ 서버는 A_Client_My_Seq를 받아들이고, Server_My_Seq를 재생성하여 공격자에게 보낸 후 SYN_Received 상태
⑤ 공격자는 정상적인 연결처럼 서버와 시퀀스 넘버 교환 → 공격자와 서버 모두 Established 상태
(클라이언트는 계속해서 Established 상태로 연결은 잠시 끊어졌지만, 인증 세션은 열려있음)
⑥ 공격자는 공격 전 클라이언트가 서버와 통신을 하던 시퀀스 넘버를 알고 있으므로(∵스니핑)
클라이언트와 정상적으로 통신하고, 서버와는 공격자가 새로 생성한 시퀀스 넘버로 통신
→ 세션은 2개(클라이언트 & 공격자, 공격자 & 서버) 생성. 공격자가 클라이언트와 서버를 relay
※ ACK Storm
- 공격자가 서버와 연결을 끊고 다시 연결을 시도하는 동안 클라이언트가 정상적인 패킷을 보내면, 서버는 비정상 시퀀스 넘버로 인식하여 시퀀스 넘버를 맞추기 위해 ACK 패킷에 Server_My_Seq와 Server_Client_Seq를 담아 보냄
- 클라이언트도 다름을 확인하고, Client_My_Seq와 Client_Server_Seq가 담긴 ACK를 보냄
- 이 과정이 무한 반복
- 이를 막기 위해 ARP 스푸핑을 해두고 공격 실시
TCP 세션 하이재킹 보안대책
- 암호화된 연결(SSH) 사용
- 비동기화 상태 탐지: 서버와 시퀀스 넘버를 주기적으로 체크
- ACK Storm 탐지
- 패킷의 유실과 재전송 증가 탐지
- 예상치 못한 접속의 리셋(RST)
공부하면서 학습 목적으로 작성한 포스팅이므로 내용이 완전하지 않습니다ㅠ
계속해서 학습 후 지식이 좀 더 쌓이면 수시로 수정해나갈 예정입니다!
틀린 내용은 둥글게 댓글 달아주시면 빠른 확인 후 수정하겠습니다. :)
참고
'보안 > 네트워크 보안' 카테고리의 다른 글
MITM(Man In The Middle) 공격 (0) | 2020.12.14 |
---|---|
스푸핑(Spoofing) (1) | 2020.12.14 |
스니핑(Sniffing) (0) | 2020.12.14 |
스캐닝 공격 분석(Nmap, 와이어샤크 이용) (0) | 2020.12.14 |
사이버공격 - 정보수집(스캐닝) (0) | 2020.12.13 |
댓글