자격증/정보처리기사

[정보처리기사 실기] 세션 하이재킹(Session Hijacking) , 암호화 알고리즘

개발..너... 2024. 6. 28. 21:16

세션 하이재킹(Session Hijacking)이란?

시스템 간 연결이 활성화 되어 있을 때, 유지되고 있는 상태를 중간에 가로채 해당 유저인 것 처럼 시스템에 접근하여 자원이나 데이터를 사용하는 공격을 의미합니다. 세션 하이재킹은 TCP라는 프로토콜을 사용할 때, 설계 상 보안을 고려하지 않아 발생하는 문제점을 이용하는 해킹 기법입니다.

TCP 세션 하이재킹

서버와 클라이언트 통신 시 TCP의 시퀀스 넘버(순서제어)를 제어하는데 발생하는 문제를 공격하는 것입니다.
공격자가 숫자를 이용해 상호간의 소통하는 것에 가짜 시퀀스 넘버를 만들어서 끼어들며 해킹하는 기법이며, 주로 서버와 클라이언트가 TCP를 이용해 통신하고 있을 때 RST패킷을 보내 일시적으로 TCP세션을 끊고 시퀀스 넘버를 새로 생성하여 인증된 세션을 빼앗고 인증을 회피하는 방식이 사용됩니다.

케빈 미트닉이 사용했던 공격 방법의 하나로 TCP 의 세션관리 취약점을 이용한 공격기법이라고도 할 수 있습니다.

TCP 세션 하이재킹에 대응을 위해서는 비동기화상태탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재전송이 증가되는 것을 탐지해야한다. 

 

 세션 하이재킹 과정

  1. TCP Sequence number의 보안상 문제점때문에 발생
  2. Victim과 server 사이의 패킷을 스니핑하여 SEQUENCE NUMBER를 획득하고, 공격자는 데이터 전송중인 Victim과 Server 사이를 비동기화 상태로 강제적으로 만듦
  3. 스니핑하여 획득한 Client Sequence Number를 이용하여 공격
  4. 공격자는 Server에게 RST 패킷 날리고, 공격자의 새로운 Sequence Number로 Server와 세션을 맺어 인증우회, Victim권한으로 Server접근
  5. 비동기화 상태로 패킷이 유실되어 재전송 패킷 증가
  6. 이 과정에서 ACK Storm 증가, NM 부하증가

 

 세션 하이재킹 종류

  • Blind Attack: 시퀀스 넘버를 예측해야하기 때문에 일반적인 방법으로 해킹하기 힘듭니다.
    보통 세션 하이재킹은 Non-Blind Attack으로 일어납니다.
  • Non-Blind Attack: 스니핑이 가능한 상태(중간에 가로채서 시퀀스 넘버확인, 소통 중간에 끼어들어 모든 네트워크 패킷을 확인 가능한 상태)에서 수행가능합니다.

 

세션 하이재킹 갈취 가능 상태

  • 트러스트(IP 스푸핑)를 이용한 세션
  • 텔넷, FTP 등 TCP를 이용한 거의 모든 세션
  • 인증 문제 해결을 위한 일회용 패스워드, 토큰 기반 인증을 이용한 세션
    - IPV 4 기반 TCP프로토콜은 특별한 인증구조 없이 사용하여 취약하기 때문에, 추가적인 암호화 기법을 적용하여 보안을 강화해야합니다.

 

▶ 암호화 알고리즘

*비밀키(대칭키) 알고리즘 : 많은 양을 알고리즘 시키고 속도가 빠르다. 키의 길이가 짧다.

*비대칭키 알고리즘 : 적은 양을 알고리즘 시키고 속도가 느리다. 키의 길이가 길다.

비밀키 알고리즘 종류 설명
DES  
AES  
ARIA  
SEED  
IDEA  
LEA  
JKIPJACK  

 

비대칭키 알고리즘 종류 설명
소인수분해 RSA, Rabin
이산대수 Diffie-Hellman, DSA, ELGamal
타원곡선 ECC

 

해시 알고리즘 설명
SHA  
MD5  
HAS-160  

 

해시 알고리즘은 복호화가 불가능하다. 그래서 암호 혹은 무결성 검증에서 주로 사용됨

 

 

 

 

 

 

출처: https://velog.io/@jungmyeong96/%EC%84%B8%EC%85%98-%ED%95%98%EC%9D%B4%EC%9E%AC%ED%82%B9%EC%9D%B4%EB%9E%80