企业旁路部署安全监控方案

一、前言

先废话一下,可跳过。最近一直研究企业安全监控方案,奈何,垂直部署(就是在原有的项目服务器中加入一台服务器作为监控服务器)可能会影响业务。几十台服务器,跑着解耦的项目,着实不敢乱来,怕影响了线上的商户和客户。这锅,真特么不敢背,要是出问题背下来,大概可以拿着饭碗回家吃饭了。

所有,从旁路部署吧,哪怕安全监控服务器挂了也没关系,不影响业务,最主要是,安全监控服务器随时随地的方便重启,折腾。

 

二、什么是垂直部署和旁路部署。

垂直部署:

利:能够实时监控数据流、分析数据并拦截恶意请求、完完全全融入到项目中的参与者角色

弊:变更规则需要重启服务、异常情况挂了影响业务、调试不方便

旁路部署:

利:规则变更及时生效、怕个卵业务影响、感觉监控丑就随时动手、完整的旁观者角色

弊:不能对请求做拦截处理,换句话说,它只是一个旁观者。

 

三、方案

1.未执行方案:部署nginx 1.13.4版本,添加mirror模块(镜像模块就是用来分发流量的)+ waf+elk

这个方案性能损耗小,7层转发请求,对转发出去的请求后的响应自动丢弃(happy)这就是mirror模块的好处。

蛋事,运维用了openresty,openresty虽然是linux内核,但是,版本没更上,并木有mirror模块,换nginx最终会导致自行添加的一下lua脚本废了…. 没辙,夭折了的方案。但是此方案用作初期的旁路部署,妥妥的方便。

附上mirror工作原理

 

 

2.已经测试中的方案

Packetbeat + Elasticsearch + kibana

这个方案怎么说呢,packetbeat支持多种协议和第三方协议的添加,配置文件里可直接配置你要监听的协议,这货还自带心跳检测监听主机的存活状态.属于四层转发数据,对于性能有影响,不占用内存和交换区,但是会占用CPU资源

其工作原理如下图:

获取网络通讯数据

解码网络协议(因为支持多种协议,所以,它得把捕获的数据解码后,匹配对应的协议,然后转发给es,敲黑板:这里是损耗性能的关键)

关联请求与响应

提取需要的信息(packetbeat.template.json,修改这个模板中对应的协议信息可提取指字段数据)

整理集合成json数据,发送到ES

发送到ES之后,通过Kibana做成自己想要的图出来,监控http中需要的信息画像。

配置方面Packetbeat + Elasticsearch + kibana百度断断续续能凑齐一篇完整的文章,这里就不多赘述了。