当前位置: 首页 > 科技观察

特征工程加密流量安全检测

时间:2023-03-17 10:53:14 科技观察

在经典的机器学习领域中,特征工程一直占据核心地位,而特征工程的好坏往往直接决定机器学习效果的成败。本文概述了我们的特征工程方法在加密恶意流量检测实践中的流程,并分析了最终使用的流量签名集。从广义上看,特征工程的实际过程一般包括四个步骤:特征提取、特征选择、特征应用和特征迭代。1.特征提取特征提取是特征工程早期的一项重要工作。如何设计要提取的候选特征集需要对恶意软件加密通信进行全面的领域知识积累。如何对提取的特征候选集进行处理,得到适合机器学习模型输入的特征,需要对数据分析和处理方法有深入的实践经验。用于初步特征提取的候选特征集分为两类:协议无关特征和协议相关特征。协议无关特征是指流量数据在传输过程中表现出的共同特征,例如数据包的大小、数据包时间间隔等。协议相关特征是指流量数据在加密传输协议层面的专有特征,例如SSL扩展和密码套件的类型。通过对SSL协议标准和恶意流量数据的深入研究,结合收集到的数据集进行逐一验证,最终得到一组覆盖面广、与恶意流量高度相关的候选特征集,进而开发了专有的特征提取系统,为后续的特征数据分析处理提供了基础支持。在提取的候选特征集的基础上,进一步对特征数据进行分析处理,对不适合直接输入的数据进行深度特征提取作为机器学习模型。例如,对于加密通信过程中可能出现的各类域名,传统的方法是提取域名的数字、字母、非字母和数字的个数作为特征。我们基于深度学习技术训练LSTM模型,直接提取其DGA域名概率值作为特征,为机器学习模型提供更有效的数据信息。随后的实验表明,这种深度提取的特征在模型中发挥了关键作用。上述DGA域名检测模型架构图如下图所示:2.特征选择特征选择是特征提取后的一项重要工作,直接决定了最终特征集的好坏。我们一共使用了四类特征选择方法:先验知识验证、降维可视化分析、启发式搜索分析和综合工程测试。前两类方法依赖于数据的统计分析,后两类方法结合分类模型。先验知识验证是指直接依靠专家先验知识来选择候选特征集。对于特征在数据集上统计结果的差异,先验知识可以直接给出本??质原因,指导特征选择。例如,SSL扩展在GREASE扩展上显示的正常/恶意流量差异不能作为保留特性,因为GREASE扩展只是浏览器为了保证协议的可扩展性而设计的特性,并不反映恶意流量的特征。降维可视化分析是指对一组初始选择的特征集进行基于无监督学习的降维处理和可视化分析,直接判断这组特征集的好坏。例如,我们使用PCA和t-SNE等降维方法对一组特征集进行降维。从降维结果的可视化分析图可以看出,聚类和区分效果明显,质量较高。降维的视觉效果如下图所示:启发式搜索分析是指从一个小的特征集开始,分批逐步加入候选特征,使用机器学习模型测试分类效果,判断batch的选择特征。在特征集数量过多而无法遍历和测试每个特征集的场景下,基于随机选择和树搜索的分析方法可以更好地平衡效率和准确性。综合工程测试是指在一组基本确定的特征集的基础上,结合机器学习模型,进一步进行综合工程测试。例如,决策树模型和随机森林模型都可以给出特征重要性的值和排序。在这两个模型上进行测试时,可以将每次测试的测试结果进行整合,剔除一些排名低、价值低的特征,进一步精简。功能集。经过以上四步特征选择方法,得到了一组比较准确的加密流量特征集。在此基础上进行特征间的相关性分析,剔除相关性高的重复特征,可通过计算相关系数、互信息等方法实现。去除重复特征虽然对模型的预测效果没有太大的提升,但其主要目的是简化特征集,降低模型的复杂度,提高预测性能。3.最终的特征集经过特征提取和特征选择,最终得到四类特征集:时空特征、握手特征、证书特征和背景特征。在这四大类的基础上又分为54个子类和1000多个特征。这些特征足够细粒度来描述每个加密会话,反映不同类型加密流量的细微差别。1.时空特征时空特征就是前面提到的协议无关特征。“时间”是指一组与时间相关的特征,如流持续时间、数据包时间间隔等。“空”是指一组与数据包大小相关的特征集,如数据包大小转移矩阵、熵等。下图是两个例子:2.握手特性握手特性是前面提到的协议相关特性之一,主要是与SSL协议相关的一组特性,它描述了客户端和服务器之间的一系列握手阶段。交通特征。例如协议版本,支持的扩展等。下图是两个例子:3.证书特征证书特征是上述协议相关特征之一,主要是与x509协议相关的一组特征,描述双方使用的数字证书的一系列特征。例如,证书链长度、用户常态性等。下图是两个例子:4.背景特征背景特征是指从背景流量中提取和选择的一类特征,如DNS、HTTP等背景流量特征。其中,DNS后台流量特征主要体现在域名特征上,HTTP后台流量特征主要体现在HTTP协议头的内容特征上。下图是一个类DNS特征的例子:4.特征迭代特征工程是一个不断迭代更新的过程。以上内容只是迭代任务之一。当基础数据类型和内容发生变化时,需要及时进行特征工程。周而复始,不断修订完善特征集,在“特征”这个关键点上不断下功夫。经过以上四个步骤,加密恶意流量检测的特征工程可以取得初步的效果。在总结了我们的实践经验后,需要强调的是,不仅要不断完善实验室数据验证和特征迭代,还需要在多数据源、多场景的现网环境中进行充分的验证和迭代。同时,我们必须关注新出现的威胁流量数据,只有对新出现的威胁流量数据进行收集和验证,才有可能获得可投入实际应用的加密恶意流量检测的机器学习模型。【本文为专栏作家“李少鹏”原创文章,转载请通过安安牛(微信公众号id:gooann-sectv)获得授权】点此查看作者更多好文