DNS 터널링 (DNS Tunneling)

정보보안학
한 줄 정의: DNS 프로토콜의 질의·응답 메시지 안에 다른 데이터를 은닉해 전송함으로써, DNS를 우회 통신 채널로 악용하는 기법입니다.

쉽게 풀면

회사 출입 시스템에서 명함만 확인하는 검문소가 있다고 할 때, 명함 뒷면에 몰래 비밀 쪽지를 적어 통과시키는 것과 비슷합니다. DNS는 원래 도메인 이름을 IP 주소로 바꿔주는 단순한 조회 기능만 하는데, 많은 방화벽이 DNS 트래픽은 잘 검사하지 않고 통과시키는 경향이 있습니다. 공격자는 이 허점을 이용해 DNS 질의와 응답 안에 실제로는 파일이나 명령 데이터를 숨겨 몰래 주고받습니다.

왜 중요한가

DNS 터널링은 방화벽 우회, 데이터 유출(exfiltration), 명령제어(C2) 채널 구축 등에 악용될 수 있어, 네트워크 이상 탐지와 DNS 트래픽 분석 연구에서 중요한 사례로 다뤄집니다. 탐지가 어려운 은닉 통신 기법의 대표 예시로도 자주 인용됩니다. 실제 기업 보안사고 사례에서 DNS 터널링이 장기간 탐지되지 않은 채 내부 데이터를 지속적으로 빼돌리는 통로로 악용된 경우가 다수 보고되어 있습니다. 레드팀 침투 테스트에서도 방화벽 우회 성공 여부를 검증하는 대표적인 시나리오로 DNS 터널링이 자주 활용됩니다. 정상적인 트래픽에 섞여 나가는 특성 때문에 네트워크 방어팀은 이를 조기에 발견하기 위해 도메인 이름의 통계적 이상 징후를 꾸준히 감시해야 합니다.

논문에서는 이렇게 쓰입니다

"제안 시스템은 DNS 질의의 엔트로피와 요청 빈도를 분석하여 DNS 터널링을 통한 은닉 통신을 탐지한다."

정상적인 DNS 조회와 다른 통계적 특징을 이용해 몰래 숨긴 통신을 찾아낸다는 뜻입니다.

"공격자는 DNS 터널링을 이용하여 방화벽에 차단되지 않은 채 내부 데이터를 외부로 유출하였다."

방화벽이 DNS 트래픽을 잘 막지 않는 점을 악용해 데이터를 몰래 빼돌렸다는 사례입니다.

조금 더 깊게 보면

DNS 터널링은 통상 도메인 이름의 서브도메인 부분에 인코딩된 데이터를 담아 질의를 보내고, 응답의 TXT나 CNAME 레코드 등을 통해 데이터를 되돌려받는 방식으로 동작합니다. 탐지는 비정상적으로 긴 도메인 이름, 높은 질의 빈도, 특이한 문자 분포(엔트로피) 등을 분석하는 방법이 흔히 사용됩니다. 일부 상용 원격접속 우회 도구나 캡티브 포털 우회 기법도 유사한 DNS 터널링 원리를 정상적인 목적으로 활용하는 경우가 있어, 악성 여부를 트래픽 목적과 맥락까지 함께 살펴 판단해야 합니다.

주의할 점

정상적인 클라우드 서비스나 CDN도 다소 특이한 DNS 패턴을 보일 수 있어, 단순 통계만으로 터널링 여부를 단정하면 오탐이 발생할 수 있습니다.

관련 용어