Hacking & Security/Hacking

[정보보안개론] - 네트워크 보안(2)

choideu 2023. 2. 6. 21:07

Spoofing: 다른 사람을 흉내내는 것으로 네트워크 보안 분야에서는 공격자가 마치 공격 대상자인 것처럼 행세하는 것

 

sniffing과의 차이

sniffing: 원래의 수신자도 송신자가 보낸 메시지를 전달받음

spoofing: 원래의 수신자가 메시지를 전달받지 못함

구분 공격 계층
ARP 스푸핑 2계층
IP 스푸핑 3계층
ICMP 리다이렉트
DNS 스푸핑 7계층

 

if) 로컬 네트워크 안 = 같은 스위치에 연결된 단말 환경을 의미함

같은 스위치 내에 존재하면, 대표적인 2계층 공격인 ARP 스푸핑 공격이 가능함

 

1. ARP 스푸핑

arp(=address resolution protocol)로 MAC 주소를 결정(resolution)하기 위한 통신 프로토콜

- 같은 네트워크 안에 위치한 단말 A가 단말 B로 IP 주소를 이용해 메시지를 보냄

- 스위치는 ARP 요청을 전달받게 되면 자신에게 접속된 모든 단말에게 ARP 요청을 브로드 캐스드함

- ARP 요청을 받은 단말 중 실제 요청한 IP 주소를 가진 단말이 있으면 ARP 응답을 해줌

computer A가 다른 네트워크에 있는 computer C의 주소를 알려고 ARP 요청을 보내면?

(ARP를 통해 MAC 주소를 알려고 하는 단말이 같은 네트워크 안에 없는 경우)

IP는 computer C이지만, MAC 주소는 gateway의 MAC 주소로 설정됨

https://choideu.tistory.com/376(이 글을 통해 L3의 라우팅을 이해할 것)

 

실전 네트워크 - L3 라우팅

Choideu 실전 네트워크 - L3 라우팅 본문 Computer/Network 실전 네트워크 - L3 라우팅 choideu 2022. 12. 12. 00:48

choideu.tistory.com

 

1-1. ARP spoofing

공격자가 스위치 내의 다른 단말에 가짜 ARP 응답을 보내는 것이 핵심

-> ARP 요청이 오지 않았는데도 불구하고 ARP 응답을 스위치 내의 다른 단말에 지속적으로 보냄

ARP 응답을 받은 단말은 전달된 가짜 MAC 주소를 자신의 ARP 테이블에 반영함

 

1-2. 탐지 방법

  • 지속적인 ARP 응답 발생
  • ARP 테이블에서 중복된 MAC 주소 확인
  • ARP 테이블 감시 프로그램 활용

 

2. IP spoofing

자신의 IP 주소를 다른 사람의 IP 주소로 속이는 것

ARP spoofing 같은 스위치 내부에서만 공격 가능
IP spoofing 게이트웨이 외부에서도 공격 가능

2-1. IP 스푸핑 자체로서 위협적일 수 있는 상황

- IP 주소가 인증의 수단이 될 때

- A와 B가 IP 주소 기반의 트러스트 관계일 경우, A는 B의 IP 주소에 대해 모든 요청에 대해 인증 절차 없이 허용

*IP 주소 기반의 트러스트 관게를 맺지 않는 것이 안전함

 

3. ICMP spoofing

ICMP(internet control message protocol)는 네트워크 상에 현재 오류가 없는지 진단하거나 제어하는 목적으로 사용되는 프로토콜로, IP 프로토콜의 약점을 보완하기 위해 사용됨

- IP 프로토콜의 경우 메세지를 보내는 도중 오류가 발생하였을 때에 대한 특별한 대처 방안이 없음

- 상위 프로토콜인 tcp or udp 프로토콜이 이런 IP의 약점을 보완하기 위해 메시지를 받지 못했을 때 재전송을 요청함

- ICMP는 메시지를 전송하지 않고 순전히 네트워크 진단 or 제어 목적으로 사용됨

- ICMP spoofing은 ICMP protocol이 자체적으로 인증 절차가 없다는 약점을 이용해 ICMP의 네트워크 제어 기능을 악용하는 공격 기법임

 

3-1. ICMP 사용 목적

  • 네트워크 진단(ping, traceroute)
  • 네트워크 흐름 통제
    • 더욱 효율적인 메시지 전송을 위해 ICMP redirect 메시지를 보냄
    • ICMP redirect 메시지를 보내 자신이 공격 대상자의 게이트 웨이가 되게 함 -> 모든 메시지가 공격자에게 전송됨

 

4. DNS spoofing

DNS(domain name system)은 접속하려는 URL으로 IP 주소를 구함

- DNS resolver가 DNS query를 보내면 DNS server는 DNS response를 보냄

- DNS는 UDP 통신을 사용함

- DNS spoofing은 공격 대상에게 전달되는 IP 주소를 변조하거나, DNS 서버에 변조된 IP 주소가 저장되게 해 공격 대상이 의도하지 않은 주소로 접속하게 하는 공격 방법임

 

4-1. 공격 방법

  • 스니핑을 이용한 공격
    • 공격 대상자의 패킷을 도청하여 DNS 요청이 전달될 경우 정상적인 DNS 응답이 도착하기 전 변조된 DNS 응답을 전달하는 것 -> UDP는 세션이 유지되지 않고 먼저 도착한 메시지만 선택하고 이후에 도착하는 메시지는 무시되는 UDP의 특성을 악용
  • DNS cache poisoning
    • DNS 서버가 가진 IP 주소 자체를 변조시키는 것
    • DNS 서버 자체를 공격하기 때문에 이 공격이 성공하면 엄청난 파급효과를 가짐

4-2. DNS 서버 작동 방식

  1. DNS 서버는 IP 주소에 대한 정보를 얻어오기 위해 외부의 공인 네임 서버에 요청
  2. 전 세계에 공인 네임 서버가 여러 개 존재함, 최상위에는 루트 네임 서버가 있음
  3. 루트 네임 서버 하위에는 계층별로 공인 네임 서버가 존재함
  4. 계층적으로 도메인의 주소를 질의하는 방식: recursive query

4-3. 공격

DNS 서버가 공인 네임 서버에 질의하고 공격자가 공인 네임 서버인 척 응답함

*이때 DNS 서버는 공인 네임 서버로부터 자신에게 보내지는 DNS 응답이 자신이 보낸 요청에 대한 응답인지 검사하기 위해 ID 값을 생성하는데 스니핑하는 상태가 아니라면 공격자는 이 값을 모름

birthday paradox를 이용해 공격자는 ID 값을 랜덤 생성하여 보냄