DNS 이상징후 분석

이전 포스트에 이어서 작성하였습니다.

[시스템 보안 및 실무/시스템 운영·구축 실무] - DNS 로그분석(현황분석/이상징후)

 

DNS 로그분석(현황분석/이상징후)

현황분석 - 현재 발생하는 상황을 파악하는 작업 - 우리망에서 이런 일이 있었구나 - 무조건 문제가 있는 것은 아님 - 우리 직원들은 어느 사이트에 많이 접속하는구나를 파악 이상징후 - 평균적

psjin230.tistory.com


DNS 이상징후 분석

1. 비정상적인 서브 도메인 길이

2. 비허가 DNS 사용/DNS 터널링

 

1. 비정상적인 서브 도메인 길이

● 한국인터넷진흥원의 도메인 관리 원칙 : 도메인명 2~63자 구성

● 서브도메인은 도메인 소유자가 생성

● 비정상적인 도메인 길이는 주로 서브도메인을 의미

● 클라우드서비스(CDN, Contents Delivey Network) 도메인 : 도메인 포워딩 기술을 이용하므로 서브 도메인이 길어질 수 있음(정상적)

=> 가상화 환경에서는 기기번호와 같은 것들을 부착하다보니 서브도메인이 길어질 수밖에 없음

 

(1) 비정상적인 서브 도메인 길이

index=dnslog sourcetype=dnslog domain!="-" 
| where NOT cidrmatch(domain, "0.0.0.0/0") 
| eval list="Mozilla"
| `ut_parse(domain,list)`
| where NOT match(domain,"(microsoft.com|akamaized.net| amazonaws.com)$") 
| eval sub_len=len(ut_subdomain) 
| search sub_len > 20 
| table ut_domain, ut_subdomain, sub_len

=> where은 참일 때만 아래줄을 실행하라는 의미 "0.0.0.0/0"이 domain 대역에 포함되지 않는 것 검색

     domain명이 IP로 나왔다는 것은 PTR record 라는 것(역방향주소 제외하겠어)

     domain명이 문자인 것만 검색

=> mozilla 양식에 맞춰서 파싱

=> $ 앞의 문자로 끝나는 것은 제외

즉, microsoft.com이나 akamaized.net이나 amazonaws.com(클라우드서비스/가상화를 지원해주는 사이트들)은 검색대상에서 제외. 이 주소들이 긴 것은 정상적이므로 비정상적인 도메인을 찾기 위해 제외

ex) aaaa.bbbb.cccc.dddd.microsoft.com (정상) aaaa.bbbb.cccc.dddd.test.com (비정상)

=> 도메인 길이를 추출하여 sub_len에 저장

=> sub_len의 길이가 20자가 넘어가면 비정상이므로 이런 것들을 검색

=> 공격자들은 자신의 도메인명을 숨기기위해서 난독화를 시킴.(sub_len의 길이가 길어진다는 것은 난독화를 추측)

 

2. 비허가 DNS 사용/DNS 터널링

● 직접공격보다는 비정상적인 네트워크 탐지가 목적

● 호스트가 내부망에서 지정한 DNS 서버가 아닌 임의의 DNS 서버에 질의를 전송하는 증상

=> 인트라넷 존에서 사내 PC는 사내 DNS서버를 사용하는 것을 권고

=> DNS 서버를 공격하는 경우가 있음

=> 공격자가 위조 DNS서버를 만드는 경우가 있는데, 그곳을 사용하는 경우 이상한 악성코드에 감염되어 있는 PC일 수도 있음

● DNS 싱크홀과 같은 보안 기법 적용

- DNS 싱크홀 : DNS 서버에 악성 도메인을 등록해서 접속 차단

 

(1) 비허가 DNS 사용

index=dnslog sourcetype=dnslog (dst!="172.16.142.11" AND dst!="172.16.142.12") (src!="172.16.142.11" AND src!="172.16.142.12") 
| stats count by dst 
| sort - count

=> 첫번째 줄은 우리 회사의 DNS 서버 주소라고 볼 수 있음. 이곳을 제외한 것을 검색하고자 함.

=> DNS 서버 주소 : 172.16.142.11 또는 172.16.142.12

=> 송수신지가 내부(회사) DNS 서버가 아닌 것을 추출

=> 내부망 호스트는 DNS 조회를 위해 반드시 지정한 DNS 서버에 접속해야 함.

=> DNS 질의 패킷의 목적지는 반드시 내부망에서 지정한 DNS 서버여야 함

=> 출발지가 내부 지정 DNS 서버가 아니고 도메인 질의 대상이 내부망 호스트인 경우 비정상 접속을 시도한 것으로 판별

=> KT, google, LG 등을 제외한 사설 DNS 서버를 사용하는 것은 문제가 됨

=> 8.8.8.8 또는 8.8.8.4 : google

=> 168.126.63.1 : KT

=> 164.124.101.2 : LG

=> etc...