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에서 아파치 서비스 실행
<DSW1>
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 경로를 변경할 수 있다.
- 이를 방어하기 위한 방법은 다음과 같다.
- Root Guard
-> Root Bridge에 설정하는 방어법
만약 Root Bridge가 자신보다 더 좋은 조건의
BPDU를 수신하게 될 경우 해당 포트의 상태를
'inconsistent' 상태로 변경하여 통신이 불가능하게 만든다.
- BPDU Guard
-> End Device가 연결된 Access 스위치에 설정하는 방어법
(end device가 연결된 스위치,포트)
인가받지 않는 configuraion bpdu를 보내면 포트를 bpdu가 들어오면 죽이는 것
-> BPDU Guard가 설정된 interface로 BPDU를 수신하게 되면
공격 혹은 인가받지 않은 불법 스위치로 간주하고 해당 포트를
Block 시키게 된다.
- BPDU Filter
-> BPDU Guard와 반대되는 개념으로 협상할 필요가 없는
End Device가 연결된 포트로 BPDU를 전송하지 않는 설정
-> End Device에게 불필요한 BPDU를 전송하게 되면
대역폭의 낭비 및 보안적으로 좋지 않기 때문에
설정하는 것이 더 안전하다.
종단장치로 bpdu로 못 들어가게 하는 것
- 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 |