본문 바로가기

Nerwork_Security

Spoofing Attack (ARP,ICMP,IP 스푸핑 공격)

ARP Cache Poisioning

  • 목적 : 공격 타겟의 ARP table 내용을 변경시켜 패킷을 공격자의 PC 전달하도록 한다.
  • 공격원리
    • ARP Broadcast 사용하는 프로토콜로써, 인증절차가 존재하지 않는다.
    • Dynamic방식으로 학습한 주소정보는 쉽게 변경이 있다. (마지막 정보로 저장됨)
    • 공격자는 임의로 생성한 ARP Reply 지속적으로 전송하여 타겟의 ARP 정보를 변경한다.
  • 해결방안
    • Dynamic ARP Inspection (실습이 되지 않으니 이론적으로 설명만)

 

 

ICMP Redirect

  • ICMP 
    • 신뢰성이 없는 IP 대신해 통신의 이상유무를 알리기 위해 네트워크의 에러메시지를 전송하거나 네트워크 흐름을 통제하기 위한 프로토콜
  • 목적 : ICMP 메시지를 사용하여 타겟의 라우팅 경로를 변경하여 패킷의 흐름을 조정한다.
  • 공격원리
    • 네트워크에 여러 개의 라우터가 있는 경우, 효율적인 경로라고 판단되는 특정 라우터의 IP주소를 ICMP Redirect 메시지를 통해 보낼 있다.
    • ICMP Redirect 메시지를 받은 PC 패킷의 내용대로 라우팅 테이블을 변경하는데, 인증 메커니즘이 없기 때문에 스니핑의 공격의 방법으로 사용된다.
    • 공격자는 타겟에게 패킷을 자신으로 전달하도록 만든 라우팅 경로를 ICMP메시지로 만들어 전달한다.
  • 해결방안
    • XP에서는 ICMP설정에서 변경

 

 

IP Spoofing 이란

 

IP protocol 인증 취약점을 악용하여 공격자가 자신의 IP address 공격하고자 하는 네트워크의 호스트의 IP address 바꾸어 IP 기반의 인증을 무력화 시키는 공격을 의미한다.

IP Spoofing 공격을 하기 위해서는 Target system Client 신뢰관계(Trust relationship) 형성되어 있어야 한다. 여기서 신뢰관계란 Client Target system 접속할 사용자 ID Password 입력하지 않아도 되는 관계를 의미한다.

또한 IP protocol 취약점을 습득하기 위해서 기본적으로 Sniffing 공격이 선행되어야 한다.

 

IP Spoofing 공격에서 이용하는 IP protocol 취약점

  • 인증 : IP Source address 상대를 식별 인증한다.

=> 암호화 과정이 없고 IP헤더를 변경할 있다.

  • 세션보호 : IP Sequence number 세션을 인증

=> Sequence number 추측이 가능하게 설계되어있어 이를 이용하여 세션을 가로챌수있다.

 

 


원격지에서 IP Spoofing 공격

 

방화벽이나 라우터의 ACL 의해 필터링 되어 내부 네트워크와 통신이 되지 않을 , IP 변조하여 우회할 있다.

요즘의 OS환경에서는 TCP Sequence 랜덤하게 생성하여 사용하기 때문에 원격 IP Spoofing 거의 불가능하다.

 

Target system Client 서로 신뢰관계에 있다.

신뢰관계의 Target system Client 사이의 통신 패턴을 관찰하여 Sequence number 추측했다고 가정한다. (고난이도)

 


 

  1. 공격자는 클라이언트에 TCP SYN Floodinf (TCP 513번(rlogin) or TCP 514번(rsh)) 공격을 한다.
  2. 공격자는 클라이언트의 IP 로 속여 서버(타겟 시스템)에 연결을 요청 한다.
  3. 서버는 클라이언트에서 온 패킷으로 알고 클라이언트에 SYN/ACK 패킷을 보낸다.

하지만, 클라이언트는 TCP Syn Flooding 공격 때문에 연결이 되지 않기 때문에 연결이 이루어지지 않고, 서버가 보낸 SYN/ACK 패킷 은 사라지게 되어 SYN/ACK 패킷을 받았는지 확인 할 수 없게 된다.

  1. 공격자는 클라이언트에서 ACK 패킷을 보낸 것처럼 속이면서, IP Spoofing 명령어가 들어있는 패킷을 보내 신뢰 관계에 있는 클라이언트라고 속이면 연결이 이루어지게 된다.

 

 

단순히 Client IP address 바꾸기만 하면 공격자와 서버가 연결되지 않는다.

 

 

  1. 공격자가 클라이언트의 IP Address로 위장하고 서버에 연결을 요청하는 SYN을 보낸다.
  2. 서버는 IP Address를 보고 클라이언트가 보낸 SYN 패킷으로 판단하여 클라이언트에 SYN/ACK 패킷을 보낸다.
  3. 클라이언트는 자신이 SYN 패킷을 보내지 않았기 때문에 RST 패킷을 보내게 되며, 서버는 RST 패킷을 받아 연결이 이루어지지 않는다.

 

 

 

 

내부 네트워크에서 IP Spoofing 공격

 

 

 

  1. 서버에게 공격자를 Client 인식하도록 공격자가 서버에게 ARP Cache Poisoning 공격을 한다.
  2. 서버에게 SYN 패킷을 전송한다.
  3. 서버는 1.1.1.2라는 주소에게 응답을 하지만 ARP 공격으로 인해 MAC주소를 잘못 저장하고 있다. 따라서 Client 아닌 공격자에게 SYN/ACK 패킷을 전달한다.