233. 중요 정보 접근 — DNS 터널링 유출 탐지

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
233/450

시스템 보안 · 취약점 › E. 중요 정보 접근 로그 분석 · 33/50편 (전체 233/450)
학습 단계: 데이터 유출(exfiltration) 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

DNS는 거의 모든 방화벽이 허용하므로, 공격자는 DNS 쿼리에 데이터를 인코딩해 실어 유출합니다. 데이터를 서브도메인에 담아 공격자 DNS 서버로 쿼리하면, 방화벽을 우회한 은닉 채널이 됩니다.

DNS 터널링 유출 원리
 데이터 → base32/hex 인코딩 → 서브도메인
 쿼리: <encoded-data>.attacker-domain.com
   예: MFRGG.ZDFMZ.attacker.com (데이터 조각)
 공격자 DNS 서버가 쿼리에서 데이터 복원

특징: 비정상적으로 긴 서브도메인, 높은 쿼리 빈도,
      한 도메인에 대한 다수 고유 쿼리

DNS 터널은 정상 DNS와 섞여 은밀하지만, 쿼리 길이·빈도·고유 서브도메인 수의 통계적 이상으로 탐지됩니다.

2. 왜 중요한가

  • DNS는 방화벽이 허용해, 다른 채널이 막혀도 유출 가능한 은닉 경로입니다.
  • 정상 DNS 쿼리와 섞여 탐지가 어렵지만, 통계적 특징이 뚜렷합니다.
  • 긴 서브도메인·높은 빈도·많은 고유 쿼리가 터널링의 핵심 지표입니다.

3. 핵심 명령어 / 설정

DNS 터널 지표정상터널링
서브도메인 길이짧음매우 김(인코딩)
쿼리 빈도낮음높음(연속)
고유 서브도메인적음많음(데이터 조각)
쿼리 타입A/AAAATXT/NULL 많음
도메인알려진생소·신규

4. 실습 (실습 예시)

# DNS 터널링 유출 탐지 (분석 방법)
# DNS 쿼리 로그에서 긴 서브도메인(인코딩 의심)
sudo grep -oE 'query: [a-zA-Z0-9._-]{50,}' /var/log/named/query.log 2>/dev/null | tail
# 한 도메인에 대한 고유 서브도메인 수(터널 지표)
sudo grep 'query:' /var/log/named/query.log 2>/dev/null | grep -oE '[a-z0-9-]+\.[a-z]+\.[a-z]+$' | sort | uniq -c | sort -rn | head

5. 정상 상태

$ (긴 서브도메인) (없음)
$ (도메인별 쿼리) 정상 도메인에 소수 쿼리(google·업데이트 등)

DNS 쿼리가 정상 길이·빈도이고, 한 도메인에 과도한 고유 서브도메인이 없는 상태가 정상입니다.

6. 이상 상태

$ (긴 서브도메인)
query: MFRGGZDFMZXWYZLTMVZXG5DJMQ.NFXG.attacker.com (인코딩 데이터)
$ (도메인별 쿼리)
  850 attacker.com  (850개 고유 서브도메인 — 데이터 조각)
  • 비정상적으로 긴 base32 서브도메인 → 데이터 인코딩
  • attacker.com에 850개 고유 서브도메인 쿼리 → 데이터를 조각내 전송
  • 긴 서브도메인·다수 고유 쿼리 → DNS 터널링 유출 → 정탐

7. 로그 분석 (분석 방법)

DNS 터널링 유출 흐름입니다(가상의 예시).

[데이터] all.tgz
   ↓ (조각+인코딩)
[쿼리] <조각1>.attacker.com, <조각2>.attacker.com ...
   ↓ (방화벽 허용 DNS로 우회)
[공격자 DNS] 쿼리에서 조각 복원 → 데이터 재조립
   ↓
[유출 완료] 은닉 채널로 데이터 외부 반출
지표터널 신호
서브도메인 길이50자+
고유 쿼리 수수백~수천
쿼리 타입TXT/NULL
도메인단일 생소

긴 인코딩 서브도메인과 한 도메인의 대량 고유 쿼리가 DNS 터널의 결정적 지표입니다.

8. SOC 관제 포인트

  • DNS 터널링은 DNS 쿼리에 데이터를 인코딩해 방화벽을 우회하는 은닉 유출입니다.
  • 긴 서브도메인·높은 빈도·다수 고유 쿼리·TXT 타입이 핵심 지표입니다.
  • 정상 DNS와 섞여 은밀하므로 통계적 패턴 분석으로 탐지합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_e,exfiltration,">
  <!-- 비정상적으로 긴 DNS 서브도메인(인코딩 데이터) -->
  <rule id="104320" level="12">
    <decoded_as>named</decoded_as>
    <field name="query" type="pcre2">^[a-zA-Z0-9+/=_-]{50,}\.</field>
    <description>DNS 터널링 의심(긴 인코딩 서브도메인)</description>
    <mitre><id>T1048.001</id><id>T1071.004</id></mitre>
  </rule>
</group>

도메인별 고유 쿼리 수 급증은 ELK 집계로 보완합니다. DNS 로그(named/dnsmasq) 수집이 전제입니다.

10. 대응 방법

  1. 초기 확인 — DNS 쿼리의 서브도메인 길이·빈도·고유 수·타입을 확인합니다.
  2. 범위 확인 — 한 도메인에 대한 대량 고유 쿼리·인코딩 패턴을 확인합니다.
  3. 증거 확보 — DNS 쿼리 로그와 의심 도메인·쿼리 패턴을 보존합니다.
  4. 차단/조치 — DNS 터널 정탐이면 해당 도메인 차단·세션 종료·유출 범위 조사를 진행합니다.
  5. 재발 방지 — DNS 쿼리 패턴 기반 터널링 탐지를 운영합니다.

11. 핵심 정리

DNS 터널 지표신호
서브도메인 길이50자+(인코딩)
고유 쿼리 수수백~수천
쿼리 타입TXT/NULL
도메인단일 생소
면접 포인트"DNS 터널은 방화벽 우회 은닉 유출 — 긴 서브도메인+다수 고유 쿼리로 탐지"

12. 다음 편 예고

다음 편 234. 중요 정보 접근 — ICMP·비표준 채널 유출 탐지 에서는 ICMP·비표준 채널 유출을 다루는 ICMP·비표준 채널 유출 탐지를 다룹니다.


이전 편: 232. 중요 정보 접근 — 외부 전송(아웃바운드) 유출 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글