网络安全任务和机器学习
让我们看看常见的网络安全任务和机器学习结合的机会,而不是查看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. 入侵检测机器学习技术;
4. 网络异常检测技术综述;
6. 深度数据包:一种利用深度学习进行加密流量分类的新方法;
7. 入侵检测系统的性能比较及机器学习在Snort系统中的应用;
8. 入侵检测系统机器学习算法评估;
9. 基于LSTM的一类集体异常检测;
10. 基于递归神经网络的网络流量异常检测;
11. 计算机网络流量异常检测的序列聚合规则;
12. IDS所有方法的大集合;
用于端点保护的机器学习
新一代的反病毒是端点检测和响应,建议最好学习可执行文件或进程行为中的特征。
请记住,如果你在端点层处理应用机器学习,你的解决方案可能会有所不同,具体取决于端点类型(例如工作站、服务器、容器、云端、移动设备、PLC、物联网设备)。每种端点都有自己的细节,常见任务类别:
1. 回归以预测可执行过程的下一个系统调用,并将其与实际过程进行比较;
2. 将程序划分为恶意软件、间谍软件和勒索软件等类别的分类;
3. 聚类在安全电子邮件网关上进行恶意软件保护(例如将法律文件附件与异常值分开);
关于端点保护和恶意软件的学术论文特别受欢迎。这里有一些论文:
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。
本文由阿里云云栖社区组织翻译。
文章原标题《machine-learning-for-cybersecurity-101》
作者:Alexander Polyakov 译者:乌拉乌拉,审校:。
文章为简译,更为详细的内容,请查看原文。