개요
DNS 스푸핑, DNS Cache poisioning, 혹은 DNS Filtering(보통 긍정적 의미로 사용됨)은 변조된 DNS데이터가 DNS Cache에 주입되어서 Name server에 대한 쿼리 결과가 잘못된 결과 레코드를 반환하는 컴퓨터 해킹 방법이다. DNS Spoofing을 사용하면, 모든 트래픽이 공격자의 컴퓨터로 전환되어서 전송시킬 수 있다.
Attack
DNS는 사람이 읽을 수 있는 Domain을 서버의 IP주소로 변환시킨다. 컴퓨터는 이러한 번역을 속도를 위해서 캐싱하고 있다. 그러나 DNS서버가 잘봇된 변환을 수신하고 이를 캐시하면, 컴퓨터는 잘못된 IP로 접속하게 되어서, 트래픽을 다른 컴퓨터로 전환할 수 있다. DNS는 UDP위에서 포호받지 않고 전송되기 때문에, 이러한 공격에 취약하다.
DNS공격을 박기 위해서 보안 DNS (DNSSEC)은 공개 키 인증방식을 통해서 암호화된 서명을 사용해 데이터의 진위 여부를 판별하지만, DNSSEC을 지원하지 않는 일반 DNS가 현재 많이 사용되고 있다. 또한 HTTPS와 같은 End-to-end 검증을 수행하면, 이러한 공격을 확인하고 예방할 수 있다.
예시
중국의 Greate fire wall은 잘못된 콘텐츠들을 예방하기 위한 방법중 하나로, DNS Filtering을 사용한다. 중국의 DNS서버가 타국의 DNS서버보다 일반적으로 빨리 DNS Request를 날리기 때문에, 중국의 특정 도메인들은 DNS Filtering을 통해서 필터되는 경우가 있다.