相当多的文章已经描述了机器学习在网络安全的应用以及保护我们免受网络攻击的能力。尽管如此,我们仍然需要仔细研究人工智能(AI)、机器学习(ML)和深度学习(DL),它们到底能不能像炒作内容所说的无所不能。
首先,我要让你失望了。我通过研究发现与图像识别或自然语言处理相比,机器学习永远不会成为网络安全的灵丹妙药,而这两个领域的机器学习应用正在蓬勃发展。因为总会有人试图找到系统或ML算法的弱点并绕过安全机制。更糟糕的是,现在黑客能够利用机器学习来完成他们邪恶想法。
幸运的是,机器学习可以帮助解决最常见的任务,包括回归,预测和分类。在数据量极大且网络安全人才短缺的时代,ML似乎又是唯一的解决方案。
本文介绍了实际应用于网络安全的ML研究的当前进展和未来方向的实用技术理解。
机器学习术语
- AI(人工智能)是一个广泛的概念。简单来说是通过技术使机器变得聪明或者换言之通过机器算法(例如视觉识别,自然语言处理等)进行人工任务。重点是AI不是机器学习或自动化的机器。它可以是安装在清洁机器人中的经典程序,如边缘检测。总的来说,AI是以某种方式执行人工任务的系统。
- ML(机器学习)是人工智能的一种方法,它是一种能够从经验中学习的系统。它不仅可以复制人类行为,而且还可以减少用于困难任务(如股票价格预测)的工作量和时间。换句话说,ML是一个可以通过使用示例而不是通过编程来识别模式的系统。如果你的系统经常学习,根据数据而不是算法做出决策,并改变其行为,那就是机器学习。
- DL(深度学习)是一套用于实现机器学习的技术,例如图像识别系统,系统主要识别对象边缘、结构、对象类型、然后识别对象本身。重点是深度学习并不完全是深度神经网络,它还有其他算法,它们被改进以学习模式模式,例如强化任务中的迁移学习。
定义表明,网络安全领域主要指机器学习(而不是AI),而且很大一部分任务与人类无关。
机器学习意味着使用基于你拥有的数据和特定方法来解决某些任务。
大多数最常见的任务,如下所述:
- 回归(或预测)-基于先前值预测下一个值的任务;
- 分类-将事物分成不同类别的任务;
- 聚类-类似于分类,但类是未知的,通过它们的相似性对事物进行分组;
- 关联规则学习(或推荐)-基于先前经验推荐某事的任务;
- 降维—是在多个示例中搜索常见和最重要特征的任务;
- 生成模型:基于先前的分布知识创建内容的任务。
对于某些任务,你只能使用一种方法,但可以有多种方法用于其他任务。
ML的趋势
过去的趋势
- 监督学习:首先,你应该标记数据,例如向模型提供可执行文件的示例,并说该文件是恶意软件。基于此标记数据,模型可以决定新数据,缺点是标记数据的限制。
- Eensemble(集成)学习: 这是监督学习的扩展,同时混合不同的简单模型来解决任务。
当前的趋势
- 无监督学习:数据驱动模式,当没有标记数据时,可以使用该方法,并且模型可以以某种方式基于属性自行标记它。通常,它旨在发现数据中的异常,因为几乎不可能标记所有数据。
- 半监督学习:顾名思义,当有一些标记数据时,半监督学习试图结合有监督和无监督方法进行学习训练。
未来的趋势
- 强化学习:当行为应该以某种方式对变化的环境做出反应时,可以使用环境驱动的方法。这就像一个通过反复试验来学习环境的孩子。
- 主动学习:它更像是强化学习的子类,可能会成长为一个单独的类型。主动学习类似于教师,除了环境变化之外,还可以帮助纠正错误和行为。
机器学习和网络安全
让我们看一下可用于解决机器学习任务的不同方法的示例,以及它们与网络安全任务的关系。
回归
回归(或预测)很简单。利用关于现有数据的知识来了解新数据。举一个房价预测的例子。在网络安全中,它可以应用于欺诈检测,通过特征(例如,可疑交易的总量,位置等)确定欺诈行为的概率。
至于回归这方面的技术,可以分为两大类:机器学习和深度学习。
机器学习&回归
以下是可用于回归任务的机器学习方法的简短列表(具有各自的优缺点)。
- 线性回归
- 多项式回归
- 岭回归
- 决策树
- SVR(支持向量回归)
- 随机森林
你可以在此处找到每种方法的详细说明 。
深度学习&回归
对于回归任务,可以使用以下深度学习模型:
- 人工神经网络(ANN)
- 递归神经网络(RNN)
- 神经图灵机(NTM)
- 可微分神经计算机(DNC)
分类
分类也很简单。想象一下,你有两堆按类型分类的图片(例如,狗和猫)。在网络安全方面,将垃圾邮件与其他邮件分开的垃圾邮件过滤器可以作为一个例子。垃圾邮件过滤器可能是应用于网络安全任务的第一种ML方法。
监督学习方法通常用于分类,其中某些组的示例是已知的,所有类都应该在开头定义。
下面是与算法相关的列表。
机器学习类
- LogisticRegression(LR)
- K-Nearest Neighbors(K-NN)
- 支持向量机(SVM)
- KernelSVM
- NaiveBayes
- DecisionTreeClassification
- 随机森林分类
SVM和随机森林这样的方法被认为是效果最好的,但是请记住,没有一个通用的规则。
深度学习类
- 人工神经网络
- 卷积神经网络
如果你有更多数据,深度学习方法会更好。但是,如果你计划在生产中使用它并定期重新训练系统,它们会消耗更多计算资源。
聚类
聚类是类似于具有唯一但有主要差异的分类方式。有关数据类的信息未知,大致意思是不知道这些数据是否可以分类。这其实是无人监督的学习。
据推测,聚类的最佳任务是取证分析。事件的原因、过程和结果都很模糊,需要对所有活动进行分类以找出异常情况。恶意软件分析(即恶意软件保护或安全电子邮件网关)的解决方案可以实现它以将法律文件与异常值分开。
可以应用聚类的另一个有趣的领域是用户行为分析。在这种情况下,应用程序用户聚集在一起,以便可以查看它们是否应属于特定组。
通常,聚类不适用于解决网络安全中的特定任务,因为它更像是管道中的子任务之一(例如,将用户分组到单独的组中以调整风险值)。
用于聚类的机器学习
- K-最近邻居(KNN)
- K-means
- Mixturemodel(LDA)
- DBSCn
- 贝叶斯
- GaussianMixtureModel
- Mean-shift
- 凝聚式层次聚类
用于聚类的深度学习
- 自组织映射(SOM)或Kohonen Networks
关联规则学习(推荐系统)
Netflix和SoundCloud根据你的电影或音乐偏好推荐电影或歌曲。在网络安全方面,这一原则主要用于事件响应。如果公司面临一系列事件并提供各种类型的响应,系统会学习特定事件的响应类型(例如,将其标记为误报、更改风险值、进行调查)。如果风险管理解决方案自动为新漏洞或基于其描述构建的错误配置分配风险值,那么它们可以带来很大的便利。
解决推荐任务的算法:
关联规则学习的机器学习
- Apriori
- Euclat
- FP-growth
关联规则学习的深度学习
- 受限玻尔兹曼机(RBM)
- 深度信念网络(DBN)
- 堆叠式自动编码器
最新的推荐系统是基于首先玻尔兹曼机及其更新版本,例如有前途的深度新年网络。
降维
降维或泛化不像分类那样受欢迎,但如果你处理具有未标记数据和许多潜在特征的复杂系统,那必须进行降维。你无法应用聚类,因为传统的方法会限制特征的数量,或者它们不起作用。降维可以帮助处理它并减少不必要的特征。与聚类一样,降维通常是更复杂模型中的任务之一。对于网络安全任务,降维是常见的面部检测解决方案。
用于降维的机器学习
- 主成分分析(PCA)
- 奇异值分解(SVD)
- T分布式邻域嵌入算法(T-SNE)
- 线性判别分析(LDA)
- 潜在语义分析(LSA)
- 因子分析(FA)
- 独立分量分析(ICA)
- 非负矩阵分解(NMF)
你可以在此处找到有关降维的更多信息(包括方法及其功能的一般说明)。
生成模型
生成模型的任务不同于上述模型,虽然这些任务涉及现有信息和相关决策,但生成模型旨在根据先前的决策模拟实际数据(而不是生成决策)。
攻击性网络安全的任务是生成输入参数列表,以测试针对注入漏洞的特定应用程序。或者是拥有适用于Web应用程序的漏洞扫描工具。其中一个模块是测试文件以进行未经授权的访问。这些测试能够改变现有的文件名以识别新的文件名。例如,生成模型很擅长更擅长,如果爬虫检测到名为login.php的文件,最好通过尝试login_1.php,login_backup.php,login.php.2017等名称来检查是否存在任何备份或测试其副本。
用于生成模型的机器学习
- 马尔可夫链
- 遗传算法
用于生成模型的深度学习
- 变分自动编码器
- 生成对抗网络(GAN)
- 玻尔兹曼机器
最近,GANs取得了令人瞩目的成绩。他们成功地模仿了一段视频,我们可以想象一下它如何用于生成模糊测试的示例。
本文由阿里云云栖社区组织翻译。
文章原标题《machine-learning-for-cybersecurity-101》
作者:Alexander Polyakov 译者:乌拉乌拉,审校:。
文章为简译,更为详细的内容,请查看原文。