최근 한 개발자가 자신의 홈랩(개인 서버 환경)에서 외부 사이트 접속 오류를 조사하던 중, ISP(인터넷 서비스 제공자)가 DNS(도메인 네임 시스템) 질의를 가로채고 있음을 발견했습니다. 특정 도메인에 대한 IP 주소를 질의했을 때, ISP가 실제 IP 대신 자사의 IP 주소를 반환하여 접속을 방해하고 있었던 것입니다. 이는 인터넷 사용자의 개인 정보 보호와 보안에 심각한 위협이 될 수 있는 문제입니다.
이 개발자는 Podman 컨테이너에서 외부 사이트 접속이 실패하자 DNS 설정을 의심했고, 여러 공개 DNS 서버에 질의했으나 동일한 ISP 소유의 IP 주소가 반환되는 것을 확인했습니다. 하지만 Cloudflare의 DoH(DNS over HTTPS) 엔드포인트로 질의했을 때는 전혀 다른 실제 IP 주소를 얻을 수 있었습니다. 이는 ISP가 사용자의 평문 DNS 질의를 열람하고 변조하여, 특정 목적(예: 광고, 캐싱, 검열)을 위해 트래픽을 자사 서버로 유도하고 있음을 명확히 보여줍니다. Unbound 같은 로컬 DNS 리졸버를 자체 호스팅하더라도, 재귀 조회 과정에서 외부 네임서버로 보내는 평문 DNS 질의는 여전히 ISP에 의해 가로채이거나 변조될 수 있습니다.
DNSSEC(DNS Security Extensions)는 DNS 데이터의 진위 여부를 암호학적으로 검증하여 변조된 응답을 거부할 수 있지만, 전송 중인 DNS 질의 자체를 암호화하지는 않습니다. 즉, ISP는 여전히 질의 내용을 볼 수 있습니다. 반면 DoH와 DoT(DNS over TLS)는 리졸버까지의 연결을 암호화하여 ISP가 전송 중인 질의를 쉽게 열람하거나 변조하지 못하게 합니다. 그러나 이는 리졸버 운영자에 대한 신뢰를 전제로 하며, ISP는 TLS 핸드셰이크의 SNI(Server Name Indication)나 목적지 IP 주소를 통해 사용자가 방문하려는 사이트를 파악할 수도 있습니다. 궁극적으로는 VPN(가상 사설망)을 사용하여 모든 트래픽을 터널링하는 것이 가장 강력한 방어책이 될 수 있습니다.
실제 홈랩 환경에서는 AdGuard와 dnscrypt-proxy를 사용하여 DNSCrypt 기반의 업스트림 암호화를 적용하고 있으며, DNS 장애에 대비해 Cloudflare를 대체 리졸버로 설정하는 등 다층적인 보안 전략을 사용하고 있습니다. 이는 ISP의 개입으로부터 DNS 트래픽을 보호하고, 서비스 안정성을 확보하기 위한 현실적인 방안입니다. 많은 ISP가 광고 수익, 트래픽 최적화(캐싱), 또는 정부의 규제 및 검열 요구에 따라 DNS를 가로채는 경우가 있어, 사용자 스스로 자신의 DNS 트래픽을 보호하는 노력이 중요해지고 있습니다.
이러한 DNS 가로채기 문제는 단순히 기술적인 불편함을 넘어, 사용자의 온라인 활동에 대한 통제권과 개인 정보 보호를 위협합니다. ISP가 사용자의 인터넷 사용 패턴을 파악하고, 특정 콘텐츠 접근을 제한하거나, 심지어 악성 코드를 유포하는 데 악용될 가능성도 배제할 수 없습니다. 따라서 DoH/DoT를 지원하는 신뢰할 수 있는 공개 DNS 서버(예: Cloudflare, Google, Quad9)를 사용하거나, Pi-hole과 같은 로컬 DNS 서버를 구축하여 직접 DNS를 관리하고, 더 나아가 VPN을 활용하여 모든 인터넷 트래픽을 암호화하는 것이 개인의 디지털 주권을 지키는 데 필수적인 시대가 되었습니다.