728x90
  • IP spoofing
  • ARP poisoning (spoofing)
    • MITM 공격
    • TCP 연결(세션) 하이재킹

 


IP spoofing

 

  • 프로토콜의 허점
    • 라우터는IP패킷의경로를결정할때목적지IP주소만을본다.즉,IP소스주 소는 상관하지 않는다.
  • 따라서, 공격자는 IP 패킷의 소스 주소를 임의로 사용할 수 있다.
    • 특정 호스트의 IP 주소를 사용(앞의 Zombie scanning의 예)
    • 현재 사용하지않는 임의의 IP 주소를 소스 주소로 사용
  • IP spoofing은 대표적으로 DoS 공격에 이용된다.
  • IP spoofing의 방어
    • 최소한 라우터가 IP 소스 주소가 합법적인 주소인지 판단한다.
    • ISP는 라우터에서 현재 사용하지 않고 있는 IP 소스 주소인 경우 폐기한다.

 


ARP poisong (spoofing)

 

  • ARP 서버(일반적으로 디폴트 라우터)는 네트워크 내의 모든 host의 IP 주소와 MAC 주소의 매핑 테이블을 갖고 있다.
  • ARP 서버는 이 정보를 ARP request/reply 프레임을 통해 얻는다.
  • 공격 시나리오
    • 공격자는잘못된매핑정보를담은ARPreply메시지를계속 보낸다.
    • ARP 서버는 request에 대한 reply가 아니므로 보통 무시한다.
    • 그런데, 서버가 이 잘못된 정보를 믿고 자신의 ARP테이블을 변경하는 경우가 생길 수 있다. (자신이 조금 전에 보낸 request에 대한 reply라 고 오인, 혹은 구현상의 에러, 등)

Ethernet에서의 ARP

 

  • Ethernet은 브로드캐스트를 사용하 여 ARP 서버의 도움없이 주소를 변 환한다.
    • 목적지 IP 주소의 Ethernet 주소(MAC 주소)를 물어보는 request 프레임을 브로드캐스트한다.
    • IP 주소가 자신의 것인 스테이션은 자 신의 MAC 주소를 reply 프레임으로 응답한다.
    • 주소를 받은 스테이션은 이 주소를 사용하여 MAC 프레임을 전송하고, 이 MAC 주소를 캐쉬에 보관한다.

 

 1 ) IP 패킷을 ARP 테이블에 맞게 보낼 것이다. (C 컴퓨터로 IP 패킷이 가야함)

 2 ) 1)에서 보낸 IP 패킷을 reply하는데 ARP 테이블에 해당 IP 주소의 MAC 주소가 1) 그림의 MAC 주소와 상이한 것을 볼 수 있다.

 3 )전송자는 IP 패킷을 C컴퓨터로 의도했는데 ARP 테이블에 바뀐 MAC 주소 때문에 A 컴퓨터로 유도된다.

  • 위 ARP spoofing 예는 세션 호스트 통신 하이재킹의 예를 보여 주고있다.
    • 공격자A는호스트C로가는모든패킷을갈취하여보고있다.
    • 또한, 공격자 A는 소스 IP주소를 호스트C로 하여 패킷을 보낼 수 있다. (source IP address spoofing)
    • 그렇다면,호스트C와통신하는호스트는자신이호스트C와통신 을 하고 있다고 생각하지만 실제로는 호스트 A와 통신을 하고 있다. (hijacking)
  • 만약 호스트 AARP spoofing을 한번 더 할 수 있으면, 중간 자 공격(MITM)이 가능해진다.

TCP 연결(세션) 하이재킹

 

  • 공격자는 공격대상 호스트의 IP 주소로 연결을 요청
  • 공격자는 flooding 공격으로 호스트(T)가 응답하지 못하도록 함
  • 공격자는 호스트 T를 대신하여 응답
  • 공격자는 ARP 서버와 호스트(T)의 TCP 연결을 절반은 하이재킹

 

  • 이 공격 시나리오가 성공하기 위해서는 공격자는 서버 가 처음으로 사용할 일련번호(y)를 알고 있어야 한다.
    • 일련번호를랜덤값으로하게되면예측하는것은거의불가 능하다.
    • 하지만이전OS는완전한랜덤값으로하지않아충분히예측 가능했다.

 


 

 

  • 만약 공격자가 호스트와 동일한 LAN에 있으면 ARP spoofing을 사용하여 이 공격을 더 쉽게 할 수 있다.
    • 이경우공격자는서버와호스트T의TCP연결을완전히 하이재킹하게 된다.(즉, 호스트 T를 소스로 하여 패킷을 보내고, 호스트 T가 목적지인 패킷을 모두 받아 볼 수 있다.)
    • 이공격시나리오는공격자와호스트T가동일한LAN에있 을 때 가능하다. 만약 공격자가 방화벽 뒤에 위치한다면 이런 공격이 성립하기는 어렵다.

 

'서버 > 암호' 카테고리의 다른 글

네트워크 공격 : DoS (1)  (0) 2021.08.02
방화벽 (Firewall)  (0) 2021.08.02
Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
728x90
  • 엿듣기
  • Ping - ICMP echo request/reply (type 8과 0)
  • Trace route - ICMP time exceeded (type 11)
  • ICMP redirect - ICMP redirection (type 5)

 


경로 추적 (trace route)

 

  • 특정 목적지 호스트에 이르는 경로를 추적한다.
  • IP 패킷의 TTL값을 1부터 차례로 증가시켜 보낸 후에, ICMP Time Exceeded 에러 메시지를 받아본다.


ICMP redirect 공격

 

  • ICMP redirect는 네트워크 내의 호스트가 다른 네트워크의 호스트로 패킷을 보낼 때 네트워크의 정해진 라우터로 전송하게 된다.(보통 디폴트 라우터)
  • 이때 정해진 라우터를 변경하고 싶을 때 ICMP redirection 패킷을 전송한다.
  • 이 패킷을 수신한 호스트는 새로운 라우터를 디폴트 라우터로 하고 라우팅 테이블 값을 변경한다.
  • 원래 ICMP redirect의 목적은 더 좋은 경로가 존재할 경우 라우터를 변경하기 위한 것이다.
  • ICMP redirect 자체가 공격은 아니지만, 악의적으로 특정 호스트가 있는 네트워크로 패킷 전송을 유도(변경)할 수 있다.

Ping (포트스캐닝)

 

  • 완전 TCP 연결을 통한 포트 스캐닝 - 3 way handshake를 하여 완전한 연결을 설정
  • 반 연결 (half-open connection)을 통한 포트 스캐닝
    • 공격자는 SYN 세그먼트를 보내고 SYN-ACK 응답을 받는다.
    • 더 이상의 ACK는 하지 않는다.
  • Zombie scanning - TCP 연결을 통해 포트 스캐닝을 했다는 흔적을 남기지 않는다.
  • TCP ACK 스캔 - 방화벽에 열려있는, 즉 방화벽을 통과할 수 있는 포트 번호를 찾는다.

TCP 연결 설정 - 3 way handshake

 

  1. 세 번의 TCP 세그먼트의 교환으로 연결을 설정한다.
  2. 첫번째 세그먼트는 SYN flag 값을 1로 하고 초기 seq을 알려준다.(다른 내용은 없음)
  3. 두번째 세그먼트는 SYN ACK flag값을 1로 하고, ACK 값을 적음
  4. 세번째 세그먼트는 ACK flag값을 1로 하고, ACK 값을 적음

 

 


Zombie scanning

  • 공격자는 공격(스캔)을 대행할 호스트(zombie)의 IP 주소 를 이용한다. (source address spoofing)
  • 나중에 zombie 호스트로부터 받은 패킷의 IPID 값으로 공격 대상 호스트의 특정 포트가 열려 있는지를 판단한다.
  • 공격 대상 호스트는 연결을 요청한 호스트는 zombie로 기록되고 실제 공격자는 알지 못한다.

 

공격 대상 호스트의 포트가 열려있다면.

공격 대상 호스트의 포트가 열려있을 때

  1. 공격자가 공격 대상(T)한테 SYN과 ACK를 보내면
  2. 공격 대상(T)은 공격자가 SYN부터 보내오지 않았기에 일반적인 3 way handshake가 아니다. 그래서 비정상적인 요청이기 때문에 RST (Rest)과 IPID = x를 보낸다. 여기서 공격자의 목적은 IPID = x이다.
  3. 그리고 공격자는 Zombie PC한테 공격 대상의 포트로 SYN을 보낸다.
  4. 그러면 Zombie PC는 공격대상(T)에게 SYN을 받았다고 생각해서 공격대상(T)에게 SYN-ACK를 보낸다. 
  5. 그런데 공격대상(T)가 SYN을 보낸적이 없는데 SYN-ACK 요청이 오니깐 Zombie PC에게 RST (Rest)과 IPID = x+1을 보낸다.
  6. 그리고 공격자는 IPID가 x+1이라는것을 알고있고 다시 SYN-ACK를 공격대상(T)에게 보낸다
  7. 공격대상(T)는 RST (Rest)과 IPID = x+2 보낸다. 
  8. 결론 : 공격자는 IPID가 x+2 인걸 알고 2라는 짝수가 오면 공격자는 공격대상자의 포트가 열려있다는 것을 알 수 있다.

 

공격 대상 호스트의 포트가 닫혀있다면.

공격 대상 호스트의 포트가 닫혀있을 때

  1. 공격자가 공격 대상(T)한테 SYN과 ACK를 보내면
  2. 공격 대상(T)은 공격자가 SYN부터 보내오지 않았기에 일반적인 3 way handshake가 아니다. 그래서 비정상적인 요청이기 때문에 RST (Rest)과 IPID = x를 보낸다. 여기서 공격자의 목적은 IPID = x이다.
  3. 그리고 공격자는 Zombie PC한테 공격 대상의 포트로 SYN을 보낸다.
  4. 그러면 Zombie PC는 공격대상(T)에게 SYN을 받았다고 생각해서 공격대상(T)에게 연결을 시도하려고 했으나 포트가 열려있지 않아서 RST를 보낸다.
  5. 공격자는 다시 공격대상(T)에게 SYN-ACK을 보내본다.
  6. 공격대상(T)는 Zombie PC와 아에 echo가 발생하지 않았기 때문에 IPID가 x+1이 아닐 것이다. 그래서 공격대상(T)는 RST와 IPID = x+1를 공격자한테 보낸다.
  7. 결론: 공격자는 IPID가 x+1 인걸 알고 1이라는 홀수가 오면 공격자는 공격대상자의 포트가 열려있다는 것을 알 수 있다.

 


TCP ACK 스캔

  • 공격자는 3-way handshake 없이 ACK 비트를 세팅하고 패킷을 보낸다
  • ACK패킷은 패킷필터를 통과한다면, 이 ACK 패킷을 받은 수신 프로세스는 RST비트 를 세팅하여 보낸다.
    • SYN-ACK에 대한 응답 패킷이 아니므로 (프로토콜을 위반한 패킷)
  • 이와 같이 하여 공격자는 포트 1302가 현재 방화벽에서 열려 있는 것을 알 수 있다.

 

'서버 > 암호' 카테고리의 다른 글

방화벽 (Firewall)  (0) 2021.08.02
Spoofing (속이기)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
ICMP 에러 보고 메시지  (0) 2021.07.29
728x90
  • 원래 인터넷 프로토콜(TCP/IP protocol suite)은 네트워크 공격이 라는 것을 사실상 전혀 고려하지 않고 만들어졌다.(모두 신뢰할 수 있는 사용자일 것으로 가정)
  • 그래서 프로토콜에는 쉽게 공격에 이용당할 수 있는 취약점이 존재한다.
  • 인터넷 초기 이러한 유형의 네트워크 공격이 등장했다. 지금은 프 로토콜을 세심하게 운용하여 모두 방어를 하고 있다고 볼 수 있다.
  • 하지만 아직 우리가 발견하지 못한 네트워크 프로토콜의 취약점이 존재할 수도 있다.

네트워크 공격의 유형

공격의 절차

  • 공격자는 공격의 대상(victim)을 찾는다. - 호스트혹은TCP연결혹은응용프로토콜세션
  • 공격의 완성은 연결 혹은 세션을 갈취(hijacking)하여 공격자 의도대로 패킷을 주고 받는 것이라고 할 수 있다.
  • Snooping (sniffing) - 정찰(탐색)
  • Spoofing - 속이기
  • 하이재킹 (hijacking)

'서버 > 암호' 카테고리의 다른 글

Spoofing (속이기)  (0) 2021.07.29
Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
ICMP 에러 보고 메시지  (0) 2021.07.29
부트킷 (bootkit)  (0) 2021.07.29

+ Recent posts