大数据时代,数据窃取、篡改、个人隐私泄露等数据安全问题成为社会关注的焦点。目前的解决方案是通过分析数据安全威胁场景特征,形成事件规则,结合规则引擎输出事件告警。然而,复杂的攻击往往存在于企业生产和工作环境中。规则单一、匹配深度浅、无关性会造成大量攻击行为漏报和不准确告警。复杂事件处理(CEP,ComplexEventProcessing-g)技术应运而生。基于复杂事件处理技术,通过关联、时间序列、聚合等方式对各种数据进行分析处理,以发现一些有价值的信息,是大数据处理的关键技术之一。目前市场上主要的CEP引擎有:Drools是一个用Java编写的CEP引擎。核心是收集规则,利用规则过滤或关联条件为节点生成网络结构。数据会在网络结构中流动,暂时停留在节点上。使用空间换时间的思维,避免重复执行相同的条件来提高性能;FlinkCEP是基于Flink计算框架衍生出来的计算算子。它是实时复杂事件处理的解决方案。它使用NFA(非确定性有限自动机)对象。状态管理;Siddhi是一个用于实时事件分析的开源引擎,它支持典型的事件检测模式,如过滤器、窗口、相关事件模式,以及更高级的功能,如事件分区、将数据库值映射到事件等;Siddhi是一个轻量级且易于集成的开源CEP引擎。识别事件流中需要关注的特征事件,并进行实时分析处理。Siddhi可以与流式框架Flink集成,并获得良好的处理性能。当前,数据安全事件层出不穷。数据安全传输、脱敏、加密、防泄露主要是事前预防措施。我们将聚焦数据溯源场景,利用CEP引擎对数据泄露相关事件进行关联分析,溯源。在赛事运营的全过程中,对于安全设备发送的安全日志和数据访问传输日志,经过平台分析、增强、规范化等技术标准化后,需要使用CEP规则引擎进行入库。标准化日志深度关联分析生成安全告警事件(如图1所示),推送给安全运维人员,从而完成防护-检测-响应的整个安全事件运行闭环。图1安全日志分析流程数据安全需求和分析场景非常复杂。为适应快速变化的场景需求,保护数据价值,规则引擎的设计架构需要具备灵活的语义定制、友好的规则扩展、高效的大数据处理能力。能力等特点。另外,根据日志的存储特点,CEP规则引擎可以分为实时和离线两种分析模式。下面分别介绍这两种模式在数据安全事件分析场景中的应用。方式一、实时复杂事件处理为了快速发现数据安全事件,需要对设备日志进行实时处理。因此,有必要开发基于实时流式大数据处理框架的CEP规则引擎。一般来说,在安全运营平台上部署一个数据安全事件检测场景,需要经过以下几个步骤:Step1:了解数据安全事件的表现特征;Step2:推理设备日志的字段特征;Step3:归纳事件检测逻辑,转化为事件处理语言(EPL);Step4:将EPL集成到CEP规则引擎中并执行;进入CEP规则引擎后,即可触发生成事件。基于Flink和Siddhi开发CEP规则引擎是实时事件处理的典型案例。其事件处理流程的架构如图2所示。图2Flink-Siddhi流程图下面是一个实际业务中的数据安全威胁检测场景示例:攻击者试图通过几个已知账号和常用密码进行登录(UEBA异常行为——单个设备登录多个不同账号),成功后登录特定用户的汇流、邮箱等,浏览下载敏感信息(短时间内下载大量文件)),如服务器密码、敏感文件等,进而攻击一批服务器,造成严重的数据泄露。本场景涉及三种类型的日志:登录认证、Web访问和文件传输。经分析,该场景的日志具有以下特点:登录认证日志:多次认证失败后突然成功;Web访问日志:一台设备突然登录多个不同的账号,偏离了之前的日常行为;文件传输日志:短时间内下载大量文件。以上特征可以用CEP规则引擎内置的算子来表示。使用EPL定义事件检测逻辑,然后将EPL加载到CEP规则引擎中,对EPL等流程进行分析验证,最终得到物理执行流程图分发到集群的各个worker节点,开始执行以上事件检测规则。一般来说,大多数CEP引擎都提供状态机方案,根据事件检测规则对实时日志流进行模式匹配。在上述安全事件检测规则的具体执行过程中,有限状态机的执行过程如图3所示:图3CEP规则执行EPL基本流程首先,CEP规则引擎不断检测第一个用户的登录认证日志步。如果检测到多次认证失败和突然登录成功的日志,则判断为异常,缓存异常的登录认证日志,记为集合A。同时,实时监控集合A中的日志源/目的IP,如果短时间内有大量不同账号登录的web访问日志,则数量登录账户数超过正常基线(或阈值),记录为异常网络访问日志集B。至此,得到了两个日志集A和B,将A和B中源/目的IP条件关联的集记录为[A&B]模式序列。同理,[A&B]模式序列中集合A的目的IP持续监控文件传输日志,寻找符合关联条件的文件传输日志,登录成功后的一段时间内发生大量文件传输,所以获取设置C。并以[A&B->C]模式序列结束。如果模式序列[A&B->C]不为空,则表示该日志触发了事件检测规则,爆破账号成功后可以产生最终的数据泄露告警事件。通过我们的CEP引擎,可以灵活高效地处理数据安全场景的溯源分析,快速还原数据泄露过程的全貌,在责任定位、环境加固、安全防范等方面发挥重要作用。方式二、离线复杂事件处理虽然实时处理可以检测到很多数据泄露场景,但有些场景时间跨度大,是一次性访问历史日志,因此急需一种离线复杂事件处理模式。离线模式可以支持长期的威胁分析和基于历史日志的攻击事件还原。绿盟科技开发了通用的离线规则执行框架,支持单源和多源关联分析,复杂事件处理,自定义插件规则支持更多场景分析,同时兼顾效率和资源。离线处理的整体架构如图4所示。图4离线规则执行流程规则和任务注册模块:支持在界面上配置离线规则和执行方式,并注册到离线任务表中,由任务调度调用模块。任务调度模块:常驻进程,用于监控任务表,根据任务信息选择两种执行方式:(1)立即执行,即手动触发的一次性任务;(2)定期执行。规则执行模块:根据配置和调度信息,基于设备告警或流量日志、文件传输日志等的简单查询或关联聚合等操作,执行规则,产生相应的事件,最终更新任务执行状态(成功/失败)到任务表面。我们来看一下具体的APT攻击导致数据泄露的示例场景:攻击者首先尝试扫描端口和漏洞,发现SSH服务已开启,然后制作密码字典进行暴力破解。期间有SQL注入尝试获取密码、权限等,并成功。登录系统(SSH登录成功),然后安装病毒程序或工具进行木马远程控制活动,获取持久控制权,登录后读取或传输敏感文件,造成数据泄露,造成严重的数据安全事件。攻击流程如图5所示。图5.复杂持续性攻击的数据泄露案例。可以根据攻击阶段的关键动作提取特征:(1)排查:如端口、web漏洞扫描;(2)针对性攻击:账号爆破、SQL注入等;(3)抓包+入侵:账号爆破成功、系统登录成功等;(4)安装工具:感染木马、病毒等;(5)恶意活动:远程控制、敏感文件传输、数据泄露等目前APT攻击方式的离线模式检测:(1)首先根据数据攻击场景中提取的关键特征配置规则,可以配置为五个阶段:S1(端口扫描)->S2(SSH暴力破解)->S3(SSH登录成功)->S4(木马病毒感染)->S5(数据泄露);(2)配置好规则后,选择执行方式(立即执行或周期执行),注册到任务表中;(3)任务监控进程根据注册信息执行相应的任务;(4)Execution:由于是离线溯源,日志已经存储在ES中,所以可以从任意阶段开始查找。由于关联海量日志,需要解决关联的性能问题。这里使用最小日志源双向关联算法。核心思想是先找到每个日志源在每个阶段的命中数的最小值,提取关键的关联条件字段信息,如sip、dip等,然后结合关联条件作为上一步或下一步。一步添加复合搜索条件,反复迭代搜索,最终获取最小量的待分析日志数据,在内存数据库中完成聚合和关联分析处理。图6最小日志源双向关联搜索执行过程示例以三个日志源[s1,s2,s3]的多源关联分析规则为例,说明详细的执行逻辑:(1)首先查询三个日志源的每条规则过滤条件命中的日志总数列表log_cnt_list=[cnt1,cnt2,cnt3],假设cnt2为最小值;(2)从日志数据库中取出第二条日志源过滤规则命中的日志数据Data2,结合关联条件(如s1.sip=s2.dip),将s2的查询结果Data2作为附加查询condition,分别向前向后查询日志源s1和s3命中的日志数据Data1和Data3。需要注意的是,以Data2中的值作为约束关联条件查询s1或s3时,可能找不到结果,即Data1和Data3可能为空。如果为空,则需要及时终止前向或后向关联查询。并退出规则执行模块,避免不必要的日志数据库查询,及时释放系统资源。(3)双向查询日志结束后,将查询到的日志数据集[Data1,Data2,Data3]写入内存数据库,然后参与后续的关联聚合和输出事件,在内存中清除临时数据时间;(4)增加反校验机制,进一步减少数据量。可以看出,定义场景和特征后,可以灵活方便地将数据泄露相关场景转化为引擎内置的识别方式进行溯源检测,大大降低了场景分析的门槛,大家可以根据实战进行关于业务分析中的场景示例。结语通过以上对复杂事件处理相关技术在典型数据安全场景中的应用探讨,基于实时和离线安全事件分析模式分析具体数据泄露场景的溯源实践,可以看出复杂事件处理技术在网络安全行业具有重要的应用价值,尤其是在当前数据安全事故频发的情况下,其价值将更加明显。然而,在数据泄露场景分析、数据窃取、滥用和加密等方面的研究还有很长的路要走。在设计上,需要更完善的数据安全治理和评估框架体系;在技??术上,需要不断探索和优化解决方案的性能、多样性和可扩展性。【本文为专栏作者“安安牛”原创文章,转载请通过安安牛(微信公众号id:gooann-sectv)获得授权】点此查看作者更多好文
