网络安全与机器学习(一):网络安全中的机器学习算法

摘要: 网络安全碰见机器学习,会摩擦出怎样的火花呢?

至关多的文章已经描述了机器学习在网络安全的应用以及保护咱们免受网络攻击的能力。尽管如此,咱们仍然须要仔细研究人工智能(AI)、机器学习(ML)和深度学习(DL),它们到底能不能像炒做内容所说的无所不能。php

首先,我要让你失望了。我经过研究发现与图像识别或天然语言处理相比,机器学习永远不会成为网络安全的灵丹妙药,而这两个领域的机器学习应用正在蓬勃发展。由于总会有人试图找到系统或ML算法的弱点并绕过安全机制。更糟糕的是,如今黑客可以利用机器学习来完成他们邪恶想法。算法

幸运的是,机器学习能够帮助解决最多见的任务,包括回归,预测和分类。在数据量极大且网络安全人才短缺的时代,ML彷佛又是惟一的解决方案。编程

本文介绍了实际应用于网络安全的ML研究的当前进展和将来方向的实用技术理解。安全

机器学习术语

  1. AI(人工智能)是一个普遍的概念。简单来讲是经过技术使机器变得聪明或者换言之经过机器算法(例如视觉识别,天然语言处理等)进行人工任务。重点是AI不是机器学习或自动化的机器。它能够是安装在清洁机器人中的经典程序,如边缘检测。总的来讲,AI是以某种方式执行人工任务的系统。
  2. ML(机器学习)是人工智能的一种方法,它是一种可以从经验中学习的系统。它不只能够复制人类行为,并且还能够减小用于困难任务(如股票价格预测)的工做量和时间。换句话说,ML是一个能够经过使用示例而不是经过编程来识别模式的系统。若是你的系统常常学习,根据数据而不是算法作出决策,并改变其行为,那就是机器学习。
  3. DL(深度学习)是一套用于实现机器学习的技术,例如图像识别系统,系统主要识别对象边缘、结构、对象类型、而后识别对象自己。重点是深度学习并不彻底是深度神经网络,它还有其余算法,它们被改进以学习模式模式,例如强化任务中的迁移学习。

定义代表,网络安全领域主要指机器学习(而不是AI),并且很大一部分任务与人类无关。网络

机器学习意味着使用基于你拥有的数据和特定方法来解决某些任务。机器学习

大多数最多见的任务,以下所述:分布式

  1. 回归(或预测)-基于先前值预测下一个值的任务;
  2. 分类-将事物分红不一样类别的任务;
  3. 聚类-相似于分类,但类是未知的,经过它们的类似性对事物进行分组;
  4. 关联规则学习(或推荐)-基于先前经验推荐某事的任务;
  5. 降维—是在多个示例中搜索常见和最重要特征的任务;
  6. 生成模型:基于先前的分布知识建立内容的任务。

对于某些任务,你只能使用一种方法,但能够有多种方法用于其余任务。工具

ML的趋势

过去的趋势
  1. 监督学习:首先,你应该标记数据,例如向模型提供可执行文件的示例,并说该文件是恶意软件。基于此标记数据,模型能够决定新数据,缺点是标记数据的限制。
  2. Eensemble(集成)学习:这是监督学习的扩展,同时混合不一样的简单模型来解决任务。
当前的趋势
  1. 无监督学习:数据驱动模式,当没有标记数据时,可使用该方法,而且模型能够以某种方式基于属性自行标记它。一般,它旨在发现数据中的异常,由于几乎不可能标记全部数据。
  2. 半监督学习:顾名思义,当有一些标记数据时,半监督学习试图结合有监督和无监督方法进行学习训练。
将来的趋势
  1. 强化学习:当行为应该以某种方式对变化的环境作出反应时,可使用环境驱动的方法。这就像一个经过反复试验来学习环境的孩子。
  2. 主动学习:它更像是强化学习的子类,可能会成长为一个单独的类型。主动学习相似于教师,除了环境变化以外,还能够帮助纠正错误和行为。

机器学习和网络安全

让咱们看一下可用于解决机器学习任务的不一样方法的示例,以及它们与网络安全任务的关系。学习

回归

回归(或预测)很简单。利用关于现有数据的知识来了解新数据。举一个房价预测的例子。在网络安全中,它能够应用于欺诈检测,经过特征(例如,可疑交易的总量,位置等)肯定欺诈行为的几率。测试

至于回归这方面的技术,能够分为两大类:机器学习和深度学习。

机器学习&回归

如下是可用于回归任务的机器学习方法的简短列表(具备各自的优缺点)。

  1. 线性回归
  2. 多项式回归
  3. 岭回归
  4. 决策树
  5. SVR(支持向量回归)
  6. 随机森林

你能够在此处找到每种方法的详细说明  。

深度学习&回归

对于回归任务,可使用如下深度学习模型:

  1. 人工神经网络(ANN)
  2. 递归神经网络(RNN)
  3. 神经图灵机(NTM)
  4. 可微分神经计算机(DNC)
分类

分类也很简单。想象一下,你有两堆按类型分类的图片(例如,狗和猫)。在网络安全方面,将垃圾邮件与其余邮件分开的垃圾邮件过滤器能够做为一个例子。垃圾邮件过滤器多是应用于网络安全任务的第一种ML方法。

监督学习方法通​​经常使用于分类,其中某些组的示例是已知的,全部类都应该在开头定义。

下面是与算法相关的列表。

机器学习类

  1. LogisticRegression(LR)
  2. K-Nearest Neighbors(K-NN)
  3. 支持向量机(SVM)
  4. KernelSVM
  5. NaiveBayes
  6. DecisionTreeClassification
  7. 随机森林分类

SVM和随机森林这样的方法被认为是效果最好的,可是请记住,没有一个通用的规则。

深度学习类

  1. 人工神经网络
  2. 卷积神经网络

若是你有更多数据,深度学习方法会更好。可是,若是你计划在生产中使用它并按期从新训练系统,它们会消耗更多计算资源。

聚类

聚类是相似于具备惟一但有主要差别的分类方式。有关数据类的信息未知,大体意思是不知道这些数据是否能够分类。这实际上是无人监督的学习。

据推测,聚类的最佳任务是取证分析。事件的缘由、过程和结果都很模糊,须要对全部活动进行分类以找出异常状况。恶意软件分析(即恶意软件保护安全电子邮件网关)的解决方案能够实现它以将法律文件与异常值分开。

能够应用聚类的另外一个有趣的领域是用户行为分析。在这种状况下,应用程序用户汇集在一块儿,以即可以查看它们是否应属于特定组。

一般,聚类不适用于解决网络安全中的特定任务,由于它更像是管道中的子任务之一(例如,将用户分组到单独的组中以调整风险值)。

用于聚类的机器学习

  1. K-最近邻居(KNN)
  2. K-means
  3. Mixturemodel(LDA)
  4. DBSCn
  5. 贝叶斯
  6. GaussianMixtureModel
  7. Mean-shift
  8. 凝聚式层次聚类

用于聚类的深度学习

  • 自组织映射(SOM)或Kohonen Networks

关联规则学习(推荐系统)

Netflix和SoundCloud根据你的电影或音乐偏好推荐电影或歌曲。在网络安全方面,这一原则主要用于事件响应。若是公司面临一系列事件并提供各类类型的响应,系统会学习特定事件的响应类型(例如,将其标记为误报、更改风险值、进行调查)。若是风险管理解决方案自动为新漏洞或基于其描述构建的错误配置分配风险值,那么它们能够带来很大的便利。

解决推荐任务的算法:

关联规则学习的机器学习

  1. Apriori
  2. Euclat
  3. FP-growth

关联规则学习的深度学习

  1. 受限玻尔兹曼机(RBM)
  2. 深度信念网络(DBN)
  3. 堆叠式自动编码器

最新的推荐系统是基于首先玻尔兹曼机及其更新版本,例若有前途的深度新年网络。

降维

降维或泛化不像分类那样受欢迎,但若是你处理具备未标记数据和许多潜在特征的复杂系统,那必须进行降维。你没法应用聚类,由于传统的方法会限制特征的数量,或者它们不起做用。降维能够帮助处理它并减小没必要要的特征。与聚类同样,降维一般是更复杂模型中的任务之一。对于网络安全任务,降维是常见的面部检测解决方案。

用于降维的机器学习

  1. 主成分分析(PCA)
  2. 奇异值分解(SVD)
  3. T分布式邻域嵌入算法(T-SNE)
  4. 线性判别分析(LDA)
  5. 潜在语义分析(LSA)
  6. 因子分析(FA)
  7. 独立份量分析(ICA)
  8. 非负矩阵分解(NMF)

你能够在此处找到有关降维的更多信息(包括方法及其功能的通常说明)。

生成模型

生成模型的任务不一样于上述模型,虽然这些任务涉及现有信息和相关决策,但生成模型旨在根据先前的决策模拟实际数据(而不是生成决策)。

攻击性网络安全的任务是生成输入参数列表,以测试针对注入漏洞的特定应用程序。或者是拥有适用于Web应用程序的漏洞扫描工具。其中一个模块是测试文件以进行未经受权的访问。这些测试可以改变现有的文件名以识别新的文件名。例如,生成模型很擅长更擅长,若是爬虫检测到名为login.php的文件,最好经过尝试login_1.php,login_backup.php,login.php.2017等名称来检查是否存在任何备份或测试其副本。

用于生成模型的机器学习

  1. 马尔可夫链
  2. 遗传算法

用于生成模型的深度学习

  1. 变分自动编码器
  2. 生成对抗网络(GAN)
  3. 玻尔兹曼机器

最近,GANs取得了使人瞩目的成绩。他们成功地模仿了一段视频,咱们能够想象一下它如何用于生成模糊测试的示例。



本文做者:【方向】

阅读原文

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索