본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

DNS Spoofing

DNS 응답을 위조해 사용자를 공격자가 원하는 서버로 유도하는 공격

정상 도메인 이름을 입력해도 공격자의 IP 로 접속하게 되므로, 피싱 사이트로 유도하거나 악성코드를 배포하는 데 쓰인다.

  • DNS 캐시 포이즈닝(Cache Poisoning)
    • DNS 서버의 캐시에 위조된 레코드를 심는다.
    • 한 번 오염되면 TTL 동안 그 서버를 쓰는 모든 사용자가 영향을 받아 피해 범위가 넓다.
  • 스니핑 기반 스푸핑
    • 같은 네트워크에서 클라이언트의 질의를 엿보고, 정상 서버보다 먼저 위조 응답을 보낸다.
    • DNS 는 UDP 기반이고 먼저 온 응답을 받아들이기 때문에 가능하다.
  • hosts 파일 변조
    • 악성코드가 단말의 hosts 파일을 고쳐 특정 도메인만 다른 IP 로 보내게 한다. 파밍의 전형적인 수법이다.
  • DNSSEC : DNS 응답에 전자서명을 붙여 위조 여부를 검증한다. 근본적인 대응이다.
  • DNS over TLS(DoT), DNS over HTTPS(DoH) 로 질의 구간을 암호화한다.
  • 질의 ID 와 출발지 포트를 무작위화해 추측을 어렵게 한다.
  • 신뢰할 수 있는 DNS 서버만 사용하고, 단말의 hosts 파일 변경을 감시한다.
  • 접속한 사이트의 인증서를 확인한다. 스푸핑되어도 TLS 인증서 검증에서 걸러진다.

다른 DNS 공격과의 구분

편집 원본 편집
공격 하는 일 목적
DNS 캐시 포이즈닝 사용자 PC 가 참조하는 DNS 서버(리졸버)의 캐시에 잘못된 도메인 정보를 주입한다 정상 주소를 입력한 사용자를 위장 웹서버로 유도(파밍·피싱)
DNS 증폭 공격 출발지를 피해자 IP 로 위조해 열린 리졸버에 재귀 질의를 대량으로 보내고, 커진 응답이 피해자에게 몰리게 한다 서비스 거부(DDoS)
영역 전송(Zone Transfer) 악용 영역 전송을 제한하지 않은 서버에 AXFR 을 요청해 영역 정보 전체를 받아 간다 내부 호스트·IP 대역 정보 수집
버전 정보 수집 dig @서버 version.bind chaos txt 로 BIND 소프트웨어 버전을 알아낸다 알려진 취약점이 있는 버전인지 판단(사전 정보 수집)
  • 정보 수집·서비스 거부 공격은 DNS 응답을 위조하지 않으므로 캐시 포이즈닝이 아니다. 대책은 버전 숨기기·영역 전송 허용 대상 제한·재귀 질의 제한이다 → 리눅스 named.conf