DNS 스푸핑
IT위키
더 많은 작업
DNS Spoofing
DNS 응답을 위조해 사용자를 공격자가 원하는 서버로 유도하는 공격
정상 도메인 이름을 입력해도 공격자의 IP 로 접속하게 되므로, 피싱 사이트로 유도하거나 악성코드를 배포하는 데 쓰인다.
- DNS 캐시 포이즈닝(Cache Poisoning)
- DNS 서버의 캐시에 위조된 레코드를 심는다.
- 한 번 오염되면 TTL 동안 그 서버를 쓰는 모든 사용자가 영향을 받아 피해 범위가 넓다.
- 스니핑 기반 스푸핑
- 같은 네트워크에서 클라이언트의 질의를 엿보고, 정상 서버보다 먼저 위조 응답을 보낸다.
- DNS 는 UDP 기반이고 먼저 온 응답을 받아들이기 때문에 가능하다.
- hosts 파일 변조
- 악성코드가 단말의 hosts 파일을 고쳐 특정 도메인만 다른 IP 로 보내게 한다. 파밍의 전형적인 수법이다.
| 공격 | 하는 일 | 목적 |
|---|---|---|
| DNS 캐시 포이즈닝 | 사용자 PC 가 참조하는 DNS 서버(리졸버)의 캐시에 잘못된 도메인 정보를 주입한다 | 정상 주소를 입력한 사용자를 위장 웹서버로 유도(파밍·피싱) |
| DNS 증폭 공격 | 출발지를 피해자 IP 로 위조해 열린 리졸버에 재귀 질의를 대량으로 보내고, 커진 응답이 피해자에게 몰리게 한다 | 서비스 거부(DDoS) |
| 영역 전송(Zone Transfer) 악용 | 영역 전송을 제한하지 않은 서버에 AXFR 을 요청해 영역 정보 전체를 받아 간다 | 내부 호스트·IP 대역 정보 수집 |
| 버전 정보 수집 | dig @서버 version.bind chaos txt 로 BIND 소프트웨어 버전을 알아낸다 |
알려진 취약점이 있는 버전인지 판단(사전 정보 수집) |
- 정보 수집·서비스 거부 공격은 DNS 응답을 위조하지 않으므로 캐시 포이즈닝이 아니다. 대책은 버전 숨기기·영역 전송 허용 대상 제한·재귀 질의 제한이다 → 리눅스 named.conf