✈️ TCP 세션 하이재킹
- 세션
- 사용자와 컴퓨터 또는 두 컴퓨터 간에 활성화된 연결
- 두 컴퓨터 간에 여러 가지 메시지를 서로 교환할 수 있는 논리적인 연결 상태
- 세션 하이재킹
- 세션을 가로채는 행위
- 세션 하이재킹 공격 이점 : ID, 패스워드 입력과 확인절차를 Skip할 수 있다
- TCP 세션 하이재킹 공격
- 서로 주고받는 시퀀스 넘버의 정확성 확인 → 세션 설정
→ TCP 세션 하이재킹은 이런 시퀀스 정보 문제점 활용 공격 - RST : 세션을 리셋하는 패킷 → 공격자가 RST패킷 보내서 일시적으로 TCP 세션을 끊음
→ 공격자가 새로운 시퀀스 넘버를 보냄 → 클라이언트의 리셋처럼 위장
→ 공격자가 세션을 빼앗고 인증 - TCP 세션의 두가지 상태
- 1. 동기화 상태(Established) : 정상적인 접속 상태
- 2. 비동기화 상태(Unestablished) : 일시적으로 접속이 끊어진 상태
→ TCP 세션 하이재킹은 동기화 상태를 비동기화로 바꾸고 하이재킹 시작
( = 정상적인 접속 상태를 무너뜨리는 것부터 시작 )
- 비동기화를 만드는 방법
- 1. 서버에서 초기 설정 단계의 접속을 끊고 → 다른 시퀀스 넘버로 새로운 접속을 생성
- 2. 대용량의 “null”로 채워진 데이터를 보냄 → 서버를 비동기화 상태로 만듦
- 서로 주고받는 시퀀스 넘버의 정확성 확인 → 세션 설정
- TCP 세션 하이재킹 공격 순서
- 1. 클라이언트는 서버와 모두 접속되어 있는 Established(데이터 송수신 가능) 상태
- 2. 공격자가 RST 패킷을 서버에 전송 → 서버는 잠시 Closed 상태
- 3. 공격자는 A_Client_My_Sequence Number를 서버에 전송
- 4. 서버는 SYN 수신 후 ACK를 재 생성하여 공격자에게 보낸 후 SYN_RECEIVED 상태
- 5. 공격자는 정상 연결처럼 서버와 시퀀스 넘버 교환 → 공격자와 서버와 모두 Established 상태
- 세션 하이재킹 대응방안
- 데이터 전송의 암호화
- 비동기화 상태 탐지
- ACK Storm (대량의 null 데이터 송신으로 비동기화 되는 것) 탐지
- 패킷의 유실과 재전송 증가 탐지
- 기대하지 않은 접속의 리셋
👨💻 ARP 스푸핑
- 용어 정리
- 스푸핑(Spoofing) : ‘속이다’라는 의미, 속이는 절차를 통해 다양한 정보를 얻어내는 공격
(스푸핑에 대한 자세한 정보는 이전 게시글 참고) - ARP(Address Resolution Protocol) : IP주소 값으로 MAC주소 값을 알아내는 프로토콜
- RARP(Reverse Address Resolution Protocol) : MAC주소 값으로 IP주소 값 알아내는 프로토콜
( → ARP스푸핑으로 상대편이 fake된 MAC주소, IP주소를 사용하게 할 수 있음 )
- 스푸핑(Spoofing) : ‘속이다’라는 의미, 속이는 절차를 통해 다양한 정보를 얻어내는 공격
- ARP 스푸핑 공격이란?
- MAC 주소를 속이는 것 → MAC 주소를 공격자의 주소로 속임
→ 클라이언트-서버 간 패킷을 중간에 가로채는 공격. - 공격자가 클라이언트와 서버 중간에 위치
- 연결을 유지하면서 내용을 확인
- MAC 주소를 속이는 것 → MAC 주소를 공격자의 주소로 속임
- ARP 스푸핑 공격 상세
- ARP 스푸핑 공격의 원리
- 공격 전 패킷의 흐름 : A 컴퓨터와 B 컴퓨터는 패킷을 직접적으로 전송
- 공격 후 패킷의 흐름 : 모든 패킷이 공격자를 통해서 A, B 컴퓨터에게 전송
- ARP 스푸핑 공격 발생 증상 - 피해 시스템
- 네트워크 속도 저하
- (가로챈 패킷에) 악성코드 유포 공격코드 삽입
- 정기적인 ARP 패킷 다량 수신 ( ←변조 상태 유지 위해 지속적으로 조작된 ARP 패킷 전송 )
- ARP 스푸핑 공격 발생 증상 - 공격 시스템
- 네트워크 사용량 증가
- 정기적인 ARP 패킷 발송
- 악성 프로세스 동작
- ARP 스푸핑 공격의 원리
👩💻 IP 스푸핑
- IP 스푸핑이란?
- IP 주소를 속이는 것 → 자기 IP를 공격하고자 하는 타겟의 IP로 속이고 접근을 시도
- 서비스 거부 공격 가능
- 공격 대상 컴퓨터와 서버 사이의 연결된 세션을 끊을 수 있다.
- TCP 세션 하이재킹 = IP 스푸핑의 일종 (이라고 부르는 경우도 있음)
- 트러스트 관계 : IP,PW 사용하지 않고 로그인 없이 특정 클라이언트의 IP에 접속하는 것
→ 목표 시스템과 클라이언트 사이에 트러스트 관계가 형성된 것이 IP 스푸핑 공격 전제조건 - 1985년 논문에서 첫 언급 (IP 스푸핑이 가능하다) / 1995년 IP 스푸핑 가능하다는걸 보임 (최초 적용)
- IP 주소를 속이는 것 → 자기 IP를 공격하고자 하는 타겟의 IP로 속이고 접근을 시도
- IP 스푸핑 공격 방법
- 원격 네트워크에서 IP 스푸핑 공격
- 1. DOS Attack : 공격자는 클라이언트 쪽으로 TCP CYN Flooding 공격
- (엄청 많은 TCP SYN 패킷을 보냄) → 클라이언트는 DOS Attack으로 무력화됨
- 2. SYN : 공격자는 클라이언트의 IP로 속여서 서버 쪽에 연결 요청 (SYN 패킷)
- 3. SYN/ACK : 서버는 클라이언트의 패킷으로 인식, 클라이언트에 SYN/ACK 패킷을 보냄
- 하지만 이미 클라이언트는 서비스 불가 → SYN/ACK 패킷 사라짐
- 4. ACK Storm : 공격자는 클라이언트에서 ACK 패킷을 보낸 것처럼 속여 서버에 접속
- 1. DOS Attack : 공격자는 클라이언트 쪽으로 TCP CYN Flooding 공격
- 내부 네트워크에서 IP 스푸핑 공격
- 1. 서버에서 공격자를 클라이언트로 인식하도록 서버에게 ARP Cache Poisoning 공격
- 서버의 ARP 테이블에 공격자가 변조한 ARP 테이블이 올라가게 됨
- 2. 서버에게 SYN 패킷을 보냄
- 서버의 ARP 테이블이 변조되어 클라이언트가 아닌 공격자에게 SYN/ACK 패킷 전달
- 1. 서버에서 공격자를 클라이언트로 인식하도록 서버에게 ARP Cache Poisoning 공격
- 원격 네트워크에서 IP 스푸핑 공격
- IP 스푸핑 예방법
- 라우터에 Source Routing을 허용하지 않도록 설정
- IP 스푸핑에 사용되는 시퀀스 번호를 고정된 번호가 아닌 랜덤 발생번호로 변경
- Denial of Service(Dos)가 발생하지 않도록 관리한다 ( ←Dos Attack은 IP 스푸핑의 첫 단계 )
- 암호화된 프로토콜을 사용한다.
- 트러스트 관계(Trust) 대신 Single Sign On(SSO)을 사용
- 한 번의 인증 과정으로 여러 컴퓨터 상의 자원을 이용하게 하는 기능
- 트러스트 관계의 치명적 약점이 알려지면서 개발된 시스템
- 대표적인 예 : 윈도우의 액티브 디렉터리, 썬 마이크로시스템의 NX+
- 부득이 트러스트 사용시 MAC 주소를 고정형(static)으로 지정
* 이 게시글은 K-MOOC 정보보호와 보안의 기초 (링크) 강의를 듣고 개인 학습용으로 정리한 내용입니다.
'학습 정리 > 🦴 CS Study' 카테고리의 다른 글
11. 메모리 취약점, 버퍼 오버플로우 (0) | 2022.12.13 |
---|---|
10. DNS 캐시 포이즈닝, 파밍, 피싱 (0) | 2022.12.12 |
8. 네트워크 패킷, 스니핑·스누핑·스푸핑, wireshark (0) | 2022.12.12 |
7. 디지털 포렌식 (0) | 2022.12.11 |
6. 컴퓨터 바이러스, 웜, 트로이 목마 (0) | 2022.12.11 |