分享

安全的进化论(二):来说说态势感知 | Sec

 Hu_D 2017-04-13

安全的进化论(二):来说说态势感知 - 第1张  | Sec-UN 安全圈

这是一篇读书笔记。

前阵子有幸在亚马逊上找到一本关于网络空间态势感知的国外论文集(当然,是中文版本)。虽然啃专业论文不是我的强项,我也无意成为一名态势感知专家(主要是个人技术烂),但是这本论文集中的很多研究成果,我还是想分享一下。当然,还会有一些夹杂我个人理解的延伸。欢迎讨论。

一、态势感知的定义

国内安全界关注和研究态势感知,我估算应该是从10年左右开始的,而且基本都是基于M.Endsley在1995年发表的那篇著名的论文《Toward a theory of situation awareness in dynamic systems》(《动态系统中的态势感知理论》)。在这篇论文里,Endsley博士认为动态环境中的“态势感知是认知大量的时间和空间中的环境要素,理解它们的意义,并预测它们在不久将来的状态”,并将态势感知(或态势认知)和态势评估在概念上做出了区分。前者代表认识的程度,后者代表实现、获得或维持这一认识程度的过程。

D.S.Alberts在2001年另一篇著名论文《Understanding information age warfare》(《理解信息时代战争》)中也对态势感知做出了如下描述:“态势感知这个术语描述的是对特定时间点、整个战斗空间或其中一部分状态的感知。在某些情况下,已发生事件的发展轨迹信息和对当前态势的发展预测是关注的重点。态势由任务和任务约束条件(如交战规则)、相关力量的能力和意图、关键的环境特性等部分(组件)构成”。

Endsley倾向于将态势理解(预测)作为感知的一部分。而Alberts倾向于将感知与理解分开。实际运用于网络安全领域时,Alberts更贴近于通过计算机自动化实现态势感知能力的现实设定。因为计算机无法做到Endsley所认为的主要存在于人脑中的态势认知,而只能做到态势评估,而Alberts将态势分析作为一个认知过程,并强调了任务机制(在网络安全领域,任务可以简单理解为事件)。

综合两方观点,实际我们可以将态势感知定义得更贴合网络安全领域的一些共识和期望。

态势感知就是“认知一定时间和空间内的环境要素,理解其意义,并预测它们即将呈现的状态,以实现决策优势”。

因此,态势感知可以分为三个组成部分:态势认知、态势理解和态势预测。

态势认知是了解当前的状态,包括状态识别与确认(攻击发现),以及对态势认知所需信息来源和素材的质量评价。

态势理解则包括了解攻击的影响、攻击者(对手)的行为和当前态势发生的原因及方式。简单可概括为:损害评估、行为分析(攻击行为的趋势与意图分析)和因果分析(包括溯源分析和取证分析)。

态势预测则是对态势发展情况的预测评估。主要包括态势演化(态势跟踪)和影响评估(情境推演)。

二、态势认知

先来看状态识别和确认。简单来说,在网络安全领域,状态识别就是意识到有攻击发生(攻击发现)。状态确认则是确认攻击的类型、来源、属性和攻击目标等(攻击确认)。

就这个部分,有几个坑想和大家讨论讨论。

第一个坑:事件不等于攻击,事件不等于攻击,事件不等于攻击。重要的事情说三遍。

无论是入侵检测,还是防病毒软件,都能提供和判别事件的发生(简言之就是告警)。但是,事件(告警)只是各种传感器的自动化处理机制中对接收到的数据信息的处理结果,并不能代表真的就有攻击发生了。因此,从可观测的角度而言,可确认的事件这个集合是大于可确认的攻击这个集合的。此外,基于事件(告警)得到的信息相对于状态确认所需要的攻击信息而言是不全的,所以事件信息这个集合是小于攻击信息这个集合的。

安全的进化论(二):来说说态势感知 - 第2张  | Sec-UN 安全圈

这表明了两个困境:一是我们需要在传感器反馈的海量事件中找到真实存在的攻击,需要想办法去掉无效事件的噪音干扰。二是我们为了掌握和确认攻击,就需要想办法更大量的,更多纬度的信息去支撑这个状态确认。

然而,现实情况是,海量的事件,如何通过分析发现攻击,已是一大难题。而发现攻击后,往往我们又发现支撑对攻击进行确认分析的数据不足,无法勾勒攻击全貌。当想办法获取了更多的数据来做确认分析时,却发现这么多数据又产生更多的事件,攻击发现又成问题了。

第二个坑:态势认知不是态势感知,喊专有名词要慎重。

从Endsley和Alberts的论文和定义中,应该可以看到,态势认知只是态势感知的一个组成部分,或者说是态势感知的第一步。然而,目前国内大部分态势感知产品实际都只是一个态势认知产品,还是不那么好用的态势认知产品,不提最难的态势预测,就连态势感知的第二个组成部分:态势理解,许多产品都不具备这一能力。这样做的结果,就是大多数态势感知产品还达不到真正的预期效果,态势感知这个概念就像当年的SOC一样,快速泡沫化,然后快速烂大街,最终导致好东西没人做也没人要。

举个简单的例子,态势感知产品里面BiuBiu图的泛滥,说好听是可视化,说不好听就是糊弄人。里面biu来biu去的所谓攻击,有多少是基于传感器上报的事件直接分析得出的,有多少是经得住推敲的,有多少是能详细并准确地描述其来源、目标、类型、攻击路径等属性信息的,又有多少可以确认的攻击是不用人工分析就可以判断得出的?

第三个坑,怎么做好态势认知。

个人以为,首先,要明确一点:在理想的态势感知系统中,IDS等传感器就是传感器,就是采集数据用的,它们的核心就是提供数据。态势感知系统需要自己建立攻击发现和攻击分析能力,而不能依赖于IDS等传感器的事件告警来做分析。这个问题,在我碰到的国内一些所谓态势感知产品中特别突出。所以,基于事件分析和基于数据分析是一个分水岭,也是传统事件分析与态势认知分析的区别所在。

其次,从观测的角度而言,日志大多是基于一定阀值的记录,只是状态信息的一个组成部分。因此,要做状态识别和确认,就需要扩充你的状态信息来源,例如对流量协议还原后的数据,或是用户行为数据等。单纯依据日志来做分析,只能观测到一部分已知的攻击行为。

再次,在初期,数据越多越好,因为你不知道什么数据有用,什么数据没用。只有当你积累了对大量攻击行为的认知后,通过质量评价和优化,才能逐步减少和补全数据采集的数量和来源。

然后,就是合理运用大数据分析工具,构建攻击发现和分析模型,并可以借助机器学习等技术逐步实现对相关算法模型的持续改进。没有合适的大数据平台和分析工具,再多、再有价值的数据也是一堆“废料”。

还有,就是充分发挥威胁情报的作用,用其他人观测到的外部攻击信息来帮助自己进行观测,这是一个事半功倍的事情,除了提供自己的分析精度和速度,还能从中发现自己在数据来源、分析模型等方面的不足,查缺补漏。

最后,就是数据描述标准和数据结构的问题。现在国内大部分态势感知产品的数据描述和数据结构都是不统一的,对攻击的描述各不相同,有长有短,有对有错,没有统一的标准。个人的建议,可以好好研究下STIX,用这个标准来统一下你的数据结构,明确怎么完整地描述一个攻击,确保在数据对接时不会打架或者产生困扰。

 

再来看态势认知里面的信息质量评价。

对态势认知信息素材的质量评价(或者说是质量度量),不但关乎到信息本身的质量和可信度,还关乎由此形成的知识-情报-决策的质量和可信度,如真实性、完整性和时效性等。所以,可以看到态势认知的质量评价实际是以结果为导向的一套评价体系,即包括对系统整体效果的考量,也包括对单类信息素材来源的考量。因此,信息质量评价(或者说态势感知系统的质量评价)不但支撑着态势认知,还会延伸到态势理解和态势预测,贯穿于整个态势感知体系的始终。

个人理解,单类信息素材的考量类似于现在威胁情报领域常被提到的信誉度和情报质量的概念。例如:

完整性:以STIX标准来衡量的话,八要素齐全的威胁情报比单一的IDS事件告警的质量更高。

真实性:外部威胁情报在与内部数据做命中后所得到的攻击相关信息,质量比IDS告警的真实性要高。

时效性:当天首次发现的威胁信息比多次发现的威胁情报、之前发现的威胁信息时效性更强。需要说明的是,一个能快速指导防护者进行决策的威胁信息,比一个你看到也无所适从的威胁信息更具时效性。因此,时效性即是性能标准,也是一个有效性的衡量标准。

而对系统整体效果而言,质量评价就复杂很多。我们常说的态势度量体系中很大的一部分就是针对信息素材的质量评价。这部分的质量评价(既有性能评价,也有效能评价)包括了系统的置信度(查全率、查准率、碎片率、错误关联率等)、纯度(不正确率、证据查全率)、费效比(优先级排序、攻击分值)、时效性(防护时间、检测时间、响应时间)、有效性(MoE)等多个衡量指标,是对以所有信息素材为一个整体的信息质量的度量,也是对系统运用这些信息素材的能力度量。这也是目前国内进行态势感知度量相关研究的重点所在,我个人觉得可以考虑结合STIX的一些标准化思想和概念来配合进行度量。(很难说做得好还是不好,也希望有大牛来普及下这方面的知识)。

 

三、态势理解与态势预测:态势感知参考概念模型

这里我推荐大家可以了解下美国国防部数据融合联合指挥实验室提出JDL数据融合模型、Endsley博士提出的Endsley态势感知模型。将两个模型融合到一起,我们可以得到一个态势感知参考概念模型和一个态势感知过程模型。

安全的进化论(二):来说说态势感知 - 第3张  | Sec-UN 安全圈

这个态势感知参考概念模型完善了JDL的第1和第2层,并将JDL第2和第3层与Endsley模型结合,并用第4层实现态势感知和数据融合系统的弹性和动态需求。

实体:独立、独特存在的某个事物,包括物理实体和非物理实体。电话、财务交易、某台交换机、某个人都可以认作是一个实体。一个实体可以用一个具体的对象和一个对这个对象的抽象概念来描述。

组:相互之间有某种联系的若干事物。例如特定的人群、组织团体、一组存在交互的设备等。

事件:发生的事情。实体和组都可以和特定或多个事件关联。事件可分为三类:简单事件(仅涉及单个实体,且与其他实体无相互作用的事件)、空间事件(在空间中发生的、包括位置因素的事件,例如对DMZ区的攻击,或者对外网Web服务器的批量扫描)、传递性事件(涉及两个或多个相互作用且关联的实体的事件,例如利用VPN登录某台防火墙,或是借助某台服务器做跳板攻击其他服务器)。

活动:通过行动或运动的方式完成的事情。活动由多个实体/组构成,各构成部分通过时间、空间上的一个或多个事件关联(例如:某黑客团伙利用Web扫描、VPN登录、社工钓鱼等多种方式尝试攻击某企业网络,可视为一项活动)。

态势:可以将某个时间点的活动的集合即为我们所说的态势。

因此,在第一层,态势感知系统,或者说态势认知模块需要建立能够确认对象、组和活动的模型和先验知识(即相互关系与联系)。而先验知识的获取一是依靠自下而上的采用知识发现技术,并由操作者验证其结果,二是直接由操作员提供先验知识。第一种方法只能学习到统计相关的事件,而无法创造新的想法,第二种方法则依赖于人力的作用和人的经验与直觉(这就是所谓的“人在回路”)。

JDL模型和Endsley模型都认为,计算机系统能根据先验知识认知到活动的发生,或建立多个对象/事件之间的联系,却不能形成或提供态势感知。只有人(决策者)才具备感知能力,即理解、预测的能力。然而,由于所处情境的不同,人的经验、知识、直觉作用的不同,不同人得出的态势或看法各不相同。这就需要综合多个人的看法。共有态势感知(许多人对某个或某一组特定活动的看法中的共同点)和共有行动计划(一个组在联合观察到的信息或数据简化过程的基础上共同做出的决策)的理念在近20年得到了广泛支持。

这也是后续的威胁情报概念、情报交换机制、云联动等新技术和概念为何会诞生的基础指导思想。

模型中将第2层的理解和第3层的预测合为态势评估,基本可定义为:理解当前状态及其给“我方”带来的损害/好处,预测当前态势的发展(即对未来的一系列的合理预期),以及这些合理预期可能造成的影响/威胁。

可见,在第2层的态势理解中,最重要的是了解自己和对当前的损害评估。损害评估是对攻击或者活动在当下的影响评估,是基于事实的评估。这不但需要了解当前已知的攻击和活动,还要弄清楚这些行为对“我方”的意义,即影响了哪些资产或能力,以及这些资产或能力对我方的重要性。简单理解,损害评估就是对现实风险的理解和评估。

而第3层的态势预测中,则关注于影响评估(也包括威胁评估)。影响评估与损害评估不同,它是一种情境推演,即当攻击或者活动继续开展,会造成怎样的影响,会不会和其他的攻击活动关联,会不会影响到其他的资产,以及如果我们采取了措施,会造成怎样的后果等等。这是一种基于观点的评估(观点与事实的差别,这里就不再赘述)。简单理解,影响评估就是对潜在风险的理解和评估。

根据RFD认知决策模型(G.Klein)理论,目前国内的风险评估,大多停留在损害评估层面,即简单的资产、威胁、脆弱性的关联,在影响评估层面只适用于进行“特征匹配”式假设推理(即所有条件都已知,且所得线索与过往经历的相似性程度较高)。而从态势预测对影响评估的定义(情境的推演)来看,影响评估除了采用“特征匹配”外,还需要做“情境构建”(原文为“情节构建”),通过分析和推断对方意图、时机、能力等对手信息,以及漏洞能否组合利用,或是是否存在未知漏洞等其他己方信息,探索其他潜在的假设,并持续进行态势跟踪,验证和推演构建的多个情境到底哪个是准确的。

因此,简单运用风险评估理论来进行态势评估,尤其是态势预测,基本上不可能达到理想效果(更何况现在国内大部分的风险评估产品、工具或项目,连做损害评估都不尽如人意)。

对于模型的第4层,强调的是反馈。在控制论、系统论等诸多理论中,反馈的作用都非常突出。因此,过程完善对于整个态势感知模型或系统而言,是一个持续进化和完善的保障机制,也是必要的验证机制。

反馈分为两个方向:一是作用于第1层,根据系统预测的结果,向指定的传感器发出数据请求,以获取相关的数据,来执行对象跟踪或预测结果验证工作,确保不会出现数据不足或数据错误的情况,或是去掉不必要的数据噪音。另一个方向则是作用于第2和3层,进行内部监测,当所采集的数据导致系统理解和预测的结果与现实态势不符时,需要有及时、有效的反馈机制去更新理解和预测的模型,或是直接人工介入。

个人猜测,自适应理论、自动化响应技术和机器学习的运用等,大多也脱胎于这种反馈机制的设计。

 

四、态势理解与态势预测:态势感知过程模型

安全的进化论(二):来说说态势感知 - 第4张  | Sec-UN 安全圈

对于态势感知的过程模型,有一个基本的前提就是所有可观测量(包括各个过程输入的基本环境要素,形成的认识和看法等)的属性都已经做了标准化和纯化,并转化成在后续过程中可用的形式。当然,现实情况中,大多没有做标准化和纯化,这也是为什么会有日志归一化、威胁情报的STIX、TAXII等标准化工作的原因。(这里我再次强烈建议,态势感知系统需要引入STIX等数据标准,缺少这些标准的支撑,整个体系连前提条件都无法满足,又如何去实现。)

在引入可观测量后,我们所关注的活动就可分为三种情况:1)与现有的、正在进行的某个活动中的新阶段或步骤相关;2)与现有活动无关,是新活动的开始;3)触发现有活动出现组合、合并或移除的因素。这对应了参考概念模型的第1层。

而对应参考概念模型第2层的,则是基于对我方认识的损害评估,是之前第1层确认的各类活动的延伸。在先验知识的支撑下,系统需要进行高效的损害判定,获得我方资产或任务的当前状态,并与之前状态进行对比,确定损害程度。

因此,在这一过程中,很重要的一个前置工作就是资产发现。

到了第3层,也就是最复杂的预测层面,不但需要对我方的认识,还需要进入对手的OODA(观察、判断、决策和行动)环,简言之就是需要对对方的认识,也是需要先验知识支撑的。同时,作为前置过程,我们还需要根据配置数据规定预测的步骤和范围,从而将基于模型与经验,特征匹配与情境构建所得到的各种“可能的前景”(与第1层观测到的活动对应)处理成“合理的前景”,并能支撑对潜在的影响/威胁的评估。

而可视化组件的作用,就是为了让这些处理过程更直观,以方便人工进行监督和介入处理。可视化面临的挑战主要有三块:如何将海量信息进行可视化展现,如何让时间因素及其影响得以呈现,如何让呈现的态势更好地支撑决策。相比国外对可视化在整个模型中的作用有着清晰的认识,国内似乎已将可视化与态势感知做了对等,基本可以说是本末倒置。

 

四、关于态势感知的一些认识(吐槽)

最后来谈谈一些对态势感知的认识误区。

态势认知和态势理解常常被经验主义者认为是一体的。实际上是有区别的。

我记得去年某公司提出的口号是“看见”。简单来说,“看见”只是认知,即提供环境内相关要素的状态、属性和动态等信息,并将信息归入各种可理解的表现方式的过程,就是数据采集、数据存储、数据分类和初步的数据分析。

而“理解”可以认为是“看懂”,从技术实现来看,就是模仿人的大脑组合、解读、存储、保留和过滤信息的过程。这要以“看见”为基础,但比“看见”高一个层次。

因此,态势理解不仅要做数据的整合,还要做数据的深度挖掘和关联分析。一方面认识或注意到信息,整合这些信息,另一方面还要决定这些信息与实体、活动乃至态势的相关度,并可依此推断或推导出一系列结论。

关于态势理解,还有一个误区是认为通过机器学习、人工智能等技术最终能替代人,甚至超越人,去发现和理解全部的攻击,从而掌握整个态势。

事实上,机器学习、人工智能以目前技术发展趋势来看,最多也就只能做到替代人脑第二系统(思维)的作用,实现基于逻辑、知识、记忆的抽象化推理(文字、数学与理性的作用)。而第一系统(反射)带来的潜意识直觉判断,或者说“从不明显的证据直接得出结论”(丹尼尔.卡尼曼),却是不被抽象后的机器语言所理解的。而人对态势的理解,对攻击的感知,却有很多时候需要依赖看似不太靠谱的直觉。因为,大部分时候,我们的对手也是人,他们的很多举动行为也是潜意识的,甚至是病态的(病态行为在医学上被认为很多都是不可以逻辑来解释的),而这种行为的发现,大多只能靠有经验的防护者的直觉。所以,即使我们的数据采集得再多,分析能力再强,“未知攻焉知防”的观点会一直有效。

因此,态势理解必需有人参与在其中,且占据主导作用。计算机自动化技术构建的态势理解系统只是人工分析的辅助系统,而非替代作用。而分析者除了依赖系统提供的数据和结果外,还要适当发挥自己的直觉(当然,还要再用事实和数据去验证直觉),并根据最终结果对态势理解的诸多模型进行调整。

如果从循证现象学来说,机器做的是循证研究,人做的是现象研究或者经验研究(个人理解,如果错了欢迎纠正)。

第三个误区是,态势感知系统被认为是一个产品,实际上它只是一个专家系统。

态势感知系统从其定义上就可以看出,是个非常纯粹的专家系统,它需要大量的投入(传感器、外部情报、分析平台、可视化等),限定了一定的使用条件(时间、空间,还有数据瓶颈),还需要许多专家来实施许多关键部分的分析工作(例如先验知识方面的算法模型、后续的人工验证调整)。这也是为什么国外正在建设和使用的很多态势感知系统都是以项目形式,并结合专家团队卖人头,来为国家政府和一些财大气粗的企业提供服务的。准确的说,态势感知系统本身不是一个很好产品化的东西。

态势感知系统不能那么容易产品化,那么它的价值在哪呢?它的价值就在于,它是一个价值输送平台。通过对态势感知系统各种分析结果的提取,带动其他产品(如TI、EDR、NGFW、WAF、IDS等)的落地,提高其他产品的价值附加值,才是其关键价值所在。我们可以将态势感知系统看作是帮助用户构建更符合自己需要的安全体系的敲门砖和感应石,是安全项目的发起点。

当然,前面也说过,不做态势感知,只做态势认知,产品化并不难,也有用户需求。但是,缺少了后面的理解、预测和反馈,没有了完整的过程模型,单纯的认知系统又能发挥多大的效果,我个人保留意见。同样,总有牛人能把真正的态势感知系统做成真正的产品,我个人乐见其成。

 

以上只是一家之见,欢迎探讨。至于态势预测的具体技术,算法模型我不在行,就不班门弄斧了。

最后编辑:
作者:archer
这个作者貌似有点懒,什么都没有留下。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多