Countering Malicious Processes with Process-DNS Association.

2019-03-26 107 Words 论文 D n s

Countering Malicious Processes with Process-DNS Association.

Suphannee Sivakorn, Kangkook Jee, Yixin Sun, Lauri Korts-Pa¨r, Zhichun Li, Cristian Lumezanu, Zhenyu Wu, Lu-An Tang, Ding Li.

Ndss 2019

这篇论文主要讲了如何在企业服务器上设置 DNS 监控器来监控所有进程级别的DNS查询,通过地理位置、IP、查询时间、whois 等信息来辨别恶意进程。文章中实现了 PDNS 的模型来监控进程 DNS 查询,而后由机器学习网络和传统方式结合来标示恶意进程,实现了较高的准确率和较低的假阳性和假阴性率。 可能有一个问题在于其中获取了所有 DNS 查询的domain 、 频率、IP 等信息,并发送给服务器,可能导致隐私的泄露。这里是一个可以改进的地方。

Background

  1. 传统基于 dns 的查询只能区分到机器级别存在有风险的dns查询
  2. 目前大量恶意进程使用类似 twitter, github 等正常网站的服务来隐藏其恶意性,给传统 dns 检测机制带来挑战。

Archtecture

PDNS 通过多种路径获取 Hosts 上的 DNS 查询记录。

  1. 客户机上 dns 查询情况及其他信息(IP 、domain、location 以及进程名、加载的动态链接库、查询频率、主机名、软件发布者签名及证书等信息)
  2. 网络上对于 DNS 链路的捕捉
  3. Dns 服务器上的查询情况(记录的创建时间、生存时间、TTL、nameserver、域名、IP和域名的位置信息、whois信息等)

这些数据发送给 PDNS 服务器用于训练模型和预测。

/images/pdns1.png

文中大篇幅介绍了这些特征是如何用于鉴别恶意和善意的进程,例如:

  1. 恶意程序的dns记录通常具有较短的创建时间和存活周期。(浏览器程序例外)
  2. 恶意程序的dns查询通常其域名注册者的数量较少。IP地址较少。
  3. 恶意程序通常没有签名或只有自签名(未验证)
  4. 恶意程序和正常程序的dns解析失败率有区别。
  5. 在GUI、CLI和非交互的进程中,善意进程和恶意进程的dns查询频率特征有差异:浏览器倾向于稳定持续的dns查询。

等等。

通过这些信息,可以通过机器学习的方式来训练分类器,提供检测和预警功能。论文使用了多种模型来训练分类器,包括:

  1. Random Forrest
  2. Logistic Regression
  3. K-Nearest Neighbors
  4. Support Vector Classification
  5. Deep Neural Networks

Dataset

文中使用了真实环境中的数据作为良性进程样本,2015 malware datasets 和 2017 malware 作为恶意进程样本。

conculsion

随机森林方法可以有非常高的准确率和非常低的假阳性和假阴性水平(即便是上述训练集还是使用未经训练的 2018 malware datasets都是如此)。错误率主要来自 powershell 等命令行终端和浏览器软件等。

缺陷

该方案获取了大量用户数据,很大可能泄漏隐私。