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단계¶
- 쪼갠다(파싱): 원본 기록 → 칸(필드). "기록이 들어온다"와 "필요한 칸이 다 있다"는 다름(TTL, 결과 코드 누락 주의)
- 덧붙인다(보강): 각 칸에 추가 질문 → PC 이름·부서·중요도, 사용자, 평판, 등록일, ASN, 프로세스 등. 시간 기준은 "지금"이 아니라 "사건 당시"(DHCP 확인)
- 판단한다: 강한 신호 하나(위협 정보 정확 일치) = 거의 확정 / 약한 신호 여러 개(신규 등록, 무료 TLD, 짧은 TTL, 평판 없음, 새벽, Temp 폴더 프로세스)가 겹치면 강한 의심
- 활용한다: 더 정확하고 빠른 판정. 사람이 손으로 하지 않고 시스템이 자동으로 붙이게 설계
덧붙이기(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주 전 표적형 사건의 도메인을 직접 조회하면 문제가 셋입니다.
- 들킴: 질문이 공격자의 권한 서버까지 가서 우리 IP가 남음(OPSEC)
- 틀림: 오늘의 답이 나옴. 2주 전 IP와 다르면 방화벽 기록에서 접속이 안 보여 "안전"으로 오판
- 오염: 우리 DNS 기록에 "회사 PC가 악성 도메인 조회" 줄이 새로 생겨 감염 PC 판별이 헷갈림
대신: 우리 DNS 기록 → 프록시·Sysmon·EDR·방화벽 → 외부 Passive DNS 과거 기록 → (그래도 없을 때만) 비귀속 환경에서 새 조회, 결과가 "지금 답"임을 기록에 명시.
2026년 관점
- 성숙한 보안팀은 조직과 연결되지 않는 비귀속(non-attributable) 조사 환경을 기본 설비로 둠
- 의심 파일의 VirusTotal 업로드는 사실상 공개. "업로드 금지, 해시 검색만 허용" 규칙이 흔함
- 예전에 많이 쓰던 조회 서비스 일부는 이름·운영이 바뀜(예: RiskIQ → Microsoft Defender Threat Intelligence)
- [주의] DNS 기록 보존이 짧으면 1순위가 비어 2·3순위로 밀려남. 최소한 "도메인·시각·IP" 요약은 길게 보관