网络安全与机器学习(二):网络安全任务如何结合机器学习?

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

网络安全任务和机器学习

让我们看看常见的网络安全任务和机器学习结合的机会,而不是查看ML任务并尝试将它们应用于网络安全。具体我们需要考虑三个维度(Why,What和How)。

第一个维度是目标或任务(例如,检测威胁,攻击预测等)。根据Gartner的PPDR模型,所有安全任务可分为五类:

1.  预测;

2.  预防;

3.  检测;

4.  响应;

5.   监测。

第二个维度是技术层和“什么”问题的答案(例如,在哪个级别监控问题),以下是此维度的图层列表:

1.  网络(网络流量分析和入侵检测);

2.   端点(反恶意软件);

3.  应用程序(WAF或数据库防火墙);

4.  用户行为分析(UBA);

5. 过程(反欺诈)。

每个图层都有不同的子类别。例如,网络安全可以是有线、无线或云。请放心,至少在不久的将来,你不能将具有相同超参数的相同算法应用于两个区域。因为缺少数据和算法来找到对这三个区域都很友好的方法,因此可以将一个算法更改为不同的算法。

第三个维度是“如何”的问题(例如,如何检查特定区域的安全性):

1.  实时检测;

2.  静态检测;

3.  历史查看;

例如,如果你要查看端点保护,查找入侵,则可以监视可执行文件的进程,执行静态二进制分析,分析此端点中的操作历史记录等。

有些任务应该从三个方面解决。有时,对于某些任务,某些维度中没有值。我们需要从其他维度来找到解决方法。这些通常很难详细介绍它们,所以我们关注最重要的维度-技术层。从这个角度看网络安全解决方案。

用于网络保护的机器学习

网络保护不是单一领域,而是一系列不同的解决方案,专注于以太网、无线、SCADA甚至SDN等虚拟网络等协议。

网络保护是指众所周知的入侵检测系统(IDS)解决方案。网络安全中的ML意味着称为网络流量分析(NTA)的新解决方案,旨在深入分析每层的所有流量并检测攻击和异常。

ML如何在这里提供帮助?有一些例子:

1.  回归预测网络数据包参数并与正常数据包进行比较;

2. 分类以识别不同类别的网络攻击,例如扫描和欺骗;

3.  聚类数据用于分析;

你可以在学术研究论文中找到至少10篇描述不同方法的论文。

更多资源:

1.   入侵检测机器学习技术

2.  用于时间序列异常检测的长短期记忆网络

3. 基于规则提取的高效入侵检测异常检测框架

4. 网络异常检测技术综述

5.  浅层和深层网络入侵检测系统:分类与调查

6. 深度数据包:一种利用深度学习进行加密流量分类的新方法

7.   入侵检测系统的性能比较及机器学习在Snort系统中的应用

  1. 入侵检测系统机器学习算法评估

9. 基于LSTM的一类集体异常检测

  1. 基于递归神经网络的网络流量异常检测
  2. 计算机网络流量异常检测的序列聚合规则
  3. IDS所有方法的大集合

用于端点保护的机器学习

新一代的反病毒是端点检测和响应,建议最好学习可执行文件或进程行为中的特征。

请记住,如果你在端点层处理应用机器学习,你的解决方案可能会有所不同,具体取决于端点类型(例如工作站、服务器、容器、云端、移动设备、PLC、物联网设备)。每种端点都有自己的细节,常见任务类别:

1.  回归以预测可执行过程的下一个系统调用,并将其与实际过程进行比较;

2.  将程序划分为恶意软件、间谍软件和勒索软件等类别的分类;

3.  聚类在安全电子邮件网关上进行恶意软件保护(例如将法律文件附件与异常值分开);

关于端点保护和恶意软件的学术论文特别受欢迎。这里有一些论文:

1.  通过侵蚀整个EXE进行恶意软件检测

2.  浅层深度学习:非域专家的恶意软件分类

3.  TESSERACT:消除跨空间和时间的恶意软件分类中的实验偏差

用于应用程序安全的机器学习

在app安全性中使用ML?用于静态和动态的WAF或代码分析?不得不提醒你一下,应用程序安全性可能有所不同。因为他们有很多应用场景:比如说有Web应用程序、数据库、ERP系统、SaaS应用程序、微服务等。在不久的将来,几乎不可能建立一个通用的ML模型来有效地处理所有威胁。但是,你可以尝试解决某些任务。

以下是使用机器学习实现应用程序安全性的示例:

1. 回归以检测HTTP请求中的异常(例如,XXE和SSRF攻击以及auth旁路);

2. 用于检测已知类型的攻击(如注入(SQLi,XSS,RCE等))的分类;

3.  集中用户活动以检测DDOS攻击和大规模利用。

更多资源:

1. 自适应检测Web攻击中的恶意查询

2. 恶意脚本的神经分类:使用JavaScript和VBScript进行的研究

3. URLNet:通过深度学习学习URL表示以进行恶意URL检测

用于用户行为的机器学习

这类任务需求始于安全信息和事件管理(SIEM)。如果配置正确,SIEM能够解决许多任务,包括用户行为搜索和ML。然后,UEBA解决方案宣称SIEM无法处理新的,更高级的攻击类型和持续的行为更改。

如果从用户层面考虑威胁,市场已经接受了需要特殊解决方案的观点。

但是,即使最高级的UEBA工具也不包括与不同用户行为相关的所有内容。(域用户、应用程序用户、SaaS用户、社交网络、信使和其他应该监控的帐户)。

与常见攻击的恶意软件检测和训练分类器的可能性不同,用户行为属于无监督学习问题之一。通常,没有标记数据集以及要查找的内容。因此,为所有类型的用户创建通用算法的任务在用户行为区域中是棘手的。以下是公司在ML的帮助下解决的任务:

1.  回归以检测用户操作中的异常(例如,在异常时间登录);

2.  分类以将不同用户分组以进行对等组分析;

3.  聚类以分离用户组并检测异常值。

更多资源:

  • 使用扩展隔离算法检测异常用户行为;

用于进程行为的机器学习

进程区域是最后但并非最不重要的,在处理它时,有必要知道一个大致的业务流程,以便找到异常值。注意不同行业的业务流程可能有很大差异。你可以在银行和零售系统或制造厂中查找欺诈行为。两者完全不同,找到它们的不同需要很多领域知识。机器学习特征工程(将数据表示为算法的方式)对于实现结果至关重要。同样,特征在所有进程中都不同。

通常,进程行为也有任务示例:

1.   回归:预测下一个用户行为并检测信用卡欺诈等异常值;

2.   分类:检测已知类型的欺诈;

3.   聚类:比较业务流程和检测异常值。

更多资源:

机器学习网络安全书籍

如果你想了解有关网络安全中机器学习的更多信息,可以阅读以下书籍:

1. Cylance的网络安全AI(2017)-对网络安全ML的基础知识的简短,而且有很好的实际例子。

2. O'reilly的机器学习和安全(2018)-迄今为止关于这个主题的最佳书籍,但很少关于深度学习的例子,大多是一般的ML。

3.  Packt的渗透测试机器学习(2018)-不像前一个那么优秀,但有很多的深度学习方法。

4.   恶意软件数据科学:攻击检测和归因(2018)-从标题中可以看出,这本书主要关注恶意软件。它刚刚在撰写本文时发布,所以到目前为止我无法给出任何反馈。但我相信,这对端点保护团队的每个人来说都是必须的。 

结论

如果你想保护你的系统,机器学习绝对不是一个银弹解决方案。毫无疑问,可解释性存在许多问题(特别是对于深度学习算法)。另一方面,随着数据量的增加和网络安全专家数量的减少,ML是唯一的补救措施。它现在有效,很快就会执行。现在最好开始做这些。因为请记住,黑客也开始在攻击中使用ML。



本文作者:【方向】

阅读原文

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

相关推荐