今天开完组会,说了研究生三年的研究方向,我大致定下的方向是机器学习的漏洞检测,然后老师又说了一些可以融入态势感知的想法,开完会后,现在对这些东西做一些归结。(本文中许多内容摘自很多博客的文章,这里纯属自用)
先说机器学习在网络安全中的应用吧
虽然机器学习最近很热,并且我的方向是基于机器学习的网络安全。但是我并不认为机器学习是解决网络安全问题的灵丹妙药,毕竟一线黑客一直都是使用超一线的技术,并且他们也将机器学习应用到了攻击中。我在想的是,能试着做一个并不像大型杀毒软件,而是对于没有安全基础的网站的coder们都可以自己检测普通漏洞的一个东西(目前是这么想的)。
机器学习不仅可以帮助我们完成典型的ML任务,包括回归(预测)、分类、聚类,推荐。ML(machine learning)也可以针对各种需求以不同的效率解决问题,这要根据你选择的算法而定。现在,我们将利用机器学习解决典型的网络安全任务。
根据Gartner的PPDR模型,所有的安全任务可以分为五类:预测(prediction),预防检测(prevention detection),响应(response)和监测(monitoring)。更精确地说,它们可以用于网络(网络流量分析和入侵检测),端点(反恶意软件),应用程序(WAF或数据库防火墙)或用户(UBAs,反欺诈)等技术层。
现在,让我们看看当前机器学习方法如何应用于网络安全任务的例子。
一、回归
回归是一项简单的任务,换句话说预测是一项简单的任务。我们希望利用我们对现有数据的了解对新数据发表预测意见,最简单的例子就是房价预测。在网络安全中,它可以用于诸如用户行为分析以及欺诈检测等任务。网络流量分析是使用机器学习的另一个好选择。至于回归的技术方面,各种类型的递归神经网络效果最好。
二、分类
分类问题举个例子,如果你有两堆照片,比如说狗和猫,你会很容易地把新照片放到相应的照片上,这通常称为监督式学习。我们确切知道我们正在寻找什么,并把他们放在正确的地方。那么如何将机器学习的分类算法应用于网络安全中呢?假设我们想要检测不同层上的恶意活动。对于网络层,我们可以将其应用于入侵检测系统(IDS),并识别不同类别的网络攻击,如扫描,欺骗等。在应用层,我们可以将它应用于WAF并检测OWASP top 10攻击。在终点层,我们可以将软件分为恶意软件,间谍软件和勒索软件等类别。最后,在用户级别上,它可以应用于反钓鱼解决方案,告诉我们特定的电子邮件是否合法。从技术上讲,SVM或随机森林等算法以及更好的简单的人工神经网络或卷积神经网络都可以解决这些任务。
三、聚类
聚类与分类解决网络安全问题的思路大体是一致的,只有一个主要地区别:我们不知道关于数据类的任何信息。此外,我们不知道这些数据是否可以分类。这被称为无监督学习。我们不参与到数据标注过程中,将所有的任务都交给机器完成,听起来这是一个非常有趣的尝试。
我觉得聚类最好的任务之一就是取证分析——当我们不知道发生了什么事情并将所有活动分类以找出异常值时,恶意软件分析解决方案(即恶意软件防护)可以实施它来将合法文件与异常值分开。聚类可应用的另一个有趣的领域是用户行为分析。在这种情况下,应用程序用户聚集在一起,并且可以查看它们是否属于特定的组。根据他们所在的组,提供相应的有效的网络安全解决方案。
四、推荐
推荐系统是互联网时代非常出名的系统。例如,我们都使用Netflix和SoundCloud时,他们会根据你的电影或音乐偏好给你推荐他们认为你喜欢的电影或歌曲。这种思想同样也可以应用于网络安全,其中它主要可以用于事件响应。如果一家公司面临一系列事件并提出各种类型的响应,系统可以了解应针对特定事件推荐哪种类型的响应。风险管理解决方案还可以从中受益,因为它们可以自动为新漏洞分配风险值或基于其描述构建错误配置。现在关于推荐任务已经出现了很多算法,最新的是基于受限制的玻尔兹曼机器和它们的更新版本,例如深度信念网络。
关于机器学习的资源这里推荐:网络安全中机器学习大合集
接下来再看看态势感知(Situation Awareness)
基本上,态势感知是感知你周围发生了什么事情,了解对应的信息对你现在和将来的意义是什么。这种感知以对特定工作或者目标这重要性为标的而组织起来。SA的概念通常应用于人工操作的情境,人们因特定原由必须有情境意识,例如为了开车,为病人治疗,空中交通控制中心进行交通分流。因此,SA通常根据一个特定的工作或功能的目标来定义。
SA的正式定义是“一定时间和空间环境中的元素的感,对它们的含义的理解,并对他们稍后状态的投影(恩兹利,1988)。态势感知这个词来自于军队飞行员的领域,在这个领域中实现高水平的态势感知是至关重要的同时也富有挑战。态势感知在许多其他领域也很重要,虽然命名可能不同。例如,在空中交通管制者的世界里,他们一般指的是一种想象,一种情境在意识中的表现形式,也是他们做出决策的基础。
根据这一定义对不同的领域的SA的会差别很大,SA作为决策和执行的基础的重要性适用于几乎每个活动领域。SA被广泛领域所研究,如教育,驾驶,列车调度,维修,发电厂业务,以及天气预报,加上航空和军事行动。使用SA作为决策和性能的关键驱动因素也超出了这些领域的非工作相关的活动,包括娱乐和体育专业队,自我保护,甚至表演。态势感知是现实世界的变化的知识,是有效的决策和行动的关键。
对SA的正式定义分解为三个独立的层次:
Level 1 -对环境中的元素的感知
Level 2 -对当前形势的理解
Level 3 -未来状况的投影
Level 1 -对环境中的元素的感知
实现SA的第一步是感知环境中的相关元素的状态,属性和动态。对于每个域和作业类型,所需的要求是完全不同的。飞行员需要感知的要素,如其他飞机,地形,系统状态和警告灯,以及他们的相关特性。在驾驶舱里,持续监控所有相关的系统和飞行数据,其他飞机,和导航数据的任务相当繁重。一个军官需要探测敌人,平民和友军的位置和行动,地形特征,障碍和天气。一个空中交通管制或汽车司机有一套不同的态势感知。
信息的感知可以通过视觉,听觉,触觉,味觉,嗅觉,或一种组合。例如,一个葡萄酒制造商可能会在发酵过程中通过味道和气味和通过视觉检查收集关键的信息的状态。医生使用所有的感官和可以得到的信息,以评估病人的健康状况。这些线索十分的敏感微妙。一个训练有素的医生可以听到心跳的节奏细微的差别和可以在心电图上观察到显著的模式,而未受过训练的观察者做不到这一点。一个有经验的飞行员只是听到发动机的音调或看到在空气场上的灯光模式可以知道有些东西出了错误。在许多复杂的系统中,电子显示器上会有着重的提示和读取提供的,但现实是,1级SA的大部分也来自个人对环境的直接观察——看窗外或感觉的振动。
与他人的语言和非语言交流形成一个额外的信息来源,对1级SA有帮助。
Level 2 -对当前形势的理解
实现良好SA的第二步是理解数据和线索对目标和目的意味着什么。 理解(SA Level2)基于不相交的1级元素的综合,以及该信息与个人目标的对照。 它涉及集成许多数据以形成信息,并且优先考虑组合信息与实现当前目标相关的重要性和意义。 2级SA类似于具有高水平的阅读理解,而不是仅仅阅读单词。
而对于实际应用当中,想象一下司机到达十字路口的场景。司机看到一个黄色的灯,她就会明白她需要谨慎,基于距离十字路口的距离。她对她前面的汽车的减速速率的感觉让她确定它是停止还是前进通过交叉口及其这个决定对该汽车的接近速率的影响。驾驶员对情况如何影响她的目标的理解定义了到达2级SA的条件。
军事指挥官的2级SA可能涉及理解在给定地点的行动报告,这意味着敌军正在附近集结。 或者它可能意味着看到沿着道路的车辆轨道,并从那里确定什么类型的部队和单位在军官自己的部队之前。
通过理解数据块的重要性,具有2级SA的个体将特定目标相关的含义和意义与手头的信息相关联。
Level 3 -未来状况的投影
一旦人们知道这些元素是什么以及它们对于当前目标意味着什么,预测这些元素在(至少在短期内)将做什么的能力构成了3级SA。一个人只能通过了解情况(2级SA)以及他们正在使用的系统的功能和动态,达到3级SA。
使用3级SA,驾驶员知道如果她进入交叉路口,他很可能被在过马路上的汽车撞击。 这个投影让她主动作出决定、陆军指挥官可以映射到敌方部队接近的方向和他们自己的行动的可能影响,基于他们已经生成的2级SA、飞行员和空中交通管制员积极工作,预测其他飞机的运动并提前预见问题。
使用当前情境理解来形成预测需要对领域(高度发展的心理模型)有非常好的理解,并且在心理上可能是相当苛刻的。许多领域的专家花费大量时间来形成3级SA,利用空余时间来生成这些预测。通过不断地前向映射,他们能够制定一套现成的战略和对事件的反应。这让他们掌握主动,避免许多不期望的情况,并且当各种事件发生时也非常快速地响应。
未能从第2级SA准确地投影(形成第3级SA)可能是由于精神资源不足(例如,如果人员超负荷其他信息处理),或者由于域的知识不足。通常,这也是由于过度预测当前趋势,例如,假设飞机将继续以其当前速率下降,而不是使其下降速率。在航空领域只有6%的SA误差在误差检验中被发现属于这一类别(Jones&Endsley,1996)。原因可能是由于在获得这个领域中获得的1级和2级SA方面存在着显着困难,而非在获得良好的3级SA过程中存在问题。没有足够的专业知识或设计精良的信息系统和用户界面,人们可能在SA的早期阶段失败,从未进展到3级。
这里在浅谈一下机器学习