假设从一个公司内部的 443 端口获取流量并筛选出可疑的 DoH 流量,希望能防止恶意软件通过 DoH 连接主机传输数据,目前在讨论这个策略是否有可行性。

动机

明文传输 DNS 请求可以尝试直接检测恶意流量,而 DoH 可以把请求加密后混淆在 HTTPS 流量中,应该也存在攻击者利用这个加密进行特定传输,但是转了一圈好像国内并没有厂商的对应安全防御产品?

过程

于是我就开始找相关的论文学习,分析了一个公开的 DoH 数据集,从 pcap 开始处理,整理出 flow 信息后进行特征提取,目前在验证集上判断 is_doh 这个标签已经达到了较高的准确率,但是遇到了两个问题。

面临的问题

第一个就是如何在实际的本地数据上进行验证呢,直接把模型应用到本地数据上,有很多预测为 DoH 的流量,但是没有办法实际检验是否准确。

论文中的数据集是根据 DSP_IP 是否是公开的 DoH 服务商名单来标注的,但是这个名单有很多遗漏,而且实际中攻击者可能并不会用这些公开的 DoH 服务商,我想通过本地获取所有的 HTTPS 的请求内容来判断是否在使用 DoH 请求 DNS ,pcap 中加密的 HTTPS 请求数据有条件解密成明文吗,实际涉及的设备众多,如果这个思路可行的话想先通过一两台进行数据模拟,判断已有模型的准确性,再进行调整和训练。

另一个思路是抓包的 pcap 文件中有没有其他的有用信息啊,小弟第一次接触 pcap 格式,把预处理工具编译成能提取特征的 csv 然后移植就花了半个月的时间,再从头解密 HTTPS 想必也有难度,如果有其他的方法,我也想去尝试。

以下是提取的 flow 特征和用于分类的特征

还有一个思路就是训练时不单单检测 DoH 流量,而是直接针对DoH 中的恶意流量学习,但这个不仅仅存在第一个训练后在实际场景准确率检验的问题,而且恶意流量的特征可能并不总一致的,而且不确定是否存在这类公开数据集。

最后的一个问题,就是各位觉得这项技术的可行性如何啊?我其实觉得这个 idea 很好,也有存在的价值,但是想到 DoH 和 HTTPS 本身就是为了加密而产生的,想要解密肯定不容易,我只在本科的计算机网络里面浅显的了解过 TCP/IP 什么的,并没有实际抓包处理的经验,感觉还是有较大困难的。

感谢各位,请不吝赐教!