对于安全管理来说,看不到就意味着无法管理。在严峻的网络安全形势下,网络安全态势感知建设大潮如期来临。相比于一般的安全技术工作,这是一个资源投入大、涉及面广、技术难度高的复杂项目,以至于人们往往看到了酷炫的展示、纷繁的模型和海量的数据等等高大上的一面,而对于具体建设工作无从下手。德鲁克说过,比起正确地做事,做正确的事更重要。为了避免大量人力物力“打水漂”、确保态势感知切实发挥作用、提高安全工作效率,需要抛弃单纯堆砌工具的传统工作模式,从底层进行架构。
态势感知建设并不简单是数据的累积和展示,而是来自安全治理和攻防对抗的实际需求。安全团队通过对对日常安全运营和攻防对抗工作进行总结和梳理,抽象成安全场景和高阶威胁,形成具体的感知对象。通过体系化的分析方法,建立相应的分析模型,基于大数据技术,分析原始日志形成态势。最后,态势感知需要实现自动化以提高效率。本文对上述问题进行具体讨论,以形成态势感知建设的工作思路。
一、态势感知来自安全运营工作实际需求
态势感知平台是安全运营工作的技术支撑。而安全运营工作,从宏观来说,服从于企业安全战略,是安全治理的重要组成部分,与安全开发、安全交付并驾齐驱,覆盖信息系统生命周期安全管理。从具体来说,安全工作的直接意义就是对抗攻击、应对威胁。当攻击更多、更高端的时候,就需要态势感知平台提供系统化解决方案。因此,思考态势感知,还是要从攻击和威胁开始。这是安全团队需要态势感知的原因。
(一) 整体攻击
洛克西德·马丁公司于2011年提出“攻击链模型”,将网络空间攻击行为分为七个步骤,包括侦查探测(Reconnaissance)、制作攻击工具(Weaponization)、将工具投送到目标(Delivery)、释放代码(Exploitation)、成功安装并控制(Installation)、主动外联(Command & Control)、远程控制及扩散(Actions on Objectives)。
(二) 单点渗透
针对具体的应用系统,目前已经形成了相对成熟的渗透攻击模式,主要分为以下几个阶段:信息收集,脆弱性攻击,脆弱性利用(漏洞利用、暴力破解、任意文件下载、拖库等等),权限维持(webshell、反弹shell、创建账户等等)、权限提升、实施攻击、消除痕迹。
攻击者在“攻击链模型”的大框架下,不断重复渗透过程并横向跳转,自外向内不断接近核心网络和系统,最终达到控制整个内网以及使攻击目标拒绝服务、系统被控和敏感信息泄漏等效果。
在实际环境中,整个攻击过程漫长而复杂。为了便于观察和理解,需要对攻击过程进行抽象,作为态势感知的目标
二、安全态势是安全场景的具体展现
结合攻击过程,我们将态势感知的目标总结为事件减少和信息量增加两个过程,并通过多个安全视角进行具体展现。这是安全团队需要感知的对象。
(一) 大规模消除误报并实现事件分级
在体量庞大的攻击过程中,从监测视角来看,将会出现海量事件和告警。这些事件和告警的数量远远超过人力能够处理的范畴。因此态势感知首先要实现的是事件减少,一般存量待处理事件不超过10条。而其中最有效的就是降低误报并统一告警分级标准。对于级别最高的告警事件,一定是确认存在拒绝服务、系统受控、数据泄漏等现象或者实质性攻击造成了失陷,有效区分于大量无目的扫描(使用高危漏洞攻击脚本但自身实际上不受此漏洞影响)、风险较低的外联(如流氓推广)等“伪高风险”事件。
在安全运营过程中,监测只是第一步,后续还有处置、溯源、修复、优化等一系列过程,而这些后续过程不可避免地需要大量人工介入。为了避免人工成为整个流程中的瓶颈,需要对待处理事件区分优先级,形成小时级、日级、周级、月级处理梯队,让重要事件得到及时解决,同时兼顾全局。
小时级:实时发生的失陷事件,不断恶化的安全事件。
日级:存量高风险事件闭环处置。
周级:资产管理、脆弱性扫描、基线核查、安全更新等周期性任务执行,中低风险和潜在风险分析,外部重要安全事件跟踪。
月级:整体攻防演练,安全运行演练和有效性检验,事件回顾。
可以看出,其中最能够体现态势感知价值、有效减少MTTD和MTTR的就是小时级事件处置。作为入侵过程中具有实质性影响的标志,失陷事件易于准确发现。因此,小时级事件以失陷事件为主,经过经验积累,可以形成安全场景知识库:
(二) 建设高阶威胁感知能力
高阶威胁发现是信息量增加的过程。这与事件减少并不矛盾。事件减少主要是去除大量误报和无实质性影响的告警,同时对事件进行整合和提炼。在这一过程中,信息量并没有增加。而高阶威胁发现是对监测数据的进一步加工,进行因果关系的串联和相关关系的关联,从而挖掘出新的事件。
1、 定位入侵阶段和攻击过程还原
定位单体事件在渗透和攻击链中的所处阶段,结合溯源分析,进一步形成完整的证据链,还原攻击过程。通过还原攻击过程,有利于全面评估损失和安全风险,制定完善的解决方案。
定位入侵阶段:
在还原攻击过程时,尤其要注意前后证据间严谨的因果关系,否则由于监测的信息往往是零散且冗余的,很可能形成错误的推导逻辑。比如我们发现服务器受僵尸网络控制存在“挖矿”行为,进一步追溯通过进程关联到木马实体,是否可以确定该木马就是远控木马?不一定。实际上,清除进程和木马实体后,“挖矿”行为仍然存在,同时木马实体也死灰复燃。因此,该木马实体只能解释“挖矿”行为,但无法解释远控现象。也就是说,存在该木马实体是整个“挖矿”行为的必要条件,但不充分,需要补充其他证据解释远控现象。
一般情况下,远控现象的充分条件可能包括漏洞攻击后的命令执行、口令爆破后命令执行或者存在其他远控木马实体和远控地址。经过进一步溯源,我们从流量日志中分析出0 day漏洞攻击和下载“挖矿”木马的命令。至此,漏洞攻击命令执行+“挖矿”木马实体可以完全解释整个“挖矿”事件,互为充分必要条件。必要不充分的情报从本质上来说是证据不足、论证不充分,常见的还有误报,或者存在漏洞扫描但没有形成漏洞利用,等等。
相应地,充分不必要的情况本质上是证据冗余、存在干扰。比如,发现用户邮箱被盗用,并且追溯到账户口令暴力破解和用户终端感染木马。理论上,这两种情况都可能导致邮箱被盗用。但从实际操作上,显然前者攻击成本要低很多。一般来说,攻击者总会采取最短路径进行攻击。因此,重点排查账户口令暴力破解更容易见效。实际上,该事件后续排查的结果也支持这一点。
综上,在串联证据链的过程中,应注意前后证据间形成充分必要关系,否则应考虑补充必要证据或者去除冗余证据。
2、 深度挖掘异常行为
对于外部已发生但本地仍未知的高阶威胁,通过引入多源外部威胁情报,与自身安全技术体系有机结合,具备检测和防护能力。目前,应用比较普遍是基于域名、IP地址、样本特征等进行失陷检测。需要注意的是,威胁情报的准确度不等同于命中情报后判定失陷的准确度。比如,一台终端存在解析恶意域名的情况,但是不一定建立连接,这可能是由于访问控制策略或者其他未知原因;即使建立连接,也不一定传输远控指令,还要视流量分析情况而定;即使流量层面判断失陷,其样本特征也不一定命中。正如前文所说,监测的信息往往是零散且冗余的,而威胁情报基于监测进行判定,所以引入威胁情报绝不单纯只是引入一些高精度检测规则,而是需要配套完善的分析和溯源体系。
对于仍未公开的未知威胁,通过建模分析,基于大数据技术,从海量日志中检测异常行为,具备潜在威胁发现能力。未知威胁一般基于0 day漏洞或者特种木马。应对这一类高阶威胁,主要从两方面考虑。一是“降维防御”,首先要做好失陷准备,此类攻击具有技术优势和高度隐蔽性,无法通过已知规则进行检测;这样,才能将视角从攻击特征转移到行为特征。二是“干扰思维”,在具体操作层面,预置陷阱和诱饵有助于发现异常。
3、 预测风险态势
通过建模分析,基于大数据技术,对未来网络安全态势进行预测。一方面,对威胁趋势进行预测,评估应对能力和损失,有利于调配安全运营资源,更好地控制潜在风险。另一方面,对安全事件发展趋势进行预测,有利于制定精准解决方案,更好地控制事态变化和安全投入成本。
(三) 基于运营业务划分安全视角
安全视角是对安全运营工作的分类。而安全运营工作服务于信息系统和业务运行,分为主体、客体和管道。其中主体主要是用户和终端,管道主要是网络环境和访问权限控制,客体主要是应用系统。而应用系统安全体系庞大、涉及面广,一般又根据技术栈分为系统、应用和数据。
同类安全工作在安全技术上具有相同的特征,比如终端安全侧重补丁和杀毒,而应用安全侧重应用漏洞攻击和木马检测。科学的安全视角划分,有利于制定统一日志格式和结构化数据处理,更好地进行分析和展示。
三、数据处理和分析是态势感知的核心能力
我们在《基于通用技术的企业安全运营架构》中提出了安全运营技术架构,基于安全防护体系进行数据采集,基于基础技术平台建立数据分析能力。但是从数据源、数据处理能力到前文提到的目标效果,还需要数据处理过程。这就是安全团队建立态势感知的行动路径。
(一) 建立日志处理生命周期
采集到的日志种类繁多、数据量大,且存在分布采集的情况,一般需要进行预处理才能用于进一步分析,并建立覆盖采集、预处理、传输、存储、清理、使用的日志处理生命周期,以形成高质量、稳定的数据源。
1、 种类繁多
日志一般分为情报类、溯源取证类(DPI、EDR)、告警类和监测类,每一类日志又通过多种技术手段或设备采集,需要进行预处理。通过设计过滤、拆分、合并、替换等基本处理方法,以及对上述方法进行组合和选用,经过验证形成结构化数据。
2、 数据量大
1) 增量控制
通过预处理,还需要去除数据冗余信息,只保留具有分析价值的核心字段,有效缩减数据体量,减轻数据传输过程中的链路带宽压力。
2) 存量控制
定期对存量数据进行清理,避免增量数据不断输入对存储造成压力。
3、 分布采集
对于具有多级子机构和派出机构的大型企业,机构本地一般不具有大数据处理能力,需要将日志上传至数据中心进行统一建模分析。甚至大型数据中心内部,由于物理环境和网络条件的限制,也存在分布采集的情况。需要在采集本地部署日志处理前置模块,实现采集、预处理和传输等功能,满足有限本地计算资源和传输带宽资源情况下,结构化数据的及时高效上传需求。
(二) 基于机器学习建立分析模型
1、 概述
机器学习的核心是“使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测”。具体来说,主要分为监督学习、非监督学习和强化学习。其中监督学习需要使用标签对样本进行标记,主要有分类和回归两种类型;非监督学习不对数据使用标签,主要有聚类和降维两种类型。每种具体类型又有多种不同算法实现方式。
另外,深度学习和卷积神经网络也逐步用于安全态势感知建模分析。
2、 基于安全场景建立分析模型
结合前文所述目标效果,一般可以对具体需求采用的建模方法进行初步规划:
1) 事件分级
通过分类,将事件标记为不同风险级别。
2) 入侵阶段
通过分类,将事件标记为不同入侵阶段;通过聚类,关联还原成完整入侵过程。
3) 异常行为
通过聚类,根据属性和行为对象进行分组,分析异常行为。
4) 态势预测
通过回归,使用先前的标记的数据对未来态势进行预测。
实现安全场景分析和高阶威胁感知是分析的目标,而模型选择和建模过程只是手段。理论上,只要能实现目标,具体手段的选择也可以不拘泥于机器学习的范畴。
(三) 基于控制对象实现有效管控
区别于安全视角,控制对象主要是对安全运营工作的控制要素和“抓手”。通过对控制对象的管理和操作,完成事件闭环处置。
1、 资产
资产管理是安全治理工作的重要基础,对于事件定位、统一防护具有重要意义。资产信息收集一般可以通过以下3个方面着手:
1) 基础台账
基于资产管理生命周期,从采购到上线、维修、报废;基于网络环境建设,从网络拓扑结构到地址分配、地址转换和访问控制;基于信息系统技术架构,从基础计算环境到操作系统、中间件、应用的技术选型。
2) 主动采集
通过全地址扫描和主机Agent收集资产信息。
3) 被动采集
通过流量分析和访问控制被动感知存活资产。
2、 事件
事件是安全运营的主线内容。数据经过分析形成事件,汇总到统一处理平台,进行响应、处置和知识库建立。
3、 策略
策略是事件处置和安全防护的主要控制手段。对策略进行统一管理,从建立、审核、下发、修改、废除进行全生命周期管理,并验证策略有效性。
4、 情报
收集外部多源情报,建立威胁情报库,统一分发到监测和防护设备。
四、自动化安全运营是态势感知的高级目标
为加快上述分析速度,快速分发防护和响应策略,节约人工成本,有效提升安全运营效率和规模,需要将运营工作自动化。目前主要有SOAR模型(Security Orchestration, Automationand Response,安全编排、自动化和响应)和OODA模型(Observe, Orient, Decide, Act,观察,调整,决策以及行动)。在具体落地方面,前者主要是基于Splunk的Phantom平台,后者主要是IACD框架(Integrated Adaptive Cyber Defense, 集成的自适应网络防御框架)。
在实施IACD的过程中,首先要制定剧本(Playbooks)。基于前文场景分析,结合实践中的事件处置知识积累,可以形成事件分析处置流程:
进一步,对攻击和响应的流程进行分析设计形成工作流(Workflows),结合本地实际环境形成本地实例(Local Instances)进行试点和部署。
五、拓展企业网络安全技术架构
基于上述需求,对企业网络安全技术架构进行拓展,将安全建设的工作重心由工具集积累转向运营平台和底层架构搭建,实现安全资源标准化、池化。
(一) 工具集
这一层实际上是对已有安全手段的梳理和整合。各类安全系统,无论是商业采购的“盒子”,还是基于开源或者自研的软件,都具有明确的工具属性:一是部署在“一线”,发挥最直接的安全防护效果;二是具有独立性,功能特点明确;三是具有可替代性,同类产品原则上可以“即插即用”;四是要接受统一管理。
这些安全手段整合起来,形成了基本的纵深防御体系。我们形容为“全家桶套餐”或者“大拌菜计划”。安全措施嵌入信息化建设的各个阶段,形成标准化防护措施。也就是说,只要上线新的端点,默认安装全套基于Agent的端点防护手段;只要是存在边界、业务流或者数据流等链路,就牵引到流量清洗资源池,进行统一防护和监测。另外,对于在线业务、服务、系统和设备,接入各类网关实现统一访问控制;通过主动探测实现脆弱性检测和资产管理,引入威胁情报。
基于此,安全形成了标准化业务,可以有效避免防护力度参差不齐、安全产品更新换代困难,有利于横向扩展、规模化对外输出安全能力。
(二) 运营平台
建设运营平台,主要实现对安全资源的管理、调度,以及进行分析和展现以对接运营工作。通过数据分析技术,实现安全监控、响应、预警能力,对抗外部威胁,保障业务安全稳定运行。
1、 接口驱动
对外提供安全资源统一接口,主要包括端点Agent下发、流量防护和监测接入、网关接入、主动探测扫描等资源的调用和释放,使业务能够自动化使用池化的安全资源。
2、 集群管理
对全部安全资源进行统一管理,进行策略下发和更新,收集日志并进行实时处理。
3、 业务总线
对于收集的海量日志,建立消息队列和缓存,基于大数据技术进行实时分析处理、存储和检索。
4、 统一展现
积累安全分析案例,形成安全场景和分析规则,对数据处理结果进行统一展现。根据安全运营架构,建立响应处置流程,控制安全风险。
(三) 底层架构
1、 安全技术
尽管搭建了较大规模的安全技术架构提升安全防护能力,攻防技术还是分析和防护的重要基础和出发点,风险控制是贯穿整个工作的主线和目标。
2、 高可用
安全技术架构要满足高可用需求。一方面,性能需求决定了管理平台需要进行集群化部署,需要有稳定可靠的计算基础设施保障。另一方面,安全保障业务这一工作目标决定了安全资源需要在物理上贴近业务系统部署。除了数据中心自身为实现高可用而采取的多中心部署外,即使在同一数据中心内部,安全资源也需要在多个物理位置部署。因此安全技术架构需要考虑分布式部署技术。
3、 高并发
对于海量流量和日志,单一安全工具无法满足性能需求,需要集群化部署。通过负载均衡技术,实现安全资源的业务压力调度。
4、 大数据
对于海量日志,具备实时处理、快速检索和存储能力。
(四) 部署示例及业务处理流程
1、 采用LVS/Nginx为集群化部署的工具进行负载均衡。
2、 采用Kubernetes为安全平台提供基础计算环境。
3、 采用ZooKeeper对安全工具策略进行统一管理。
4、 采用FileBeat采集并传输日志。
5、 采用Kafka作为消息队列接收日志。
6、 采用Flink对日志进行实时处理。
7、 采用Hive作为大数据存储。
8、 采用Logstash接收日志实时处理结果。
9、 采用ElasticSearch存储实时处理结果,并提供全文检索。
10、采用Kibana对ElasticSearch中的数据进行展现。
11、采用Redis作为缓存数据库,MySql作为主要存储。
12、采用Jira进行工单管理,对日志分析结果进行后续处置,与ZooKeeper对接,进行策略调整和下发。
13、本文主要对于企业安全技术架构转型进行讨论,故不进行工具层面的具体选型。
六、数据处理流程
安全事件处理按照预警、保护、检测、响应、恢复、反击(WPDRRC)等流程形成闭环。通过数据处理流程,落地安全事件生命周期。
(一) 基础数据分类
工具层面采集的数据主要可以归为以下几类:
情报类:主要是通过各种渠道收集的外部威胁情报。
溯源取证类:链路流量DPI(深度包解析)工具和EDR(端点检测响应)工具产生的大量用于溯源和取证的日志,以及基础设施运行日志。
告警类:各类安全工具检测到的威胁告警情况。
监测类:各类安全工具业务系统进行监控和扫描的情况。
(二) 数据处理模块
处理层面主要包括以下几个模块:
威胁情报库:筛选可信度、适用度高的情报类数据建立成威胁情报库,形成预警信息,以供比对分析。
关联分析引擎:基于告警类数据,结合监测类数据,判断威胁告警的准确性、严重性和紧迫性,以供响应处置。其中准确度高的威胁告警作为内部情报数据,输入威胁情报库。
溯源取证模块:将威胁情报库信息与溯源取证类数据进行比对,判断失陷情况,确定影响范围和严重程度,以供响应处置。
响应处置平台:对于需要处置的情况,按优先级形成工单,以供调整工具层面策略。
(三) 数据流转过程
1、 情报类数据输入威胁情报库。
2、 溯源取证类数据输入日志接收模块,进一步输入全文检索引擎。
3、 新情报类数据与溯源取证类数据比对,进行失陷检测;检测结果输入关联分析引擎。
4、 新溯源取证类数据与存量威胁情报库比对,进行失陷检测;检测结果输入关联分析引擎。
5、 告警类、监测类数据输入关联分析引擎,分析实质性高风险事件。
6、 关联分析引擎综合评估事件的准确性、严重性和紧迫性,形成优先级,并输入响应处置平台,执行预案防止事态恶化,同时输入溯源取证模块。
7、 溯源取证模块通过全文检索引擎,对事件进行详细分析,判断影响范围和事态发展情况;制定完善解决方案并输入响应处置平台根除风险;形成内部威胁情报输入威胁情报平台。
8、 响应处置平台形成告警日志和安全工具策略,通过工单系统下发执行。
综上,对态势感知建设的本质问题和内在联系进行了思考,形成了相对完整的逻辑和路径,作为项目设计阶段的参考依据。正如RSA2019大会上IBM Security的标语:“We don’t need more tools. We need new rules.”
参考资料:
获取本文清晰大图,请微信关注“仙人掌情报站”,点击“发布”菜单,查看下载方式。
作者简介:董祎铖 资深网络安全工程师,就职于中国人民银行金融信息中心信息安全部,CISP,银行科技发展奖获得者。负责开展互联网安全防护体系建设和安全运营工作,专注于渗透测试、WEB安全、PKI/CA领域。
声明:本文来自仙人掌情报站,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。