百科问答小站 logo
百科问答小站 font logo



谈谈机器学习在网络安全领域的局限性,以及是否乐观? 第1页

  

user avatar   zhu-wang-xiao-miao-o 网友的相关建议: 
      

前言

最近,在一篇2020年文章(Dos and Don'ts of Machine Learning in Computer Security)中读到了机器学习在网络安全领域的局限性,或者说注意事项,这里来简单总结一下。

实际上,在尝试使用机器学习解决某些网络安全问题时,例如题目描述中谈到的恶意样本识别,网络恶意流量识别,风控安全、渗透测试、二进制代码分析等时,机器学习有时确实不是那么的尽如人意。

为什么会不尽人意呢?是什么导致了这些问题?

这篇文章里,对过去10年的安全顶会[1]中的30篇Paper做了调查,证实了一些普遍性的问题,其可能导致一系列的性能和解释性问题,进而影响我们对于安全问题的理解。

文章首先将ML解决安全问题的流程划分为六大步骤

掐头去尾,主要的问题出现在中间的四步中:

  • Data collection and labeling,数据收集与标注
  • System design and learning,系统设计与学习过程
  • Performance evaluation,表现评估
  • Deployment and operation,实际部署与操作

一、Data collection and labeling,数据收集与标注

P1 – Sampling bias,样本偏差

这个问题在于,如果收集的数据不足代表底层安全问题的真实数据分布,如果没有有效地表示输入空间甚至遵循相似分布,则无法从训练数据中汲取任何有意义的结论。

安全问题的一大难点在于数据的获取特别具有挑战性,而且通常需要使用不同质量的多个来源,因此会导致严重的样本偏差问题。

P2 – Label Inaccuracy,不准确的标签

分类任务需要的人工标注标签是不准确的,不稳定的,或错误的,严重影响了基于学习的系统的整体性能。对于许多相关的安全问题,例如检测网络攻击或恶意软件,通常无法获得正确的标签,从而导致了先有鸡还是先有蛋的问题。

二、System design and learning,系统设计与学习过程

一旦收集到足够的数据,就可以训练基于学习的安全系统。 这个过程包括从数据预处理到提取有意义的特征和构建有效的学习模型。 在这些步骤中的每一步都可能引入缺陷或偏差。

P3 – Data Snooping,数据泄露

机器学习通常的做法是在生成学习模型之前,将收集的数据拆分为单独的训练和测试集。

尽管拆分数据看起来很简单,但测试数据(或其ta通常不可用的背景信息)会以许多微妙的方式影响训练过程,从而导致数据泄露。常见的泄露类型有如:训练集、时间顺序、选择性规则导致数据泄露。这会导致模型实际部署和在测试集上的表现差异较大。

训练集泄露指的是可能在训练时混入了测试集的信息导致性能异常,这包括确定有用特征、参数和学习算法的准备工作。

感兴趣可以读读下面这篇回答:

时间顺序指的是在训练时忽视了数据内部的时间特征,例如针对恶意软件数据集进行k-folds验证时,训练集中可能包括每个恶意软件家族的样本,但是对于老的软件家族来说,属于新家族的恶意软件相关数据应是未知的,因此不应该将未来的知识整合进来进行训练。如果忽略数据内的时间相关性,则会发生时间侦听。 这是一个常见的陷阱,因为许多与安全相关的问题的底层分布都在不断变化。

选择性泄露指的是在训练前将一些数据通过规则过滤掉,这种做法基于实践中不可用信息的数据清理。 一个例子是基于完整数据集(即训练和测试)的统计数据去除异常值,这些数据通常在训练时不可用。

更详细的划分见下图:

P4 – False Causality,错误的因果推理

安全任务时常会使用具有不可解释的特征空间来构建复杂学习模型,从而导致产生了错误的因果关系

例如下面这个:


考虑一个网络入侵检测系统的例子,其中数据集中的大部分攻击将会来自某个网络区域,因此该模型可能会学习检测特定的 IP 范围,而不是一般的攻击模式。

同样,检测系统可能会从与恶意活动无关的合成攻击中提取工件。

P5 – Biased Parameter Selection,参数选择的偏差

机器学习方法的最终参数在训练时并不完全固定,而是间接依赖于测试集。

在整个学习过程中,通过改变超参数来生成不同的模型是常见的做法,一般会选取在测试集上性能最好的模型。虽然这种设置看起来很合理,但它仍然存在偏见。例如,使用未校准的评价指标/标准或使用测试集指导参数设定可能会产生误导性的结果,进而导致在实际环境下的差异性,这被称为是参数选择的偏差。

三、Performance evaluation,表现评估

P6 – Inappropriate Baseline,不适当的基线方法

评估是在不使用或使用有限的基线方法的情况下进行的,因此,无法证明对现有技术和其他安全机制的改进。

首先,科学进步的核心在于能够证明一种新方法在给定的利益衡量标准下优于现有技术。在选择基线时,尽管在其他领域取得了巨大的进步,但在机器学习中,没有一种通用的算法可以超越所有其它的方法。因此,只能为所提出的方法提供结果,或者仅将其与密切相关的方法进行比较,而没有提供足够的背景来评估其影响。

其次,过于复杂的学习方法不仅会增加过拟合的可能性,还会增加运行时开销、攻击面以及部署时间和成本。有时,简单分类器在漏洞和网络入侵检测等任务方面也可能优于最先进的深度学习模型。

最后,机器学习不一定能够用来解决某些安全问题,或者不一定是解决某些安全问题的唯一方法以及最合适的方法。

P7 – Inappropriate Performance Measures,不适当的评估指标

性能测量不考虑应用场景的约束,例如不平衡的数据或保持低假阳性率的需要。但在实际场景的部署中,需要考虑许多复杂的因素。

就安全而言,这类问题最常见的在于实际场景中恶意样本的极少量,导致了严重的数据不平衡问题,使得模型实际检测性能大大降低。例如下图,仅从ROC曲线来看,模型性能表现出色,但精度问题却暴露了分类器的真实水平。

关于这一类问题可以了解下小样本学习的内容:

P8 – Base Rate Fallacy,基准比例错误

在解释性能度量时忽略了大的类数量的不平衡,从而导致对性能的过高估计。例如,99%的真阳性和1%的假阳性情况下,如果我们考虑1:100的分类比率,这实际上相当于每99个真阳性对应100个假阳性。

还有个有趣的例子来自 @桔了个仔 ,详见回答:

四、Deployment and operation,实际部署与操作

P9 – Lab-Only Evaluation,仅在实验室做出评估

以学习为基础的系统仅在实验室环境中进行评估,而不讨论其实际局限性。

许多基于学习的系统的不安全性仅在实验室环境中进行评估,夸大了它们的实际影响。一个常见的例子是仅在多样性有限且不考虑非平稳性的封闭环境中评估检测方法。

例如,大量的网站指纹攻击仅在封闭的环境下进行评估,时间跨度有限。同样,大多数基于学习的恶意软件检测系统在现实环境中也没有得到充分的检验。

P10 – Inappropriate Threat Model,不恰当的威胁模型

没有考虑机器学习的安全性,使系统暴露于各种攻击,如中毒和逃避攻击。

对抗性学习的先前工作已经揭示了,机器学习本身在工作流程的所有阶段引入的相当大的攻击面。例如,成员推理攻击(membership inference attacks)破坏了模型的隐私,允许攻击者通过利用深度神经网络中的过度拟合来泄露训练示例的信息;预处理攻击(preprocessing attacks)针对特征提取步骤向系统注入任意输入,从而影响之后的步骤;中毒和后门攻击篡改数据以修改模型的行为;模型窃取允许近似模型,泄漏知识产权并加速进一步攻击;最后,还有对抗样本攻击,允许对手控制最终预测的输入。

五、建议与改进

一、Data collection and labeling,数据收集与标注

  • 尽量以真实环境中的比例来收集样本,如果实在无法贴合真实环境情况,应对真实的数据分布情况做出多种假设,并分别进行实验
  • 使用迁移学习方法弥补在一个领域内难以采集足够数据的问题
  • 谨慎地对待公开的数据集,应将其主要用于和过去方法的对比
  • 尽可能地验证标签的真实性
  • 不能简单地去除标签不确定的数据,应想办法进行处理;预防数据随时间变化而带来的标签偏移

二、System design and learning,系统设计与学习过程

  • 使用可解释的机器学习技术以检查模型是否依赖于错误的因果关系
  • 从最开始就严格区分训练集、验证集、测试集,防止测试集在任何阶段干预到系统的构建

三、Performance evaluation,表现评估

  • 选择的评价指标应有助于从业人员在部署期间评估安全系统的性能
  • 安全问题通常是围绕检测罕见事件展开,可以选择不受类不平衡影响的指标,如精确召回曲线
  • 在选择基线对比方法时,需要考虑简单的机器学习模型(如线性分类器、朴素贝叶斯等)和非机器学习模型

四、Deployment and operation,实际部署与操作

  • 应将系统部署于真实环境下观察在实验室环境下观察不到的问题,分析真实数据的复杂性与多样性以对系统进行调整
  • 应假设基于机器学习的系统将面临对抗性的考验,考虑机器学习各个搭建步骤中可能存在漏洞;
  • 假设遭到白盒攻击这种最差的情况来做预案,搭建系统时遵守Kerckhoff原则(密码体制应该对外公开,仅需对密钥进行保密;如果一个密码系统需要保密的越多,可能的弱点也越多)

最后

因为写这篇回答久了,就有点太过无聊了

所以,我扔了很多好康的图片上去

打扰阅读的话

我很抱歉

最后——再来一张

参考

  1. ^ CCS(ACM Conference on Computer and Communications Security)、NDSS(Network and Distributed System Security Symposium)、Oakland S&P(IEEE Symposium on Security & Privacy)、USENIX Security(USENIX Security Symposium)



  

相关话题

  如何评价Google Duplex(打电话AI)在特定领域已经通过了图灵测试? 
  李飞飞为何卸任 Google 首席 AI 科学家? 
  能否使用区块链的算力来解决深度学习训练? 
  谈谈机器学习在网络安全领域的局限性,以及是否乐观? 
  如何看待大疆员工猝死? 
  如何理解今年发表在JMLR上随机森林算法SPORF? 
  无人驾驶多久可以在同场竞技中超越F1赛车手? 
  有哪些被骇客攻击的趣事? 
  为什么我用相同的模型,数据,超参,随机种子,在两台服务器会得到不同的结果? 
  你的电脑被黑客黑过吗? 

前一个讨论
国家互联网应急中心称部分 APT 组织网络攻击工具长期潜伏我国,意味着什么?
下一个讨论
如何自己设计元素周期表?





© 2024-05-16 - tinynew.org. All Rights Reserved.
© 2024-05-16 - tinynew.org. 保留所有权利