보안솔루션이나 기타 보안 관련 문서를 검색하다 보면 Passive DNS 라는 용어를 자주 접할 수 있는데 간략하게 그 내용을 확인해보고자 포스팅 합니다.

간단히 말하면 Passive DNS는 특정도메인 (malwares.com) 이 DNS쿼리를 통해서 IP룩업된 히스토리를 모두 기록하는 것을 말합니다. 예를 들어 내부사용자가 rsec.kr 을 쿼리 할 경우, A레코드에 포함된 IP를 포함하여 AAAA 레코드 (IPv6), MX 레코드 (mail), NS (nameserver) 및 TXT ( 텍스트) 쿼리 또한 룩업된 시간과 함께 모두 수집하는 것을 말합니다. DNS 쿼리가 이루어진 시간 (TimeFrame) 과 함께 말이죠.

2019년 6월 13일 PM 8시에 rsec.kr 을 DNS 쿼리하여 룩업 한다면 rsec.kr 의 A 레코드인 13.124.97.171 이 쿼리된 내역을 기록하고 나아가 2019년 7월 1일에 rsec.kr 의 A레코드 값이 1.1.1.1 로 쿼리된다면 이 내용 또한 시간정보 (TimeFrame) 과 함께 기록하여 방대한 DNS쿼리 데이터베이스를 만드는 것을 Passive DNS 라고 이해하시면 됩니다. 

아시다시피 멀웨어나 해킹공격의 캠페인은 특정시간 동안 이루어지게 되며, 이 시간동안 공격자는 피해자의 자원을 장악하기 위해  드롭퍼 (Dropper) 를 통해서 더 의미있는 멀웨어 또는 RAT툴을 다운로드 받게 되는데, 이 때 멀웨어를 제공하고 있는 서버의 IP 등의 정보는 멀웨어 분석시 상당히 의미 있는 정보로 활용 될 수 있습니다. 하지만 DNS쿼리 자체가 휘발성 정보이고 기록이 남지 않는 특성을 가지고 있기 때문에 멀웨어 분석에 활용 할 수 없었죠.

이를 해결하기 위하여 Passive DNS 를 이용하여 모두 기록하기 시작하였고 이를 멀웨어 분석에 활용하여 사용하고 있습니다. 또한 많은 보안업체 또는 방화벽 등에서 Passive DNS에 대한 정보를 자사의 Malware 분석 DB에 업데이트 하고 자신들이 멀웨어를 분석하고 캠페인을 찾아가는데 활용하기 위하여 수집하고 있습니다.

참고로 팔로알토네트웍스 방화벽 (Paloalto Networks Firewall) 에서 수집하는 Passive DNS 정보는 아래와 같습니다.

  • DNS 응답 비트가 설정된 내용 (DNS response bit is set)
  • DNS 쿼리 불완전 비트가 설정되지 않은 내용 (DNS truncated bit is not set)
  • DNS Recursive 비트가 설정되지 않은 내용 (DNS recursive bit is not set)
  • DNS 응답 코드가 0 또는 3 일 때 (DNS response code is 0 or 3 (NX))
  • DNS 질의 카운터가 0보다 클 때 (DNS question count bigger than 0)
  • DNS 응답의 RR 카운터가 0보다 크거나 RR카운터가 0이면서 flags 가 3일 때 (DNS Answer RR count is bigger than 0 or if it is 0, the flags need to be 3 (NX))
  • DNS쿼리 레코드 타입이 A, NS, CNAME, AAAA, MX 일 때 (DNS query record type are A, NS, CNAME, AAAA, MX)

Passive DNS에 대한 수집 정보는 바이러스 토탈 등에서 제공하고 있습니다. 제공되는 정보는 아래의 캡쳐화면과 같이 다양합니다. 

Passive DNS 정보를 제공하는 서비스는 아래와 같습니다.

  • 바이러스 토탈 (https://www.virustotal.com/gui/home/search)
  • DNSDB (https://www.dnsdb.info)
  • PassiveTotal 

등이 있습니다.

이렇게 Passive DNS가 무엇을 말하는지 간단하게 알아보았습니다. 감사합니다.

There are currently no comments.