文档章节

流沙:宜信安全数据平台实践

宜信技术学院
 宜信技术学院
发布于 06/13 11:44
字数 3251
阅读 11
收藏 0

导读:宜信结合自己的实际情况,实现了一套集采集、分析和存储为一体的安全数据平台——流沙平台。本文重点介绍一下流沙平台的架构,相比于OpenSOC做了哪些优化及改进的地方以及流沙平台在落地过程中的经验总结。

前言

OpenSOC是思科在BroCON大会上亮相了的一个安全大数据分析架构,它是一个针对网络包和流的大数据分析框架,是大数据分析与安全分析技术的结合, 能够实时的检测网络异常情况并且可以扩展很多节点,它的存储使用开源项目Hadoop,实时索引使用开源项目ElasticSearch,在线流分析使用著名的开源项目Storm。

宜信结合自己的实际情况,同样实现了一套集采集、分析和存储为一体的安全数据平台——流沙平台。本文重点介绍一下流沙平台的架构,相比于OpenSOC做了哪些优化及改进的地方以及流沙平台在落地过程中的经验总结。

一、流沙平台架构

整个平台架构分了多个层次,采集层、预处理层、分析层、存储层和响应层。层之间若需要,均使用kafka作为消息队列进行数据传递,保证了传输过程中的数据可靠。

1.1 采集层

采集层主要用于数据采集,然后将采集的数据统一发送至kafka。采集的数据主要包括:

  • 流量数据——使用packetbeat进行解析

  • 日志数据——文件形式的日志使用filebeat进行采集;syslog形式的数据采用rsyslog进行采集

  • 运维数据——为方便故障排查和集群性能监控,使用metricbeat采集流沙平台集群服务器的运维数据

在实际运营的过程中,我们发现packetbeat在攻击场景下存在一些缺陷,并给出了相应的解决办法,比如:

  • 网页压缩会导致body乱码

  • 若没有content-type字段则不会解包

  • 位于body部分的参数会被添加进params字段中

  • connect请求导致的urlparse报错

  • 不规范的url编码字段导致的urlparse报错

1.2 预处理层

流沙平台的预处理程序(以下统称为“ybridge”)为宜信基于golang自主开发的一套支持分布式的预处理框架,通过编写配置即可实现自定义用户的输入输出以及数据所需要实现的功能。通过编写插件可以为每一种数据进行单独的处理操作,能够满足实际使用过程中的各种需要。

ybridge具有以下优点:

  • 功能灵活

  • 性能较高

  • 无依赖

  • 支持冗余部署,可靠性高

  • 支持docker/vm部署方式,易于扩展

  • 能够将运行数据发送至metricbeat,并进行性能监控

ybridge的主要工作包括以下几点:

  • 支持gzip解码

  • 数据格式化

  • 字段扩展

  • 字段提取

  • 敏感字段打码

  • 日志情报化

  • 数据加解密

  • 删除无用数据

  • 数据压缩

1.3 分析层

作为大数据分析平台,数据分析是核心。虽然,分析可以在kibana或者单独写程序来实现,但是这种方式需要从ES来拉取数据然后再进行分析,一方面时效性会较差,另外一方面过于依赖ES集群会导致平台稳定性变差。 为此,流沙平台基于spark实现了一套分析引擎,该引擎以kafka为数据源,并将分析的结果存放在ES中。可以通过人工的方式在kibana上分析出规则,然后将该规则应用到分析引擎上。

在分析层实现的功能包括:

  • 资产发现

  • 攻击发现

  • 信息泄露

  • 内部威胁溯源

  • 业务风控

1.4 存储层

存储层包括两个ES集群(ES_all集群和ES_out集群)和一个hbase集群。之所以使用两个ES集群,是因为两者功能不同,避免由于一方面的原因而导致整个集群不可用,提高平台稳定性。~ES_all集群用于存储全量的原始数据,方便人工分析和溯源ES_all集群用于存储全量的原始数据,方便人工分析和溯源ES_out集群用于存储分析后的结果数据,方便程序调用~

ES存放的是短期的热数据,hbase存放的是长期的冷数据。

数据在hbase中以时间戳为单位,一个rowkey存储一秒钟数据。用户可以通过ybridge将hbase中某段时间内的冷数据回放至kafka,再进行后续的操作,比如分析或者溯源。

1.5 响应层

响应层用于对用户的数据进行分析处理并响应。响应层主要包括:

kibana:用于数据搜索、监控展示、攻击溯源等

监控可视化:通过图标的方式在大屏上呈现出当前最主要的风险,可以更直观的了解到企业正在面临的安全威胁。

alertAPI:通过监控发现问题之后,往往需要有一个后续动作,比如自动化响应或者告警。

调用后续动作可以有多种途径,比如:

  • 编写程序分析并告警

  • watcher(收费。elastic官方的工具)

  • Elastalert(免费。基于python的报警框架)

后续动作则可以包括:

  • 短信告警

  • 邮件告警

  • 自动拦截恶意IP

  • 数据的二次加工并重新写入ES

jupyterhub:从ES集群中提取数据并使用python进行离线的数据分析,多人数据分析平台。

二、与OpenSOC相比

OpenSOC同样存储了流量数据和日志数据,数据采集之后先发送到kafka,然后通过storm进行格式化和字段扩充之后分别写入hive、ES和HBase,最后通过webservise或者分析工具对数据进行分析。流沙平台架构和OpenSOC基本相同,但是在上图所示的几处会有细微差异,下文将分别进行描述。

2.1 使用beats进行数据采集

在数据采集方面,流沙平台大量使用了beats。beats为Elastic官方出品,社区活跃度比较高,性能和功能都很优秀。

网络流量使用packetbeat进行网络数据解析,日志文件采用filebeat进行采集,系统性能监控和ybridge性能监控使用的是metricbeat。beats具有以下优点:

  • 性能较高

  • 易于上手

  • 与ybridge使用相同技术栈,易于功能扩展或改造

  • beats版本同elasticsearch同步更新

2.2 处理层拆分

OpenSOC的实时处理部分包含了多对数据的分析、丰富、分析等内容,流沙平台按照功能将这块分为了两层,第一部分是预处理层,第二部分是分析层。预处理层采用的是自研发的ybridge程序,主要实现ETL功能,支持横向扩展,时效性和处理速度可以保证预处理层的结果可以直接存储也可以扔给kafka,进行下一次处理。分析层有一套基于spark实现的分析框架进行分析,相比于storm,spark虽然的时效性虽然没有那么高,但是spark能够更好地进行聚合分析、而且天生兼容机器学习和图计算,非常适合数据分析,而storm实现类似的功能成本较高。

2.3 舍弃hive

OpenSOC中一份数据会分别存储到hive、hbase、ES三处,这样无疑会有巨大的存储资源的投入,考虑到hive的查询速率较慢,而数据可以通过ES直接分析或者抽取出来之后再做分析,所以流沙平台没有使用hive存储。短期数据直接在ES里面查找,长期的数据从hbase拿出来之后再使用。这样的架构会更适用于中小型企业,在功能和资源之间取了一个平衡点。

2.4 数据回放方式不同

OpenSOC在hbase中存储的是pcap文件,而流沙平台存储的是预处理格式化之后的json格式的数据,在进行数据回放的时候会更加方便而且更节省存储空间。

OpenSOC过webserver来实现数据的回放,而流沙平台通过ybridge来实现回放。

2.5 与威胁情报紧密结合

OpenSOC在实时处理层进行了数据的丰富,流沙平台除此之外还接入了威胁情报。威胁情报对于企业安全的作用越来越大,能够帮助企业发现潜在的安全问题

对于流沙平台来说,一方面,将内部的告警转化为内部情报,另外一方面将内部情报和外部情报结合形成宜信独有的威胁情报,并将其反哺给日志和流量,帮助企业安全分析人员更方便的进行数据分析和决策。

三、落地方面的经验

3.1 平台高可用

流沙平台最重要的是能够提供稳定可靠的数据服务,因此,平台高可用非常重要。首先,整个平台除了beats和kibana,均为冗余部署,甚至流沙平台的日志接受服务器也采用了双活部署的方式;其次,预处理程序可以随时启停,实现程序的平滑升级,用户无感知;最后,为了确保稳定性,流沙平台添加了大量监控告警,比如:

  • ES集群异常监控

  • 数据丢失监控

  • 丢包率监控

  • 服务存活状态监控

3.2 如何解决丢包问题

在解析网络流量的时候,最大的问题就是丢包。首先需要做的是能够发现丢包,可以定期发送100个指定UA的数据包,然后在ES端统计接收到多少个数据包,若是丢的数量超过一定数值则告警。

至于丢包的原因可能有很多,这里主要分析软件丢包的情况。解决方案也有很多,大的来说有以下几个思路:

  • 提高解析效率(比如使用pf_ring或者DPDK)

  • 硬件分流

  • 软件分流

  • 谨慎选择镜像接入点,不建议接入核心数据,可以大大减少解析数据量

在选择解决方案的时候建议根据自身企业的实际情况,第一种效率最高,但是pf_ring为收费软件,而DPDK往往需要开发,都需要付出一些成本。除此之外,也可以通过硬件分流或者软件分流的方式来解决。硬件分流由于其更加简单而且可靠,比较推荐。

3.3 服务集中管理

为了能够让这套平台落地,需要到大量的服务器,不同服务器上各自运行不同的程序,因此需要一套集中化的管理手段,为此,流沙平台使用了以下两个工具:

  • gosuv:gosuv是一个go写的分布式的supervisor框架,可以通过web页面远程管理服务器上的程序。

  • consul:consul则是一个分布式的微服务框架,实现了服务注册、服务发现以及统一配置管理等功能。

gosuv + consul的方式可以很方便的实现程序的集中管理,和程序状态监控。

总结

数据是安全分析的基础,有了数据以后,威胁情报、态势感知、黑客画像、业务风控、攻击溯源、攻击识别、资产发现都变得并非遥不可及。流沙平台结合宜信实际的场景,从效率、成本、功能三者之间综合考量,对OpenSOC进行了一些改良并落地。

通过流沙平台,安全工作人员可以将大部分精力专注于数据分析上,弥补了商业安全产品的不足,更好的帮助安全防护同学全面的了解企业的安全状态。流沙平台不仅仅是一个数据平台,更是宜信现有安全措施的重要补充。

作者:安全开发 高杨

首发:宜信安全应急响应中心

© 著作权归作者所有

宜信技术学院
粉丝 54
博文 69
码字总数 227846
作品 4
东城
私信 提问
亚信安全与新华三达成战略合作联手打造"更安全"的云数据中心

【2016年7月19日】新IT解决方案领导者新华三集团(简称新华三)与全球云与大数据安全领域领导者亚信安全联合宣布,双方将在产品创新、技术服务、渠道营销等领域展开全面的战略联盟合作,积极...

玄学酱
2018/05/21
0
0
亚信安全受邀出席新华三2017领航者峰会 携手共拓安全圈 推动人工智能安全行业应用

4月7-9日,新华三“H3C Navigate 2017领航者峰会”在杭州举行,亚信安全作为新华三战略合作伙伴受邀出席。在峰会上,亚信安全与新华三表示将会采取绝对信任的合作模式,通过业界独有的联合解...

玄学酱
2018/04/13
0
0
亚信安全与新华三达成战略合作联手打造“更安全”的云数据中心

今日,新IT解决方案领导者新华三集团(简称新华三)与全球云与大数据安全领域领导者亚信安全联合宣布,双方将在产品创新、技术服务、渠道营销等领域展开全面的战略联盟合作,积极提升我国云计...

玄学酱
2018/05/21
0
0
亚信安全承办2017四川省信息安全技术高峰论坛

近日,由成都安全可靠信息技术联合会、四川省计算机信息安全行业协会主办,亚信安全承办的2017四川省信息安全技术高峰论坛于成都隆重举行。亚信安全董事长何政出席开幕式,并表示城市级网络空...

玄学酱
2018/04/13
0
0
亚信安全中标合肥公安局警务云平台 为警务信息化应用"云化"保驾护航

【2016年6月22日】近日,安徽合肥市公安局"警务云"中标结果揭晓,亚信安全服务器深度安全防护系统(Deep Security)中标警务数据云中心和警务智能语音云平台(二期)项目中的防毒子系统。在警...

玄学酱
2018/05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

局域网能互相ping通,ubuntu虚拟机不能上外网

【问题】 桥接模式老是无法上网,查看本机IP发现被分配了一个私网地址,猜测应该是虚拟DHCP服务器没有打开,于是查看Ubuntu的网络配置: /etc/network/interfaces 发现没有dhcp配置的信息,只...

tahiti_aa
36分钟前
1
0
以太坊助记词PHP开发包简介

以太坊助记词PHP开发包用来为PHP以太坊应用增加助记词和层级确定密钥支持能力。下载地址:以太坊助记词php开发包 。 1、开发包概述 以太坊助记词PHP开发包主要包括以下特性: 生成符合BIP39...

汇智网教程
昨天
2
0
系统监控-分布式调用链Skywalking

1. 为什么要使用分布式调用链技术? 随着公司业务的高速发展,公司服务之间的调用关系愈加复杂,如何理清并跟踪它们之间的调用关系就显的比较关键。线上每一个请求会经过多个业务系统,并产生...

秋日芒草
昨天
4
0
告诉自己的一些建议

摆脱学生心态 尽快发挥自己价值,让公司感知自己的存在,才是王道 选择比努力重要 自己附着的平台的经济体要是一个快速崛起的行业 转行趁早,年龄越大选择成本越高 趁早大量试错,学习新领域...

林怡丰
昨天
3
0
Windows下安装Redis

下载地址: 3.0老版已不维护更新:https://github.com/MicrosoftArchive/redis/releases 4.0版 https://github.com/tporadowski/redis/releases 中文官网:http://www.redis.net.cn/ https:......

Aeroever
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部