HTTP 세션 하이재킹
세션이 문자열이기 때문에 하이재킹이 가능.
TCP 세션 하이재킹
시퀀스 번호를 변조하여 클라이언트 인 척 함.
연결 확립된 세션에 대해 RST를 보내 세션을 끊고 재연결을 통해 인증
동작원리
- 1. Client <-> Server Established 상태 확인 후 시퀀스 넘버 스니핑
(서버 = Established) - 2. 공격자는 세션이 안끊기는 Sequence Number 범위에서 RST 패킷을 생성 후 서버로 전송
(RST패킷으로 인해 서버=Closed로 됨) - 3. 서버가 Closed 일 때 공격자는 SYN ( A_Client_My_Seq )를 생성하여 서버에 보냄.
(서버=Closed) - 4. 서버는 새로운 연결인 A_Client_My_Seq를 받고 (즉, 클라이언트가 다시 연결한 것으로 착각), ACK ( Server_My_Seq ) 를 재생성 후 전송 (서버=SYN_Received)
- 5. 공격자는 정상 연결처럼 서버와 시퀀스 넘버 ACK ( A_Client_My_Seq )를 교환
(공격자와 서버 = Established)
--> 클라이언트와 서버와 잠시 패킷 로스 or 잠시 끊김 현상이 나는데 연결이 잠깐 끊긴 줄 착각함.
--> 클라이언트가 서버로 패킷을 보내면 공격자가 해당 패킷을 변조하여 서버로 보냄.
ACK Storm 이란
- 공격자와 서버가 잠시 연결을 끊었을 때 발생
- 클라이언트와 서버의 정확한 시퀀스를 맞추기 위해 계속 서로간 ACK를 보냄.
- 당연히 서로 간에 시퀀스 번호가 맞지 않기 때문에 계속 ACK 보내는 것을 ACK Storm 이라고 함.
- 맞지 않는 이유는 공격자와 서버간의 세션 연결을 통해 서버는 Client의 시퀀스 번호를 잘못된 시퀀스로 판단.
TCP 세션 하이재킹 보안대책
- ACK Storm 탐지를 한다 (지나친 ACK 탐지)
- 암호화를 해 시퀀스 번호 알아내지 못하게.
- 지속적인 인증 받게 (일정시간 지내면 로그인 다시 함)
반응형
'보안&네트워크 > 보안' 카테고리의 다른 글
SQL Injection 방어 (바인딩 쿼리) (0) | 2023.03.17 |
---|---|
VDI (Virtual Desktop Infrastructure) (0) | 2022.02.11 |
Vitrual Address Space(VAS) (0) | 2022.01.17 |
리버싱 할 때 Debug와 Release (0) | 2022.01.17 |
DNS 공격과 방어 (0) | 2022.01.12 |
댓글