背景讨论

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

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

  1. 阿里高级算法专家公开10大思考

    因为信任,所以简单. 简介: 35岁左右对工程师而言是个不同寻常的年龄段.技术人有可能面临人生中的转型:从纯技术岗转向管理岗.也将面临诸多新的挑战,关于组建团队.领导以及KPI设置等.本文将讲述阿里资 ...

  2. 35岁技术人如何转型做管理?阿里高级算法专家公开10大思考

    简介: 35岁左右对工程师而言是个不同寻常的年龄段.技术人有可能面临人生中的转型:从纯技术岗转向管理岗.也将面临诸多新的挑战,关于组建团队.领导以及KPI设置等.本文将讲述阿里资深技术leader张荣 ...

  3. 关于第5周反向传播算法的一些争论与思考

     关于第5周反向传播算法的一些争论与思考 第5周介绍了神经网络的反向传播算法.由于介绍得比较简要,很多地方没有讲透(众:You can you up!),后来C站论坛里有几个网友开始争论其中的公式 ...

  4. 基于TextRank算法的单领域多文本摘要(英文摘要)

    文章目录 基于TextRank算法的单领域多文本摘要 一.实现步骤 二.语料 tennis_articles_v4.csv 三.实现代码 四.实现效果 基于TextRank算法的单领域多文本摘要 一种 ...

  5. 双代号网络图基础算法_9个简单数学算法在管理领域的运用

    数学,一直被认为是一个很让人头疼的学科,好像除了专业人士外,其他人都会"谈之色变",网上有个段子道出了真相:"初二那年,我弯腰捡了一支笔,从此再没听懂过数学课" ...

  6. 诸葛越:关于算法工程师职业发展的思考

    <职业发展论坛>专栏·第01篇 整理 | 吴雪松 校对 | 王大川 来自:DataFunTalk 导读:近年来人工智能技术取得了巨大的突破,应用到工业界的场景也越来越多,吸引了大量的人才涌 ...

  7. 算法自动化测试的挑战与思考

    一.背景 从入职到现在已经有3个多月了,从最初的对于电商广告业务和算法测试的一头雾水,到现在的渐渐了解,基本上已经可以胜任项目的常规质量保障任务.然而,目前的质量保障手段依然停留在手工测试层面,自动化 ...

  8. 对未来人机融合智能领域的思考

    人类文明的演化粗略可划分为西方文明和东方文明,人类对智能领域的理解也可大致划分为东西方这两大体系.人工智能领域的发展主要是延续了西方文明的科技脉络:逻辑+实验,而作为更为抽象的人性智能领域的反映,东方 ...

  9. 嵌入式算法创业的窘境与思考

    基于国内各主流招聘网站发布的招聘岗位数据分析,5 月共计有 89 万招募中的互联网岗位,需求量与上月相比减少 50%,其中 TOP100 知名公司的职位有 27319 条,剔除销售.行政等市场与职能岗 ...

最新文章

  1. AI实时筛查癌细胞,普通显微镜简单改装就能用,谷歌新突破登上Nature子刊
  2. Java内部类简介.
  3. 8_18 比赛总结 [暑假集训]
  4. SQL-字符串运算符和函数
  5. mat-form-field must contain a MatFormFieldControl错误的解决方法
  6. 22.敏捷估计与规划——Why Agile Planning Works笔记
  7. anaconda新建环境在PyCharm执行import ssl失败
  8. libevent eventbuffer读写水位思考
  9. php之使用curl对百度orc进行文字识别(二维码识别同理)--base64编码方式(解决image format error)
  10. 不休息的工作都是浪费时间
  11. python银行利息问题_(完整版)存款利率问题应用题
  12. 那年花一个钟用PS改证件照的背景色,今天用Excel我只花了60秒!
  13. ARM汇编伪指令之word
  14. 浅谈工作中如何规避思维定式
  15. 冲击波病毒内幕点滴(2)
  16. Power长按、组合键分析
  17. android 加号弹出菜单,Android仿微信、qq点击右上角加号弹出操作框
  18. 计算机相关专业本科毕业论文撰写指南
  19. Unity3d中UGUI组件精简复盘(十七)LayoutElement组件
  20. 文件的上传和下载(超详细)

热门文章

  1. LabVIEW播放视频文件的方法与例程
  2. 花生壳动态域名详细试用方法
  3. 五人合伙最佳股份分配_多人合作如何分配利益-五人合伙开公司,利润如何分配才合理?大家好,我们五个人准备合伙开 爱问知识人...
  4. 飞控与地面站的概念和关系
  5. 微信支付(2)---测试用例
  6. java毕业生设计校园失物招领系统计算机源码+系统+mysql+调试部署+lw
  7. 点云孔洞定位_孔洞修补研究总结
  8. cocos tween
  9. 阿里架构师学习笔记,一文掌握JavaScript基础
  10. 如何使用S32DS进行Debug刷写