0x01 概要
信息安全体系构建中流量监听是一种常见的防护手段, 从流量抓取到日志落地,到日志分析到威胁报警,相应产品基于流量分析模式,从最上层的处理逻辑来看是相近的, 使用Suricata还是Snort处理流程类似接近,最粗暴的理解他们都属于“大型字符串处理过滤系统”。
生产中会使多家厂商的产品配型开源产品使用,或自主开发,无论采用那种方案,我们都可以抽象出一个共通的顶层流量数据处理模式,典型的流量过滤与日志分析处理流程。我们有基于Tenable产品的实践经验, 这种经验展开也可以横向扩展到其它的同类产品上、开源产品上、自主研发产品上。如果说闭源商业软件系统和开源社区软件系统的区别,除了产品本身,产品的生态和后期支持也是不一样的,我们在开源软件使用中得到了同行和社区的很多帮助。我们在Tenable的使用实践过程中,得到专家级的指导, 这些对我们使用产品和理解应用产品起到了莫大的帮助。但为什么要单独说Tenable呢,因为此系统在设计理念上独到处,也有很典型的部分,因些我们选择用这个系统进行举例说明,流量分析系统一些共性内容。
0x02 基本处理模式
从我们的角度看,流量分析型的安全威胁系统有5个基本任务要完成:
1. 流量获取:如何抓取网络流量内容是首要基础功能,只有抓取流量数据,得到traffic交通流量,才能去通过应用过滤规则取得威胁事件数据。(上图值得注意的是我们使用了流量分发设备。)
2. 流量过滤:在流量获取阶段,对数据进行过滤成本开销比较大,通过对滤过滤条的件设定,规则解析,规则下发执行,可在在流量读取阶段对数据进行过滤,异常检测。问题是过滤规则越多系统效率越低,甚至产生时间瓶颈或是延迟。
3. 数据落地:流量获取阶段,分析数据耗时耗性能,如果我们将数据缓冲下来,将日志数据落地,准实时的分析数据,一方面可以减轻系统负担, 另外数据落地后可以应用数据分析模型和关联聚合数据,做基于算法的更精准的异常捕获分析,所以要把数据保存一定周期,数据保持不挥发。
4. 数据分析:单纯保存数据不是目的,还要在日志数据中挖掘出威胁事件的特征数据,如果流量监听算先知性预警处理,将风险提前预告防患于未然之中。如果过滤是针对网络流量实时规则配对的,数据分析就是对流量日志落地后再次深入的信息挖掘。
5. 威胁报警:流量数据作为系统的输入并不直接产生收益,当系统产生有效的威胁报警,就能体现出系统威胁感知价值,将威胁情况第一时间通知责任相关人,防患于未然。如果主机威胁定位于威胁动作执行阶段算“后知后觉”,那在流量监听规则过滤阶段报警,或是在准数据分析阶段报警,能不能算是“先知先觉”是个问题。
0x03 “流”经典设计处理模式
我们用“流”的工作模式来解释介绍流量威胁情报系统的工作过程,用Stream A和Stream B两个“流”概括系统处理的五个组成部分:
关于流量威胁系统的核心指标:漏报率和误报率。
漏报率:在Stream A阶段进行对流量的过滤 ,可以是与历史累计聚合数据无关碰撞的,如果不考虑黑白名单机制,不进行瞬时关联统计,过滤是基于异常规则碰撞的,而规则是否完备,决定了威胁的漏报率高低,如果不是自学习, 系统的异常规则都是人为来定义的。
误报率:在Stream B阶段,基于Traffic流量规则过滤的威胁预判结论,在一定有限的数据集合范围的,与规则定义的多少成正比。假定规则完备理想状态下没有漏报,但会存在误报,降低误报有几种手段:
1:多个威胁系统报警比较确认。
2:基于聚合数学统计模型进行辅助判断。
3:特征标签打分,积分累计判断。高于多少分才报。
4:对威胁payload进行第三方库再确认。
一定还会有其它大类别的方法来解决,对已有报警进行误报确认的更好方法。规则策略构建是动态变化的过程。
有些朋友的系统突然被入侵后,我们可以一个环境下部署多个安全系统,A系统和B系统都有基本的威胁异常分析规则,但有些规则是对外不可见的,有的支持自定义插件,有的不支持自定义规则。系统间的规则有重合或不重合,我们横向比较系统的报警结果,系统间重合的报警应该是被重示的。数据情况往往是多样性,关联性的。蜜罐、防火墙、流量分析,同时作用于一个网络环境,对他们来说, 输入的数据是一样。他们会从不同的角度发现威胁。如果报警高度重合,就越可能是高威胁。
0x04 流量监听与蜜罐监听的异同
蜜罐可以对网络异常行为流量进行一种守株待兔式的监听,蜜罐部署利用交互机的端口聚合trunk模式,把不同的VLAN网段中的一个IP聚合到一台机器的入口端口中。
设定多IP和标记,接收不同VLAN中的流量访问,ARP级与负载均衡DR模式类似的技术。而监听流量是要把一定总合的流量推送到不同的监控机,关系形式多对一,多对多。 每台监控机上,使用相同的过滤规则,规则与异常行为一对一对应,一个规则对应一个威胁事件ID。在Tenable系统中分为SC、NC。名字是代号,任务内容都是监听与存储分析。
0x05 实践与课题解决
如上所说,威胁分析系统本质是一个“大型字符串处理系统“。流量变字符串文件,威胁匹配和文件就是字符串按”规则“的查找过程。Tenable是一款优秀的产品,特色于具备独特设计理念和专家支持。Tenable规则系统是面象用户友好的,用户可以自定义插件,增加检测规则,扩展系统的功能。同时其它系统一样,也要面临多机部署配置分发的场景,针对这点提出解决方案是,基于Ansible进行自动化分配下发。如果你使用Suricata面临面样境遇的话,也可以考虑这种方案尝试。
对于流量监听,辅助分析工具必不可少,在调试设备,监听实际流量,可以是使用像Wireshark、TcpDump、WinDump这些工具。Wireshark是经典工具。可以方便的在网上找到类似于《Wireshark网络分析从入门到实践》这种命名规则的书, 找一本好的出版社出的书,对流量日常分析工作有事半功倍的效用。
关于日志数据落地之前已经介绍很多,紧的值得关注的是Graylog正式发行了第三版:Graylog3。很多威胁分析系统都使用了ES作数据持久化,Graylog应用ES存储安全数据相对比较方便,作为一个基于ES的管理信息系统有自身的特色。
对于最近可能被入侵生产系统影响的朋友,提供一个开源安全系统列表,可以用些对自己的系统进行先期加固: Graylog、Snort、Suricata、Wazuh、Moloch、Ansible、OpenVAS等,希望可解燃眉之急。
0x06总结
同网络环境下,如何部署多种威胁检测系统,抽象出核心处理模型, 归纳系统关键处理任务,是因近期非安全领域朋友遭遇网络入侵事件。突如其来的状况如何快速选型安全系统部署加固生产环境,快速保护安全资产势在必行,本文灵感也源于Tenable生产实践,个人观点,仅供参考!
来源:freebuf.com 2019-03-09 12:16:56 by: 糖果L5Q
请登录后发表评论
注册