자격증/정보처리기사
[정보처리기사 실기] 세션 하이재킹(Session Hijacking) , 암호화 알고리즘
개발..너...
2024. 6. 28. 21:16
▶ 세션 하이재킹(Session Hijacking)이란?
시스템 간 연결이 활성화 되어 있을 때, 유지되고 있는 상태를 중간에 가로채 해당 유저인 것 처럼 시스템에 접근하여 자원이나 데이터를 사용하는 공격을 의미합니다. 세션 하이재킹은 TCP라는 프로토콜을 사용할 때, 설계 상 보안을 고려하지 않아 발생하는 문제점을 이용하는 해킹 기법입니다.
▶ TCP 세션 하이재킹
서버와 클라이언트 통신 시 TCP의 시퀀스 넘버(순서제어)를 제어하는데 발생하는 문제를 공격하는 것입니다.
공격자가 숫자를 이용해 상호간의 소통하는 것에 가짜 시퀀스 넘버를 만들어서 끼어들며 해킹하는 기법이며, 주로 서버와 클라이언트가 TCP를 이용해 통신하고 있을 때 RST패킷을 보내 일시적으로 TCP세션을 끊고 시퀀스 넘버를 새로 생성하여 인증된 세션을 빼앗고 인증을 회피하는 방식이 사용됩니다.
케빈 미트닉이 사용했던 공격 방법의 하나로 TCP 의 세션관리 취약점을 이용한 공격기법이라고도 할 수 있습니다.
TCP 세션 하이재킹에 대응을 위해서는 비동기화상태탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재전송이 증가되는 것을 탐지해야한다.
▶ 세션 하이재킹 과정
- TCP Sequence number의 보안상 문제점때문에 발생
- Victim과 server 사이의 패킷을 스니핑하여 SEQUENCE NUMBER를 획득하고, 공격자는 데이터 전송중인 Victim과 Server 사이를 비동기화 상태로 강제적으로 만듦
- 스니핑하여 획득한 Client Sequence Number를 이용하여 공격
- 공격자는 Server에게 RST 패킷 날리고, 공격자의 새로운 Sequence Number로 Server와 세션을 맺어 인증우회, Victim권한으로 Server접근
- 비동기화 상태로 패킷이 유실되어 재전송 패킷 증가
- 이 과정에서 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 |
해시 알고리즘은 복호화가 불가능하다. 그래서 암호 혹은 무결성 검증에서 주로 사용됨