콘텐츠로 이동

DNS 기록 수집과 안전한 조사

이 페이지에서 다루는 것

센서 위치가 무엇을 보이게 하는지, 질문자를 잃었을 때 방화벽으로 피벗하는 법, 공격자에게 들키지 않는 조사 순서(OPSEC), 그리고 DNS 탐지의 4단계(쪼개기·덧붙이기·판단·활용).

표기

[보충] = 꼭 알아야 할 실무 보충, [정정] = 흔히 잘못 알려진 내용 정정, [변경됨]/[주의] = 최근 바뀐 점과 옛 방식대로 하면 위험한 점. 전체 흐름은 DNS 개요에서, 기록 한 줄을 판별하는 순서는 판별표에서 볼 수 있습니다.

기록 점검과 피벗

공격을 잡으려면 먼저 볼 수 있어야 합니다. 센서 위치와 기록 종류가 무엇이 보이고 무엇이 안 보이는지를 결정합니다.

공격자의 DNS 이용 두 종류

종류 예 잡는 근거 잡는 방법
정상 DNS로 나쁜 곳 찾기 피싱 링크 클릭 → 평범한 A 질의 이름 자체(악성 목록, 무료 TLD, 신규 등록, 유사 철자) 목록과 비교
DNS 자체를 이상하게 쓰기 TXT로 명령 수신, DNS 터널링, NS 탈취 행동 패턴(TXT 비율, 긴·무작위 이름, NXDOMAIN 폭증) 평소(baseline)와 비교

목록 비교만 있으면 새 공격을, 행동 비교만 있으면 알려진 공격을 놓치므로 둘 다 필요합니다.

기록 점검 다섯 가지

  • 센서가 어디에 있나: 회사 DNS 서버 위쪽에만 있으면 질문자가 전부 DNS 서버 IP로 보임
  • 서버 기록과 네트워크 추출을 둘 다 쓰나: 서로의 빈 곳을 메움
  • 대답(응답 IP)도 기록하나: 없으면 방화벽 기록과 연결 고리가 끊김
  • 대답을 쌓아두나: 그 자체가 우리만의 Passive DNS(그때 그 도메인이 어느 IP였나)
  • 회사 DNS를 안 거치는 질문도 보이나: 외부 DNS 직접 사용, DoH
구성 보이는 것 안 보이는 것 보완
회사 DNS 서버 기록만 진짜 질문한 PC 회사 DNS를 우회한 질문(8.8.8.8 직행, DoH) 출구 센서(NAT 안쪽), 53번 외부 직행 차단 + 시도 알람, 브라우저 DoH 정책
출구 네트워크 센서만 우회 질문(53번이라면) 진짜 질문자, 캐시 히트로 밖에 안 나간 질문, 내부 도메인 질문 DNS 서버 기록 수집, 방화벽 피벗, PC 기록
  • 출구 센서는 NAT 안쪽에 둬야 진짜 PC IP가 보입니다.
  • DoH는 출구 센서에는 일반 HTTPS로 보이고 53번 차단에도 안 걸립니다. 브라우저 자체 DoH는 OS DNS를 거치지 않아 Sysmon 22에도 안 잡힐 수 있으므로 정책으로 막는 것이 확실합니다.

질문자를 잃었을 때 — 피벗

DNS 기록에서 응답 IP를 얻고, 그 IP로 방화벽 기록을 찾으면 진짜 PC가 나옵니다(한 기록의 값으로 다른 기록을 찾는 것 = 피벗).

  • 장점: 캐시 때문에 DNS 기록에 안 보이던 PC들도 결국 같은 IP로 접속하므로 함께 찾아짐. 시간 범위는 TTL만큼 넓혀서 봄
  • 한계: 공유 IP(CDN)면 수백 대가 나와 구분 불가 → 새로 접속한 PC만 좁은 시간으로, 프록시 기록(사이트 이름), SNI(ECH면 불가), PC 기록(Sysmon·EDR), 근본적으로 DNS 서버 기록 수집

2026년 관점

  • DoH가 "질문"에서 "현실"로: 53번 차단만으로 끝나지 않음
  • 암호화가 늘수록 네트워크에서 보이는 것이 줄어 PC 기록(Sysmon, EDR)이 세 번째 축으로 중요해짐
  • [주의] 위쪽 구간 기록만으로 자동 경보를 만들면 회사 DNS 서버가 "감염 장비"로 오탐됨. 경보 규칙에 "이 IP가 DNS 서버인가" 확인 단계를 넣음
  • [주의] 기록 도구가 TTL 칸을 버리는지 확인

안전한 조사와 탐지 공식

도메인↔IP의 답을 구할 때는 정확도(그때의 답인가)와 방어 OPSEC(공격자에게 들키지 않는가)를 함께 따집니다. 표적형이거나 모르겠으면 기본값은 "조용히"입니다.

왜 조사가 들키면 안 되나

직접 nslookup을 치면 질문이 공격자의 권한 서버까지 가서 우리 조직의 IP(또는 우리 DNS 서버 IP)가 남습니다. 공격자는 인프라 교체, 흔적 삭제, 잠복, 서두른 목적 달성으로 대응할 수 있습니다. 대량 유포 악성코드라면 덜 중요하고, 오히려 공유가 다른 방어자에게 도움이 됩니다.

세 단계 우선순위

순위 방법 공격자에게 들킴 그때의 답 언제
1 우리 기록: DNS, 프록시, Sysmon, EDR, 방화벽 안 들킴 그렇다 항상 먼저
2 외부 Passive DNS 기록 조회 공격자엔 안 닿음, 서비스엔 검색 기록이 남을 수 있음 그렇다(시간축 있음) 우리 기록이 없을 때
3A 온라인 서비스에 새 조회 시키기 우리 IP는 안 남음. VirusTotal은 기록 공개, CentralOps는 비공개 아니다(지금 답) 1·2가 없을 때
3B 직접 dig/nslookup 우리 IP가 공격자 서버에 남음 아니다(지금 답) 표적형이 아닐 때만
  • 같은 사이트라도 과거 기록 보기(2순위)와 새 조회 시키기(3순위)는 다른 기능입니다.
  • 직접 조회는 우리 DNS 기록에도 악성 도메인 조회 흔적을 새로 만들어, 감염 PC 판별을 헷갈리게 할 수 있습니다.

탐지 4단계

  1. 쪼갠다(파싱): 원본 기록 → 칸(필드). "기록이 들어온다"와 "필요한 칸이 다 있다"는 다름(TTL, 결과 코드 누락 주의)
  2. 덧붙인다(보강): 각 칸에 추가 질문 → PC 이름·부서·중요도, 사용자, 평판, 등록일, ASN, 프로세스 등. 시간 기준은 "지금"이 아니라 "사건 당시"(DHCP 확인)
  3. 판단한다: 강한 신호 하나(위협 정보 정확 일치) = 거의 확정 / 약한 신호 여러 개(신규 등록, 무료 TLD, 짧은 TTL, 평판 없음, 새벽, Temp 폴더 프로세스)가 겹치면 강한 의심
  4. 활용한다: 더 정확하고 빠른 판정. 사람이 손으로 하지 않고 시스템이 자동으로 붙이게 설계

덧붙이기(2단계) 네 방향

경보 한 줄을 칸으로 쪼갠 뒤, 칸마다 "이게 뭔데?"를 묻습니다. 요령: 누가(PC) · 무엇을(도메인) · 어디로(IP) · 왜/그다음(맥락).

방향 무엇을 덧붙이나 왜 필요한가
누가 (PC) 자산 목록(PC 이름·부서·중요도), DHCP(사건 시각 기준 매핑), 로그인 기록(사용자) 위험도와 연락 대상 결정
무엇을 (도메인) 위협 정보 일치, 등록일(WHOIS), 평판·분류, Passive DNS 이력 TLD 같은 약한 신호를 강하게 만듦
어디로 (응답 IP) 위협 정보, WHOIS/ASN(공유 IP인가), 결과 코드(NXDOMAIN?), TTL 공유 IP면 IP 평판은 약해짐
왜/그다음 (맥락) 질문한 프로그램(Sysmon 22), 직전 몇 초의 조회(출발 사이트), 같은 도메인을 조회한 다른 PC 수, 이후 실제 접속과 전송량, 시간대 초보자가 가장 많이 놓치지만 가장 결정적인 경우가 많음

같은 "PC가 .top 도메인을 조회함" 경보도, 덧붙인 결과에 따라 정반대 결론이 납니다.

  • 시나리오 A: 근무 시간, 마케팅 PC의 chrome.exe, 직전에 뉴스 사이트, 2년 된 광고 도메인, 다른 PC 30대도 같은 조회 → 광고 트래픽, 낮은 우선순위 종결
  • 시나리오 B: 새벽 3시, 재무 중요 PC의 Temp\update.exe, 3일 전 등록·평판 없음·TTL 60초, 응답 IP가 C2로 등록, 6시간 통신, 조회 PC 한 대뿐 → 즉시 격리

복습에서 나온 포인트: "노트북에서 nslookup 쳐보면 되잖아요"

2주 전 표적형 사건의 도메인을 직접 조회하면 문제가 셋입니다.

  1. 들킴: 질문이 공격자의 권한 서버까지 가서 우리 IP가 남음(OPSEC)
  2. 틀림: 오늘의 답이 나옴. 2주 전 IP와 다르면 방화벽 기록에서 접속이 안 보여 "안전"으로 오판
  3. 오염: 우리 DNS 기록에 "회사 PC가 악성 도메인 조회" 줄이 새로 생겨 감염 PC 판별이 헷갈림

대신: 우리 DNS 기록 → 프록시·Sysmon·EDR·방화벽 → 외부 Passive DNS 과거 기록 → (그래도 없을 때만) 비귀속 환경에서 새 조회, 결과가 "지금 답"임을 기록에 명시.

2026년 관점

  • 성숙한 보안팀은 조직과 연결되지 않는 비귀속(non-attributable) 조사 환경을 기본 설비로 둠
  • 의심 파일의 VirusTotal 업로드는 사실상 공개. "업로드 금지, 해시 검색만 허용" 규칙이 흔함
  • 예전에 많이 쓰던 조회 서비스 일부는 이름·운영이 바뀜(예: RiskIQ → Microsoft Defender Threat Intelligence)
  • [주의] DNS 기록 보존이 짧으면 1순위가 비어 2·3순위로 밀려남. 최소한 "도메인·시각·IP" 요약은 길게 보관