美文网首页网络与信息安全机器学习我是程序员
网络安全与机器学习(二):网络安全任务如何结合机器学习?

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

作者: 阿里云云栖号 | 来源:发表于2018-11-12 13:12 被阅读30次

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

    网络安全任务和机器学习

    让我们看看常见的网络安全任务和机器学习结合的机会,而不是查看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系统中的应用

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

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

    10. 基于递归神经网络的网络流量异常检测

    11. 计算机网络流量异常检测的序列聚合规则

    12. 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。



    本文作者:【方向】

    阅读原文

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/nvwqfqtx.html