본문 바로가기
보안&네트워크/보안

세션 하이재킹

by kakk789 2022. 1. 24.

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

댓글