특정 업체의 DNS 차단 방지 방법

최근 DNS 공공 서비스에서 IP의 비정상적인 접근 행위가 감지되었습니다. 초당 수십 번씩 같은 도메인에 대해 반복적으로 요청을 보내며 DNS 프로토콜을 전혀 따르지 않고, 글로벌 TTL(Time To Live) 값을 무시하고 있습니다.

도메인 반복 빠른 요청

처음에는 해당 IP가 공격자라고 생각했지만, 트래픽을 관찰한 결과 주로 특정 업체의 앱이 DNS를 미친 듯이 요청하고 있음을 알게 되었습니다. 백엔드에서 TTL=10으로 설정한 것은 DNS 쿼리 반환값의 수명이 10초라는 의미이며, 이 10초 동안 요청자는 해당 반환값을 사용해야 하고 다시 DNS 서버에 요청해서는 안 됩니다. 그러나 해당 앱은 초당 수십 개의 동일 요청을 보내며 DNS 프로토콜의 TTL 값 처리를 제대로 따르지 않고 있습니다. 백엔드 차단 요청 통계를 보면 90% 이상의 요청이 해당 도메인에 대한 요청입니다.

해당 업체는 DNS 차단 수단을 알고 있을지도 모릅니다. 차단당하지 않게 하려고 사용자 앱을 통해 DNS 서버를 직접 DoS 공격하는 방식을 채택한 것 같습니다. 백엔드에서 초당 20회의 버스트 요청만 허용하도록 설정했기 때문에 이러한 무모한 행동은 사용자의 다른 정상적인 DNS 쿼리에도 영향을 미쳐 다른 앱의 정상 사용에까지 영향을 줄 수 있습니다.

운영 담당자가 동일 IP가 동일 도메인을 미친 듯이 요청하는 행동을 보면 차단하고 싶어도 차단할 수밖에 없게 됩니다.