세션 하이재킹

개념
세션 하이재킹(Session Hijacking)의 정의 - 세션(Session) : 사용자와 컴퓨터, 또는 두 대의 컴퓨터 간의 활성화된 상태 - 세션 하이재킹 :두 시스템 간 연결이 활성화된 상태, 즉 로그인(Login)된 상태를 가로채는 것을 뜻함.

  1. 세션 하이재킹(Session Hijacking)의 정의
    • 세션(Session) : 사용자와 컴퓨터, 또는 두 대의 컴퓨터 간의 활성화된 상태
    • 세션 하이재킹 :두 시스템 간 연결이 활성화된 상태, 즉 로그인(Login)된 상태를 가로채는 것을 뜻함.
  2. TCP 세션 하이재킹
    • TCP가 가지는 고유한 취약점을 이용해 정상적인 접속을 빼앗는 방법.
    • TCP는 클라이언트와 서버간 통신을 할 때 패킷의 연속성을 보장하기 위해 클라이언트와 서버는 각각 시퀀스 넘버를 사용함. 이 시퀀스 넘버가 잘못되면 이를 바로 잡기 위한 작업을 하는데, TCP 세션 하이재킹은 서버와 클라이언트에 각각 잘못된 시퀀스 넘버를 위조해서 연결된 세션에 잠시 혼란을 준 뒤 자신이 끼어들어가는 방식.
    • 클라이언트와 서버 사이의 패킷을 통제. ARP 스푸핑 등을 통해 클라이언트와 서버 사이의 통신 패킷이 모두 공격자를 지나가게 하도록 하면 됨.
    • 서버에 클라이언트 주소로 연결을 재설정하기 위한 RST(Reset) 패킷을 보냄. 서버는 해당 패킷을 받고, 클라 이언트의 시퀀스 넘버가 재설정된 것으로 판단하고, 다시 TCP 쓰리웨이 핸드셰이킹을 수행.
    • 공격자는 클라이언트 대신 연결되어 있던 TCP 연결을 그대로 물려받음.
  3. 세션 하이재킹 공격에 대한 대응책
    • SSH와 같이 세션에 대한 인증 수준이 높은 프로토콜을 이용해서 서버에 접속해야 함.
    • 클라이언트와 서버 사이에 MAC 주소를 고정시켜주는 줌. 주소를 고정시키는 방법은, 앞서도 언급했지만 ARP 스푸핑을 막아주기 때문에 결과적으로 세션 하이재킹을 막을 수 있음.

댓글