眼见为真是我们在处理大多数判断的时候采取的一个有效措施,这条基本的判断方法也许存在出入, 但是通过视觉的确能增加我们处理信息的速度,提升我们决策的准确性。这一篇博文我们还是继续来探讨如何进行数据可视化, 如何把网络中的流量进行汇总分析,最终以一张美丽的页面展示在我们面前。
在上一篇博文中, 我介绍了sflow+flowRT的组合,一个用来收集网络流量, 一个用来提供流量的展示页面。这些都是一些开源的解决方案。不要因为公司有钱,就小瞧开源化方案。我相信随着云平台的开花结果, 开源化的解决方案还是会绽放出美丽的花朵。因为云环境不大可能让你把一个硬件产品搬进云服务商的机房,唯一能做的就是在虚拟环境里面假设应用级别的安全平台。
今天我们一起来看看如何使用大名鼎鼎的ELK组件来搭建流量可视化平台,我重点介绍的是如何来玩转网络安全产品, 如何搭配使用,提供最经济的网络安全管控手段。里面涉及的配置可能不是特别的详细,我给出的是思路和玩法,融汇贯通了,可以去敲任意一家大门(博客)去学习copy配置。
我们还是采用hsflow的方式来采集主机层面的流量, 然后hsflow把流量信息甩给logstash,logstash稍作加工之后转发给E+K去做搜索和可视化的展示。
1, Hsflow的安装大家可以到官方网站上去下载适合平台使用的应用,进行安装。 也可以参考我的上一篇博客:
信息安全体系建设☞流量可视化(2)sflow
也可以访问hsflow的官网,或者各大博客:
hsflow官网
2, logstash 是一款收集,处理,发送log信息的工具。是ELK的二当家的, 里面绝大部分的配置都可以进行自定义, 所以关于hsflow里面配置collector端口的部分, 可以自定义指定端口, 可以使UDP6343, 也可以是其他吉祥数字。
a) 下载logstash,我们可以直接去ELK的官网下载, 不过就是一个慢字了得,也可以使用国内的镜像站点。重要的内容要注意,Logstash不是越新的版本越好,由于兼容性, 我开始安装了7.8的版本, 后来又换回到了6.8的版本。
ELK官网下载站点
国内镜像下载站点:
这里面不仅仅是有logstash, 还有elasticsearch 和kibana。另外两个工具, 我们也是需要的。
b)配置logstash的注意事项
1>logstash 版本不要选择太新的版本, 我选择的是6.8的,在测试中是没有问题的。
2>为了排查配置中可能存在的问题, 我把logstash收集到的流量日志存储在了logstash的本地。
3>由于logstash在运行过程中需要有相应文件的读写权限, 所以需要提前给logstash 文件加chown一下。
c) 安装配置logstash
1,安装logstash-codec-sflow。之前我看了很多博客说是我们不能直接通过logstash的plugin install 命令来安装插件, 实际上没有问题。直接运行 logstash-plugin install logstash-codec-sflow。
这个插件的功能就是能读取hsflow发过来的数据包, 如果没有这个插件, logstash也能接收到流量数据, 但是乱码,类似\u0000\u0000之类的。采用命令./logstash启动之后, 会刷一阵屏幕信息,最终制药看到successfully started logstash API,这个就说明logstash启动成功了。下面的open file是因为我处于测试目的把接收到的文件写在了本地。

2, 在logstash的config.d文件夹下创建配置文件,前提是要在logstash.yml里面指定config.d的路径,这样logstash启动之后会自动加载配置文件。
具体配置内容如下:
input{
udp{
port => 6343
type => "sflow"
codec => sflow{//这块还是挺关键的, 我尝试了plain codec, 但是怎么调整字符格式都不能把\u000\u000转成可读内容
versions=>[5]
}
}
}
output{
file{
path => "/opt/ELK/logstash/sflow.log"//我指定的本地文件路径, 来收集hsflow发送过来的流量数据, 大家也可以直接把流量数据转发给elasticsearch。
}
}
这里面强调的是需要安装sflow的codec,我在这里描述一下我遇到的坑:
A)因为版本问题, 我使用logstash 7.8版本, sflow codec 能安装上, 但是接受的流量数据都是乱码, 不可读。
B)我采用了logstash6.8的版本, 配置都能跑起来, 采用plain codec的方式配置charset到各种字符, 从GBK, UTF-, ISO123***, 反正就是各种不行, 各种不可读。
C) 在logstash 配置文件中配置了sflow codec,还是不行, 因为我之前在7.8版本安装过sflow codec,所以直接配置没有安装。仍然是乱码。
D)最后发现正解就是采用logstash6.8,重新安装lostash-plugin install logstash-codec-sflow.然后就开心的看到了可读的流量日志。
3, 我们一起来看看我收集到的流量日志的截图:

记录的内容还是比较详细的,由于hsflow不单单能记录流量信息,还能记录CPU或者其他内存之类的信息, 这个完全可以通过hsflow的配置文件进行调整。
从上面的截图里面我们能看到协议, 端口, 源目地址, 还有时间的信息, 这些可以帮助我们做流量监控和威胁筛查。
以上是对数据进行收集和日志进行规范的过程, 下面我们一起来看看可视化的效果图
下面这个图是开胃菜, 不是给安全人员看的, 是给外行看的,养眼图,因为这些信息不能直接给安全人员提供太高的分析价值,都是标准协议, 和接入网络中的设备。

下面这个图展示的是具体流量信息,外行看图, 内行看数。并不是说可视化没用, 而是专业的人看的角度不会是颜色,而是和自己经验的对比, 比如是不是出现了新的客户端,流量异常增高或者降低,是否存在可疑端口(服务)。如果经验还没有积累起来的话, 那就从图开始吧, 选择一个自己喜欢的色(shai),通过日积月累的来积累经验。

下面展示的是源和目的的效果图,我们首先关注的是打球,有没有新蹦出来的大球。 其次是关注小球和细线, 有没有新出来的。如果我们同时进行过资产风险分析,或者威胁建模, 那么我们组合来看, 就能发现一些异常的端倪。

不得不承认ELK的图表功能还是挺强悍的, 能做出来这么完美的图表。我觉得这个样的可视化还是挺有价值的, 能比较直观的看到流量,发现威胁。

关于使用ELK进行流量可视化的介绍, 我重点介绍了logstash。因为我觉得数据的收集是比较重要的, 如果收集不到, 那么后面的存储搜索, 分析和展示就无从谈起。ELK里面的EK配置和使用基本上都是相同的, 大家可以到别家的博文里面去参考参考。我这里只是抛一个砖,希望能给大家提供一个思路。
261



被折叠的 条评论
为什么被折叠?



