导读:宜信结合自己的实际情况,实现了一套集采集、分析和存储为一体的安全数据平台——流沙平台。本文重点介绍一下流沙平台的架构,相比于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自主开发的一套支持分布式的预处理框架,通过编写配置即可实现自定义用户的输入输出以及数据所需要实现的功能。通过编写