关于算法应用安全领域一些思考

背景讨论

Vern Paxson教授在2010年的时候曾发表过的一篇顶会文章中指出:由于真实场景中的网络入侵检测和其他领域任务存在本质差别,因此机器学习算法难以得到有效的应用,需解决一系列的挑战

很难想象,即使在10年后的今天,随着算力高速增长和海量数据集涌现,Vern教授提出的挑战在当前的安全研究中依然成立。

ml算法更适合基于已知数据样本进行分类,而安全领域不仅需要检测已知攻击,还需要发现未知攻击,
这可能包括入侵检测,漏洞检测,恶意行为等等

ATT&CK攻击矩阵不断补充不断完善也正说明了这一点(未知攻击不断发现,安全知识迭代较快)。

这与ml的分类功能具有本质冲突,是难以与安全结合的根本原因,即封闭世界与开放世界的区别;

安全领域与自然语言/图像领域的本质区别在于:

  • 封闭世界:封闭世界假定是当前不是已知的事物都为假的假定。
  • 开放世界:开放世界假定是当前没有陈述的事情是未知的假定。

主要挑战

入侵检测与离群点检测存在本质差别

机器学习算法的根本目的是解决分类问题,即根据已知样本识别相似数据,

在这里插入图片描述

而入侵检测则需要解决的是从网络流量中识别入侵行为,甚至是未知的攻击行为;

对于旨在发现新的攻击的异常检测而言,新的攻击是不可能获取到标签数据集的,因此只能通过学习大规模的正常流量数据来试图发现异常的入侵行为。并假设不属于正常样本特征的均为异常,这种假设称为封闭世界假定,即上文所提到的。

但这在网络世界中没有现实意义,因为非正常的流量可能是群发性网络活动和重传行为导致的网络激增,将其直接判定为异常过于武断,这当然也就不能成为ml的理想应用场景。

在这里插入图片描述

因此,作者得出结论,基于机器学习的入侵检测更适用于返现已知攻击的相似变种,但不适合发现未知的恶意攻击行为。

误判会引入极高的代价,且Fix成本极高

一些经典的ml应用对误判容忍度较高,例如推荐算法推荐失败影响并不大,可能也就是丢失了一笔潜在的生意而已。

在这里插入图片描述

而在安全场景中,误判的代价远高于其他领域,例如恶意软件家族识别中,假如将一个勒索,挖矿或者其他危害性较大的恶意样本识别为广告软件等一些危害较低的软件后,用户很可能并不去处理而导致PC宕机或造成重大经济损失。

且即使发现问题所在,fix模型只能依靠重训练,所需成本较高;

数据收集bias

收集的训练集并不足以代表底层安全问题的真实分布;

安全影响 这是一种抽样偏差,其与安全性高度相关。数据的获取带有挑战性,通常需要不同质量的多个来源,例如安卓恶意软件检测,通常是依赖合成数据或组合来自不同来源的数据,这都可能引入偏见。

建议 在许多安全应用程序中,从真实分布中采样极其困难,有时甚至不可能,因此该缺陷只能减轻无法消除。合理的策略是构建真实分布的不同估计,并单独分析每个估计。进一步的策略包括使用合成数据扩展数据集或使用迁移学习。但应避免来自不兼容来源的数据,这会造成额外的偏差。

标注样本bias

分类任务所需的标记不准确、不稳定或错误,这会影响基于学习的系统的整体性能。这种标记很难做到完美,研究人员必须考虑不确定性和噪音,以防止模型受到固有的偏见影响。

安全影响 许多相关问题,例如检测网络攻击或恶意软件家族分类,可靠标签通常没有,这就会导致鸡与蛋的问题。virustotal所提供的服务并不总是一致,并且随着时间的推移,对抗行为的变化可能会导致不同类别之间的比率,从而引入标签偏移的偏差。

建议 尽可能验证标签。例如通过手动调查误报或随机样本调查。如果无法排除嘈杂的标签,那么应该尽可能减少噪声标签对学习模型的影响,1.使用稳健的模型或损失函数 2.在学习过程中积极建模噪声标签 3.清理训练数据中的嘈杂标签。

数据窥探bias

训练模型使用实际中不可用的数据

描述 一般做法会将数据集划分为训练集和测试集,尽管拆分数据似乎非常简单,但测试数据或其他通常不可用的背景信息可能会以微妙的方式影响训练过程,从而导致数据窥探现象的发生。共包括3种类型,测试集窥探、时间线窥探、选择性窥探。测试集窥探是当测试集在最终评估之前用于实验时,如使用tfidf算法训练整个数据集的特征权重。时间线窥探则是忽略数据集中的时间相关性。选择性窥探则表示基于实践中不可用的信息清理,如基于整个数据集去除异常值。详细每种类型如下所示。

安全影响 新的攻击或技术的产生导致数据分布通常是不稳定的并且持续发生变化,因此窥探来自未来的数据集或外部数据源的数据是一个普遍存在的缺陷,这会导致结果过于乐观。

建议 在创建数据集时,应尽早拆分测试数据单独存储,直到被最终评估。此外拆分时还应考虑时间依赖性。对知名数据集的实验还应考虑来自该应用领域的最新数据。

伪相关bias(语义gap)

与该安全问题无关的工件会创建分离类的快捷模式,因此模型会学习这些工件,而非解决实际问题。

描述 伪相关是指模型学习到了与实际任务无关的相关工件,从而导致关联错误。比如网络入侵检测中,数据集的大部分攻击都是来源于某个网络区域,那么模型学习到的可能就不是攻击模式而是特定ip的范围。

安全影响 机器学习通常以黑匣子身份出现决策,这就会导致伪相关性无法识别,一旦结果被解释用于得出一般结论,那么相关性就会出现问题。

建议 为了更好的了解基于学习的系统的能力,通常建议将解释性技术应用于机器学习,这些技术从某种程度上可以揭示虚假的相关性。因此在评估学习系统时,应提前明确这个名表,并验证是否学习到了该目标的相关知识,例如恶意软件检测系统是选择恶意活动相关特征,而非其他不相关信息。

基准率谬误

目前的恶意软件检测研究论文往往对可接受的假阳性率有同样的误解。他们中的很多人假设干净文件和恶意软件文件的数量大致相等,又称平衡。但在现实中,计算机系统很少看到恶意软件,而是在大部分时间内处理干净的文件。例如,对于Windows10来说,文件夹C:/Windows包含大约50万个文件。如果我们假设只有5%的假阳性率(误报率),检测技术则会将其中25000个文件确定是恶意的。如果该技术可用的话,那么可能会隔离或删除系统中2.5w个文件,系统基本将不会正常工作,显然这也并不是个可接受的数字。

上述即黑白文件总量不对等,白文件的数量远远大于黑样本的数量,因此误报率即使1%,所造成的影响也是极大的。工业界中往往需要误报近似于0,该检测技术才可使用。

不当的威胁模型

没有考虑模型的安全性,使系统遭受各种攻击,如中毒和对抗样本等

描述 在基于学习的系统运行过程中,设计系统时应该考虑安全性问题,对抗性学习的先前工作揭示了机器学习本身在工作流程的所有阶段所引入的攻击面。

安全影响 评估对抗影响至关重要,除了传统的安全问题还应考虑与机器学习相关的攻击,例如攻击者是否可以避开仅依赖少数特征的模型,而不是设计时考虑靠安全性的适当规范化模型。不精确的解析和特征提取也可能会使攻击者隐藏恶意内容。

建议 在基于学习的安全系统中,评估系统时,应假设存在对抗攻击对手,专门攻击所提出的系统,利用搜索和利用弱点进行规避和操纵,并考虑机器学习阶段所有可能的漏洞,尽可能关注白盒攻击,对抗评估并不是一个附加组件,而是一个强制性组成部分。

挑战总结

这并非宣告了机器学习工具不适合在网络入侵检测甚至网络安全研究中使用,而是提醒、指引研究人员直面挑战、应对挑战,使机器学习工具在安全研究中更好地发挥作用。

缓解措施

问题定义

深入理解入侵检测系统的安全威胁模型

安全检测场景中盲目地使用机器学习算法难以取得预期的效果,研究人员应该提前明确预期的安全威胁模型,其中包括评估真实世界样本的整体分布情况,攻击者的攻击手段,系统误判的潜在影响,以及系统漏判(攻击逃逸)的潜在影响等;

缩小范围,聚焦安全检测系统所解决的攻击类型

为更好地使检测方法与检测任务相匹配,研究人员应首先明确并界定检测的目标攻击类型。检测目标划定得越具体,越有助于提升机器学习算法的性能,并降低出错的可能性。

例如:Kruegel 等人关于 Web 攻击检测的工作就是异常检测的范例 [5]:检测带有畸形查询参数的Web攻击。其次,研究人员在针对特定任务场景选择机器学习算法时,应该深入理解当前检测场景的目标,并理解算法表现良好的根本原因,而不是先预设使用(特定)机器学习算法,再选取某一任务场景进行应用。

数据收集

  1. 明确真实世界数据分布的前提下,尽量做到抽样的数据集拟合真实世界的样本;
  2. 数据标签的准确性,通过专家经验对训练集进行人工清洗,尽量避免错误标签对后续训练过程的影响

系统设计与评估

  1. 选取可解释的特征,如行为语义特征,opcode序列特征等,并且使用专家经验处理特征,从而避免让模型学习到伪相关的东西,出现错误的检测因果关系,比如恶意软件检测任务,样本是否具有恶意性与是否加壳相关。
  2. 降低假阳性对系统的影响,例如通过后处理(如规则匹配方法)来降低假阳性样本的数量,来快速的fix模型;

Ref

● https://mp.weixin.qq.com/s/UGFtM1Toue9B4NMdCss-OA
● https://mp.weixin.qq.com/s?__biz=MzUxMTEwOTA3OA==&mid=2247484326&idx=1&sn=2273698f7d6e55b92bb630bac02e99a7&chksm=f979f11fce0e78092c40f6162ea944153124f13a393f12372f948d8d42db5c73ad2b71bce81c&scene=178&cur_album_id=2613751058179276801#rd
● Dos and Don’ts of Machine Learning in Computer Security
● https://www.gdatasoftware.com/blog/2022/06/37445-malware-detection-is-hard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西杭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值