학습 정리/🦴 CS Study

9. TCP 세션 하이재킹, ARP 스푸핑, IP 스푸핑

무딘붓 2022. 12. 12. 10:17

✈️ 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주소를 사용하게 할 수 있음 )
  • ARP 스푸핑 공격이란?
    • MAC 주소를 속이는 것 → MAC 주소를 공격자의 주소로 속임
       → 클라이언트-서버 간 패킷을 중간에 가로채는 공격.
    • 공격자가 클라이언트와 서버 중간에 위치
    • 연결을 유지하면서 내용을 확인
  • ARP 스푸핑 공격 상세
    • ARP 스푸핑 공격의 원리
      • 공격 전 패킷의 흐름 : A 컴퓨터와 B 컴퓨터는 패킷을 직접적으로 전송
      • 공격 후 패킷의 흐름 : 모든 패킷이 공격자를 통해 A, B 컴퓨터에게 전송
    • ARP 스푸핑 공격 발생 증상 - 피해 시스템
      • 네트워크 속도 저하
      • (가로챈 패킷에) 악성코드 유포 공격코드 삽입
      • 정기적인 ARP 패킷 다량 수신 ( ←변조 상태 유지 위해 지속적으로 조작된 ARP 패킷 전송 )
    • ARP 스푸핑 공격 발생 증상 - 공격 시스템
      • 네트워크 사용량 증가
      • 정기적인 ARP 패킷 발송
      • 악성 프로세스 동작

👩‍💻 IP 스푸핑

  • IP 스푸핑이란?
    • IP 주소를 속이는 것 → 자기 IP를 공격하고자 하는 타겟의 IP로 속이고 접근을 시도
      • 서비스 거부 공격 가능
      • 공격 대상 컴퓨터와 서버 사이의 연결된 세션을 끊을 수 있다.
    • TCP 세션 하이재킹 = IP 스푸핑의 일종 (이라고 부르는 경우도 있음)
    • 트러스트 관계 : IP,PW 사용하지 않고 로그인 없이 특정 클라이언트의 IP에 접속하는 것 
      → 목표 시스템과 클라이언트 사이에 트러스트 관계가 형성된 것 IP 스푸핑 공격 전제조건
    • 1985년 논문에서 첫 언급 (IP 스푸핑이 가능하다) / 1995년 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 패킷을 보낸 것처럼 속여 서버에 접속
    • 내부 네트워크에서 IP 스푸핑 공격
      • 1. 서버에서 공격자를 클라이언트로 인식하도록 서버에게 ARP Cache Poisoning 공격
        • 서버의 ARP 테이블에 공격자가 변조한 ARP 테이블이 올라가게 됨
      • 2. 서버에게 SYN 패킷을 보냄
        • 서버의 ARP 테이블이 변조되어 클라이언트가 아닌 공격자에게 SYN/ACK 패킷 전달
  •  IP 스푸핑 예방법
    • 라우터에 Source Routing을 허용하지 않도록 설정
    • IP 스푸핑에 사용되는 시퀀스 번호를 고정된 번호가 아닌 랜덤 발생번호로 변경
    • Denial of Service(Dos)가 발생하지 않도록 관리한다  ( ←Dos Attack은 IP 스푸핑의 첫 단계 )
    • 암호화된 프로토콜을 사용한다.
    • 트러스트 관계(Trust) 대신 Single Sign On(SSO)을 사용
      • 한 번의 인증 과정으로 여러 컴퓨터 상의 자원을 이용하게 하는 기능
      • 트러스트 관계의 치명적 약점이 알려지면서 개발된 시스템
      • 대표적인 예 : 윈도우의 액티브 디렉터리, 썬 마이크로시스템의 NX+ 
      • 부득이 트러스트 사용시 MAC 주소를 고정형(static)으로 지정

 

 

* 이 게시글은 K-MOOC 정보보호와 보안의 기초 (링크) 강의를 듣고 개인 학습용으로 정리한 내용입니다.