network 보안

DNS 공격 및 방어

byeong07 2016. 9. 1. 00:29

DNS 공격 및 방어

 

 - DNS Spoofing 이란?

 Target의 DNS Query가 발생하면 DNS Server보다 공격자가 먼저 응답하여 Attacker가 의도한 IP를 넘겨준다.

- 공격원리

- DNS 는 UDP를 사용한다.
• UDP는 Stateless한 프로토콜이다.

   - 인증 메커니즘이 없다.

- 공격자는 Local에 존재하므로 실제 DNS Server보다 빨리 응답할 수 있다.

- 클라이언트는 DNS Query를 보낸 후 먼저 도착한 응답을 수용한다.

- 공격자는 DNS Query를 스니핑 해야 함
 
- Transaction ID, 사용된 Local Port, 네임서버주소 등의 정보를 알아야 하므로 주로 Local에서 공격이 행해짐   

- DNS Cache Poisoning

- DNS와 비슷한 공격기법으로 공격대상이 클라이언트가 아닌 DNS 서버가 대상이 되며 DNS서버의 DNS캐쉬를 조작하는 공격이다.

- 공격성공률을 높이기 위해 Birthday Attack 기법이 적용됨

Domain Name 질의 순서

 

 

 

 

 



 - ARP spoofing을 이용해 공격자를 게이트웨이로 속인다.

 - arpspoof  172.16.1.2

 - dnsspoof를 이용해 해당 쿼리가 발생하게 되면 위조된 결과를 Reply 한다.

 - dnsspoof –f <파일명>

 - 파일의 내용
    • 172.16.1.6 www.naver.com


DNS캐쉬 초기화 

linux : nscd 재시작
windows : ipconfig /flushdns   

 

dns
transaction ID : 0x0003

 

 

dns.qry.name==www.itbank.com

 

 

 


 

dns spoofing

개요
dns는 일반적으로 udp 53번을 통해 통신
session 맺지 않고 인증없이 통신한다.
공격자가 응답하여 의도한 ip를 넘겨서 공격이 가능하다
dns를 공격자가 훔치거나 엿보게 할 수 있다.
(arp spoofing, dhcp spoofing)


실습 : 공격자가 dns 쿼리 메시지를 가로채서 가짜 dns 서버 + 가짜 web 서버인 것처럼 한다.

kail에서 아파치 서비스 실행

 

 

 

var/www/html 경로에서 ls로 index.html 파일 확인 

 

 

 

 vi index.html로 접속

 

 

 

 vi host로 들어와서 admin_a에서 10.10.10.10으로 접속했을 때 www.naver.com으로 한다.    

 

 

 ip 역방향으로 입력

 

 

 

 

-> hsrp ip addr로 필터했을 떄 source ip 10.10.10.10인 것을 확인

 

 

hsrp && ip.addr=10.10.10.10
:hsrp이면서 ip가 관련된 것만 필터

hsrp 설정
그룹 번호,virtual router ip, 인증 키

 


 <DSW1>

 

 

 

- int vlan 10, standby 10 인증 설정

 

 

conf t
int vlan 10
standby 10 authentication md5 key-string cisco321

 

 

<IOU1 / IOU2 / IOU3>
conf t
int range e 0/0 - 3 , e 1/0 - 3 , e 2/0 - 3 , e 3/0 - 3
shut

<IOU1>
int range e 0/0 - 1
no shut

<IOU2>
int range e 0/0 , e 0/2 - 3
no shut

<IOU3>
int range e 0/1 - 2
no shut

 


- STP Attack 및 방어

- 공격자가 Root Bridge보다 더 좋은 조건의 BPDU를 전송하여 STP 경로를 변경할 수 있다.

-  이를 방어하기 위한 방법은 다음과 같다.

  1. Root Guard
      -> Root Bridge에 설정하는 방어법
          만약 Root Bridge가 자신보다 더 좋은 조건의
          BPDU를 수신하게 될 경우 해당 포트의 상태를
          'inconsistent' 상태로 변경하여 통신이 불가능하게 만든다.


  1. BPDU Guard
      -> End Device가 연결된 Access 스위치에 설정하는 방어법
                                         (end device가 연결된 스위치,포트)
         

          인가받지 않는 configuraion bpdu를 보내면 포트를 bpdu가 들어오면 죽이는 것


      -> BPDU Guard가 설정된 interface로 BPDU를 수신하게 되면
           공격 혹은 인가받지 않은 불법 스위치로 간주하고 해당 포트를
           Block 시키게 된다.

  1. BPDU Filter
       -> BPDU Guard와 반대되는 개념으로 협상할 필요가 없는
           End Device가 연결된 포트로 BPDU를 전송하지 않는 설정

        -> End Device에게 불필요한 BPDU를 전송하게 되면
             대역폭의 낭비 및 보안적으로 좋지 않기 때문에
             설정하는 것이 더 안전하다.

         종단장치로 bpdu로 못 들어가게 하는 것
           

 

 

  1. Loop Guard
       -> BLK 상태의 포트는 BPDU를 수신하지 못할 경우 망의 변화가
           발생된 것으로 간주하여 자신의 상태를 Forwarding 상태로
           변환시킨다.

      -> 하지만 실제로 망의 변화가 발생된 것이 아니라 BLK 포트로
           연결된 상대방 장비에 부하가 심해서 일시적으로 BPDU를
           전송하지 못하는 경우도 있다.

          이 경우 BLK 상태가 FWD 상태로 변환되게 되면 Loop가 발생되기 때문에
          이를 막기 위한 것이 바로 Loop Guard이다.

      -> BLK 상태의 포트에 'Loop Guard'를 설정하게 되면 BPDU를 수신하지 못하는 경우
          Loop Inconsistent 상태가 되면서 FWD으로 전환하지 않고 BLK 상태를 유지하면

 

 

   <IOU2>

 

 

 

 

   conf t
   int e 0/2
   spanning-tree guard loop
   -> BLK 상태의 포트에서 해당 명령어를 입력

 

 

 

 

'network 보안' 카테고리의 다른 글

AAA 인증  (0) 2016.09.01
IP Spooping  (0) 2016.09.01
DHCP 관련 Attack 및 방어  (0) 2016.08.31
arp spoofing  (0) 2016.08.07
URL Filter, DoS Attack Mitigation  (0) 2016.08.07