이전 포스트에 이어서 작성하였습니다.
[시스템 보안 및 실무/시스템 운영·구축 실무] - DNS 로그분석(현황분석/이상징후)
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...