当前位置: 首页 > 科技观察

基于大数据的企业网络威胁发现模型实践

时间:2023-03-20 19:17:33 科技观察

关于企业安全威胁数据的收集与分析是一项系统工程,在我们的网络环境中每天都会产生各种形式的威胁数据。为了网络安全防护,会收集各种流量日志、审计日志、告警日志、上网设备日志、安全设备日志等。许多公司都有自己的数据处理流程和大数据管理工具。根据以往的实践经验,我们总结出一种威胁数据处理模型。由于增长黑客模型的命名方式,我们称这种模型为:沙漏威胁信息处理模型。网络环境中内置的安全发现设备或服务的主要作用是增加我们的防御厚度,减缓攻击者的攻击速度。通过足够厚的防御措施,可以在攻击者突破之前发现威胁,残血持续存在。等到最后回血,提醒友方人员不要轻易送人头。1.Hourglassthreatprocessingmodel图1.威胁分析沙漏模型威胁数据组织:我们参考软件设计模式、神经网络层次、增长黑客模型的归纳方法,总结出一个威胁数据处理模型。通过这个模型,我们可以看到数据采集、处理、展示的基本流程。根据我们的实际需要,我们可以简化或扩展模型来构建我们的防御系统。下面我们根据实际情况勾勒出一个基本模型,它由几个层次和各种要素组成。一个综合的威胁信息聚合模型,就像一个软件系统服务一样,有输入层、处理层和输出层。输入层的数据来源来自不同的分类数据类型:代理流量、镜像流量、真实流量、主机数据、设备数据、扫描数据等。通过收集不同级别的威胁信息数据片段,可以根据分类威胁信息碎片的类型、价值权重级别和数据属性。以信息技术升级低信息威胁信息数据碎片。将具有不同属性的数据碎片组合起来,以提高威胁检测能力。代理流量:代理是一个总称。很多企业都有网关设备,七层或者四层,这个设备服务会产生流量相关的流量日志数据,有接入鉴权的功能。镜像流量:镜像流量比较常见。通过流镜像发送给威胁分析设备和分析服务,设备系统反馈威胁检测告警。真实流量:Nginx日志、蜜罐日志等真实服务的流量数据产生的登陆日志信息。主机数据:无论是probeAPM、ZabbixAgent、OSQuery、HIDS都会产生与主机相关的指标数据,这些数据的异常阈值也可以激活预测告警功能。设备数据:重要敏感设备产生的数据,自带异常数据监控。扫描数据:主动扫描收集的数据:端口、服务扫描等。层次划分:第一层:输入层(数据采集):上述各种服务和设备产生的数据出现在输入层。这一层的重点是数据的收集。如果没有数据的收集,在后续的横向和纵向分析工作中就没有数据可以分析和处理。第二层:处理层(数据处理):数据只收集不处理,只是一堆数据。数据处理层做了几件事,比如数据的快速反格式化。(Cutting)后期数据聚类统计细化的结构化。(Shaping)数据清理、过滤和标记。(处理)威胁情报数据可以有多种形式。基于流数据形式的信息,更适合使用流水线处理方式。在流水线处理模式下,根据不同的信息数据输入,在处理槽中部署不同的数据处理技能。单元。设备与技能:第三层:输出层(威胁发现):数据去伪造真存储后,根据已标注的标签进行策略分析,最后输出威胁信息数据根据策略分析。根据安全规则推送报警信息。处理后的威胁数据统计显示给用户。为什么这个模型用漏斗的形式来表达?因为威胁情报和去除误报的过程一般都是一个过滤信息的过程。威胁信息由多变少,误报逐渐减少。最后将过滤后的威胁情报汇总积累成区域威胁情报库,不断更新迭代。2.安全角色划分面对如此多的日志数据,如何组织这些数据,并从这些数据中发现有价值的信息,是对安全运维人员的一个挑战。整个威胁发现过程中,不同的人参与其中,在系统构建过程中扮演不同的角色。每种职业都有自己的长处和短处。在某些场景下,有的人适合对抗路,有的人适合后期打拼。不同职业的人有不同的威胁信息碎片组合,不同威胁碎片信息的属性,不同的职业有不同的解释和应用。安全运维:对于安全维护相关人员来说,最喜欢的体验就是从每天产生的原始威胁数据情报中的可疑信息中选择最重要、危害最大的问题优先报警,并找到相关责任人人推送报警信息。安全运维人员需要不断迭代创建安全策略和告警规则。数据运维:整理、集中各种可见的威胁信息日志,利用各种大数据工具合理存储数据,保证数据的完整性和有效性。安全开发:提供操作界面,所有可用的日志数据,提供查询界面,查询界面,完成信息查询交互。大数据算法:AI分析是证券分析的大脑。安全威胁的种类很多,比如DNS解析、僵尸网络、WEB,比如XSS反射、SQL注入等等。面对相同的威胁事件数据,存在多种检测方式,例如SQL注意力、XSS注入等威胁的发现方式:基于正则匹配。基于SQL注入模式的配对。基于自然语言处理算法。基于神经网络算法。同样是神经网络,具体使用的算法不同,样本不同,效果也不同,比如:LSTM,MLP等。无论是开源检测软件还是商业软件,都具备威胁分析和分析的功能告警,可作为正常网络环境下威胁事件的检测手段。商业软件的威胁分析过程是在黑盒中完成的,用户看不到具体威胁实现的方法和策略,是产品核心的一部分。而且,无论是商业软件还是开源软件,都存在误报和漏报。针对这种情况,在实践过程中,我们采取相应的方法进行处理。为了强化某些防御技能,加厚防御,有时需要叠加防御装备,叠加的防御装备不能相同。根据不同的攻击类型,在增加防御的同时,有减速的攻击防御方式,也有迷惑和眩晕的。对方的防御手段包括终结对方阻拦攻击的防御手段,抵抗对方矿控并迅速脱离控制的手段等等。1.过滤:交叉检查(垂直)叠加检测分析设备和服务,提取头部信息,尽可能消除误报。例如,我们可以通过流量镜像将网络中的部分流量导入到威胁分析系统中,分析系统会为我们生成各种类型的告警信息,但告警信息中会存在误报。我们可以多次使用冗余的威胁方法,对同一个威胁信息进行威胁重叠判断,减少误报。例如,我们可以使用自然语言处理对基于正则模式匹配的XSS分析结果进行确认,或者通过神经网络算法或开源威胁分析库对基于自然语言处理的告警进行多次分析。通过交叉检查执行误报过滤。交叉核对是对威胁信息进行多次核对、叠加确认的过程。因为每个威胁分析都可能产生误报,从而产生误报堆栈。这时,我们更应该关注各个分析方法的头部威胁分析结果。2.Correlation:关联性检查(横向)网络环境的监控手段不只有一种,我们可以从不同的维度对资产进行安全监控和保护:堆叠威胁分析设备和服务是为了提高发现威胁的准确率并减少误报。有时会在同一区域叠加使用多种不同的装备,以强化某种效果。如果A装备效果不够快,可以使用B装备。A看不到的,B看得见。如果A不容易部署,B就可以轻松部署。比如在同一个网络环境下:类型1:流量监控,我们可以将某个区域相关的网络流量镜像到网络巡检分析模块(开源业务),通过流量分析分析某个服务的运行情况可疑流量数据,威胁告警。类型2:部署蜜罐。我们会在重要服务器所在的环境部署蜜罐系统,通过蜜罐检测当前网段的可疑行为。类型三:添加审计监控,我们可以在服务器上安装一个类似OSQuery的主机审计组件来分析主机配置变化的可疑行为。第四种:主动扫描,我们可以定时对服务器发起主动扫描、服务扫描和端口扫描,通过扫描返回结果,建立漏洞数据库等相关条件,判断主机是否异常。类型5:访问控制。我们可以对服务主机建立访问控制,为通信集群生成白名单和黑名单,分析异常访问行为。类型6:威胁情报库,我们可以将访问服务的IP与威胁情报库进行比对,发现异常访问行为。横向威胁检测的方法可能有很多种,这里只是举几个例子。它们都有一个共同点:这些检测分析服务都会围绕同一个主体产生威胁告警信息,所以对于同一个IP主体,可以通过各种检测手段进行纵向确认,再横向结合其他分析的威胁数据模块比较。威胁确认和误报是可以的,但如果威胁事件发生在多种检测方式中,则减少了误报的可能性,具体的控制细节需要由实施者来控制。例如:一台机器同时有扫描行为,访问敏感端口,接触蜜罐,异常时间服务负载变化异常。在这一系列操作中,多个威胁事件同时指向一个主体,说明服务可能真的出了问题。如果利用各种设备来加强防御厚度,并且可以灵活的登入登出,可以终止控制,可以阻断访问,效果会更好。3.实现工具技术栈图2.威胁分析沙漏模型(技术栈)如果检测手段有多种,我们就必须有多种威胁情报。从技术工具层面来说,如果我们管理这些数据,如何挖掘、使用、驱动这些数据是一个问题。今天的开源社区已经变得异常强大。我们可以使用各种开源软件来构建我们的安全检测系统。每个人都使用相似的技术堆栈。ELK、Hadoop、Spark等工具很常见。您使用工具的技术非常普遍。领悟技术:技术属于技能的属性。不同职业的人在各自的领域都有自己特定的技能要素。人是技术技能的载体。实现工具:工具是构建服务的武器,武器有不同的属性。威胁发现系统是一个循序渐进的发展过程。在时间线上,根据规模和发展状况,使用合适的工具和武器来达到制胜的目的。当规模较小,处于发展初期时,可以使用通用的统计工具,ES单节点,Mysql数据,随着规模和时间的发展,适应海量数据,可以用更重的武器解决更复杂的需求。如果单个ES节点不能满足要求,则使用集群。如果一个集群不够,则使用多个集群。如果MySQL不够用,请使用ClickHouse。系统是一个从小到大的迭代过程,数据也是从单机到集群,从一个集群到多个集群。检测系统、设备、日志格式都在不断积累和增加,变得越来越复杂。但潜在的模式正变得越来越清晰。我们从实现的技术栈的角度来分析具体使用的技术手段。第一层。输入层:对于数据的输入和采集阶段,可以采用多种数据采集方式。Filebeat、nxlog、logstash、syslog等,各种可以轻松获取数据的手段都可以使用,看平台的不同。第二层。处理层:在数据处理之前,需要对数据进行存储,否则无法对数据进行分析。安全大数据中很重要的一点就是数据缓存,它解决了输入数据量太大无法处理的问题。ElasticSearch是最流行的数据存储方案之一,我们也不例外地使用ES来保存数据。使用ES的一个很大的好处就是我们在使用关系型数据库的时候不需要先创建一个表结构,可以快速的想到告警数据的采集。对于安全威胁数据,ES在前期收集数据的速度更快。高危告警数据理论上应该和流量数据不一样,有这么大的并发量,所以一般的ES就可以了,ES本身可以扩展吞吐量。我们还是担心驱动大量的日志数据,所以我们使用了ClickHouse。与其他大数据工具相比,ClickHouse使用起来更快更轻便,但是效果速度确实不错。我们可以在Clickhouse中标记威胁。如果数据水平达不到这个量,可以使用Mysql。其实ES也可以实现索引SQL查询。第三层。输出层:数据准备到位后,可以通过多种手段对数据进行分析、展示、告警。可以根据偏向的技术栈使用开源方案,比如商业BI分析工具superset等。沙漏模式就是让数据由多变少。人肉不可能一天处理几万个告警。4.流式威胁处理模型图3.威胁分析与处理流式模型威胁数据的湖泊和海洋是由数据河流汇聚而成。在早期的“数据流转”模式下,采集数据的操作灵活方便。因为数据无论是访问还是存储,都无法一步完成,所以更适合使用增量流模式数据处理。各种信息和数据,就像小河汇入湖泊,加起来越来越多,最终形成更大的数据势头。对于新的威胁检测手段的增加,灵活的增加一个新的威胁信息数据流,流入我们的数据池中即可。使用ES收集数据有几个优点。如果说结构化数据库是“定长表”,那么ES的存储就是“变长表”,数据的“字段”可以灵活增减。当输入段的数据结构发生变化时,数据结构不需要频繁更改字段的定义,表结构也不需要频繁修改。利用这种灵活性,可以在此阶段对数据进行重塑,从而降低数据的维护成本。使用ClickHouse和MySQL数据库进行结构化查询。可以用SQL解决的问题,其实不需要写很多脚本,可以减少脚本量。SQL本身可以作为一个非常强大的DSL来使用。对于宿主审计应用OSQuery,支持SQL审计也是提高审计效率的一种方式。五、威胁数据处理与过滤模式(PULL、PUSH)图4传统威胁处理模型A面对海量的各类数据,如何处理数据?方法是有针对性地一一处理。从历史发展迭代,基本上有两种模式可以归类。威胁分析的实际应用本质上是两个操作:威胁垂直多威胁判定和单数据流确认。威胁数据在多个分析模块之间的横向比较关联。1、A/B模式数据采集与威胁分析流程PULL模式:分析服务主动拉取各威胁分析模块的威胁告警信息数据,集中监控模式分析。各种告警需要存储在不同的结构体中。(多表异构)PUSH模式:每个威胁过滤模块针对不同的告警进行垂直过滤,然后将过滤后的数据按照相同的结构推送到集中的威胁数据表中。(单表同构)图5传统威胁处理模型B的实际情况是威胁分析模式两种情况并存。随着数据集中处理的演进,这两种模式最终混合在一起,只是在不同的场景下使用不同的分析模式。2、A/B模式与PULL处理模式相比的优缺点:优点:审计分析速度快,PULL模式最快,不同分析模块之间的威胁数据互不干扰,处理异构数据,操作方便很多相关的数据,但是针对单一威胁的数据流审计,没有那些相关的数据操作。缺点:数据不集中,相对不利于统计,需要各种SQL和脚本关联。PUSH处理方式:优点:如果对单个Stream数据流进行过滤,准备一份额外的数据处理副本,告警威胁信息过滤后,在本地保存一份,在中心表中保存一份同构数据.之后进行威胁关联统计时,只需操作一条数据即可,减少了对关联数据的多次操作。缺点:威胁数据过于耦合。6.CollisionTable:ThreatDetectionMode图6.ThreatAnalysisCollisionTableModel如果我们使用PUSH模式收集各种数据,我们可以整合来自不同标记源的数据。在对威胁数据进行格式化之前,我们对不同的威胁数据进行了一定程度的垂直过滤。然后把可能是真实存在的威胁放到我们的中心威胁情报表结构中:为了方便记忆,威胁比较模式称为:碰撞表。所谓碰撞表就是建立一个具有统一属性结构的威胁告警二维关系表,将不同设备和业务的告警数据集中存储。威胁事件的数量用于判断威胁的严重程度。简单来说,同一个IP上发生的威胁事件越多,情报来源来自不同的服务和设备,威胁就越大。PULL的模式是关联数据,通过脚本读取结构数据关联,通过表关联。PUSH处理方式生成的集中碰撞表根据威胁的共同属性收集威胁信息。不管是哪种威胁,都是威胁。不同的是威胁等级和威胁分析的来源不同。如果我们在碰撞表中,发现同一个IP多次出现,来自不同的威胁分析模块,威胁等级还是很高的。各种威胁事件都与这个IP有关,所以你需要关注这个IP。我们对不同的威胁级别打分,对同一个IP的分数累加得到一个分数。最后根据评分,匹配不同的处理级别和告警级别。对于攻击者情报,我们可以在积累的内外部威胁情报中寻找可追溯的历史数据。关于受害人的信息,我们可以在CMDB资产系统中找到资产负责人。对爆破表中的威胁信息进行分类、统计、可视化,对安全运维人员进行告警提醒。以上是威胁信息可以通过沙漏威胁处理模型的例子,是威胁数据信息处理策略的例子。7.总结不同尺度的环境:输入层:从输入源收集的数据信息量,以及数据量。处理层:数据分析处理的逻辑复杂度。输出层:信息提示的多样性。综合确定保护系统的保护能力和建设成本。以往在使用ES和ClickHouse大数据工具的实践中,我们迭代演进,总结出这种沙漏式的威胁处理模型,进而探索一些共通的内容。本文不涉及太多具体的代码和工具的使用方法。