Portfolio

流量威胁分析系统与Tenable生产实践

tenable

0×01 概要

信息安全体系构建中流量监听是一种常见的防护手段,从流量抓取到日志落地,从日志分析到威胁报警,相应产品基于流量分析模式,从最上层的处理逻辑来看是相近的,使用Suricata还是Snort处理流程类似接近,最粗放的方式去理解他们,这些系统都属于“大型字符串处理过滤系统”。

实际生产中可能会使多家厂商的产品配型开源产品使用,或自主开发,无论采用那种方案,我们都可抽象出一种共通的顶层流量数据处理模式,典型的流量过滤与日志分析处理流程。我们有基于Tenable产品的实践经验, 这种经验展开也可以横向扩展到其它的同类产品上、开源产品上、自主研发产品上。如果说闭源商业软件系统和开源社区软件系统的区别,除了产品本身,产品的生态和后期支持也是不同,我们在开源软件使用中得到了同行和社区的很多帮助。我们在Tenable使用实践过程中,得到专家级的指导, 这些对我们理解产品并应用于实践中起到了莫大的帮助,为什么要选择Tenable举例呢?因为此系统设计理念独到,功能经典,因些我们选择用这个系统进行举例说明,介绍流量分析系统中存在的共性内容。

0×02 基本处理模式

从我们的角度出发,流量分析型安全威胁系统有5个基本任务要完成:

1.流量获取:如何抓取网络流量内容是首要基础功能,只有抓取流量数据,得到traffic交通流量,才能去通过应用过滤规则取得威胁事件数据。(上图值得注意的是我们使用了流量分发设备。)

2. 流量过滤:在流量获取阶段,对数据进行过滤成本开销比较大,通过对滤过滤条的件设定,规则解析,规则下发执行,可在在流量读取阶段对数据进行过滤,异常检测。问题是过滤规则越多系统效率越低,甚至产生时间瓶颈或是系统延迟。

3. 数据落地:流量获取阶段,分析数据耗时耗性能,如果我们将数据缓存下来,将日志数据落地,准实时的分析数据,一方面可以减轻系统负担, 另外数据落地后可以应用数据分析模型和关联聚合数据,做基于算法的更精准的异常捕获分析,所以要把数据保存一定周期时间,在数据的生命周期内保持数据不挥发。

4.数据分析:单纯保存数据不是目的,还要在日志数据中挖掘出威胁事件的特征数据,如果流量监听算先知性预警处理,将风险提前预告防患于未然之中。如果过滤是针对网络流量实时规则配对的,数据分析就是对流量日志落地后再次深入的信息挖掘。

5. 威胁报警:流量数据作为系统的输入并不直接产生收益,当系统产生有效的威胁报警,就能体现出系统威胁感知价值,将威胁情况第一时间通知责任相关人,防患于未然。如果主机威胁定位于威胁动作执行阶段算“后知后觉”,那在流量监听规则过滤阶段报警,或是在准数据分析阶段报警,能不能算是“先知先觉”是个问题。

0×03 “流”经典设计处理模式

我们用“流”的工作模式来解释介绍流量威胁情报系统的工作过程,用Stream A和Stream B两个“流”概括系统处理的五个组成部分:

关于流量威胁系统的核心指标:漏报率和误报率。

漏报率:在Stream A阶段进行对流量的过滤 ,可以是与历史累计聚合数据无关碰撞的,如果不考虑黑白名单机制,不进行瞬时关联统计,过滤是基于异常规则碰撞的,而规则是否完备,决定了威胁的漏报率高低,如果不是自学习, 系统的异常规则都是人为来定义的。

误报率:在Stream B阶段,基于Traffic流量规则过滤的威胁预判结论,在一定有限的数据集合范围的,与规则定义的多少成正比。假定规则完备理想状态下没有漏报,但会存在误报,降低误报有以下几种常见手段:

1:多个威胁系统报警横向比较确认。

2:基于聚合数学统计模型进行辅助判断。

3:特征标签打分,积分累计判断,高于多少分才报。

4:对威胁payload进行第三方库再确认。

一定还会有其它大类别的方法来解决,对已有报警进行误报确认的更好方法,规则策略是一个动态变化的过程。

有些朋友的系统突然被入侵后,我们可以在一个环境下部署多个安全系统,A系统和B系统都有基本的威胁异常分析规则,但有些规则是对外不可见的,有的支持自定义插件,有的不支持自定义规则。系统间的规则有重合或不重合,我们横向比较系统的报警结果,系统间重合的报警应该是被重示的。数据情况往往是多样性,关联性的。蜜罐、防火墙、流量分析,同时作用于一个网络环境,对他们来说, 输入的数据是一样。他们会从不同的角度发现威胁,如果报警高度重合,就越可能是高威胁。

0×04 流量监听与蜜罐监听的异同

蜜罐可以对网络异常行为流量进行一种守株待兔式的监听,蜜罐部署利用交换机的端口聚合trunk模式,把不同的VLAN网段中的一个IP聚合到一台机器的入口端口中。

设定多IP和标记,接收不同VLAN中的流量访问,ARP级与负载均衡DR模式类似的技术。而监听流量是要把一定总合的流量推送到不同的监控机,关系形式多对一,多对多。 每台监控机上,使用相同的过滤规则,规则与异常行为一对一对应,一个规则对应一个威胁事件ID。在Tenable系统中分为SC、NC,名字是代号,任务内容都是监听与存储分析。

0×05 实践与课题解决

如上所说,威胁分析系统本质是一个“大型字符串处理系统“。从流量变字符串文件,威胁匹配就是字符串按”规则条件“的查找特征子串的过程。Tenable是一款优秀的产品,特色于具备独特设计理念和专家支持。Tenable规则系统是面象用户友好的,用户可以自定义插件,增加检测规则,扩展系统的功能。同时其它系统一样,也要面临多机部署配置分发的场景,针对这点提出解决方案是,基于Ansible进行自动化分配下发。如果你使用Suricata面临面样境遇的话,也可以考虑这种方案尝试。

对于流量监听,辅助分析工具必不可少,在调试设备,监听实际流量,可以是使用像Wireshark、TcpDump、WinDump这些工具。Wireshark是经典工具。可以方便的在网上找到类似于《Wireshark网络分析从入门到实践》这种命名规则的书, 找一本好的出版社出的书,对流量日常分析工作有事半功倍的效用。

关于日志数据落地之前已经介绍很多,紧的值得关注的是Graylog正式发行了第三版:Graylog3。很多威胁分析系统都使用了ES作数据持久化,Graylog应用ES存储安全数据相对比较方便,作为一个基于ES的管理信息系统有自身的特色。

对于最近可能被入侵生产系统影响的朋友,提供一个开源安全系统列表,可以用些对自己的系统进行先期加固:Graylog、Snort、Suricata、Wazuh、Moloch、Ansible、OpenVAS等,希望可解燃眉之急。

0×06总结

同网络环境下,如何部署多种威胁检测系统,抽象出核心处理模型, 归纳系统关键处理任务,是因近期非安全领域朋友遭遇网络入侵事件。突如其来的状况如何快速选型安全系统部署加固生产环境,快速保护安全资产势在必行,本文灵感也源于Tenable生产实践,个人观点,仅供参考!