专栏首页信安之路开源安全平台 wazuh 架构介绍

开源安全平台 wazuh 架构介绍

安全圈的大事刚刚结束,安全圈的小伙伴也从加班的阴影中走了出来,这期间,学习写文章投稿的人很少,估计还是忙吧,大考结束之后,大家可以放松一下,然后继续学习新知识,打基础,为了迎接下一次的挑战而做准备。做安全防御,入侵检测是必不可少的,而入侵检测通常分为网络层面和主机层面,今天就来看一个带有主机入侵检测功能的安全平台,他不止包含主机入侵检测的功能,还包含其他的一些功能,比如:基线漏洞监控、合规性扫描,能力强的还可以根据检测的结果自动响应。

这个项目的名称是 WAZUH,官网地址:

https://wazuh.com/

作为一个优秀的开源产品,详细的文档是必不可少的,大家可以前往人家官网查看:

https://documentation.wazuh.com/current/index.html

整个项目的内容非常多,这一篇文章是讲不完的,所以只是聊一下他的内部架构是如何实现他的功能的。下图是他的整体架构:

收集信息是通过 agent 的方式,信息处理在服务端,展示和存储数据用的是 ELK,agent 与 server 之间的通信是通过 AES 加密后传输,服务端分析完成之后通过 Filebeat 将数据打入 es。详细的介绍请看:

https://documentation.wazuh.com/current/getting-started/architecture.html

日志数据收集

安全平台基本上就是一个日志收集、分析处理、报表展示、时间报警和处理的综合体,日志收集是每一个主机入侵检测系统的核心功能,下图是 wazuh 中关于日志收集的架构图:

从上图可以看到,wazuh 的 agent 上包含一个 Logcollector 模块,在 Linux 下可以读日志文件、在 Windows 下可以读 事件日志文件的方式将日志收集起来发送到 wazuh 的 server 端,除了 agent 这种模式之外,还可以通过 rsylog 的方式将日志送到 wazuh 的 server 端,wazuh 的 server 上其实自带了 agent 的功能,也算是对自己服务端的日志收集。

收集到日志之后,服务器端的分析模块,可以将日志进行一系列的操作后与 wazuh 的规则集进行匹配,从而输出报警和一些其他信息,这些信息会被送往 es 集群中, 通过 Kibana 进行可视化展示。

详细的配置请看:

https://documentation.wazuh.com/current/user-manual/capabilities/log-data-collection/how-it-works.html

文件监控

这个功能主要是为了监控一些关键的文件是否被查看或者修改,比如 linux 下的密码文件:passwd、shadow 等,windows 下的注册表文件,这在入侵检测的阶段非常有用,黑客在拿到系统权限之后,对这些文件是非常感兴趣的,下图就是 wazuh 下 syscheckd 模块的架构图:

服务器端基本上与 日志收集模块差不多,就是在 agent 上使用的模块名称不同。详情请看:

https://documentation.wazuh.com/current/user-manual/capabilities/file-integrity/how-it-works.html

恶意软件检查

这个模块主要包含的功能有:文件监控(恶意软件可能会替换文件)、检测运行的进程(恶意软件可能隐藏自己进程,根据 getsid 和 getpgid 的方式检测所有进程 ID)、检测隐藏的端口(恶意软件可能会隐藏自己端口,使用 bind 函数检测被占用的端口与 netstat 列出的端口列表进行对比,来识别隐藏端口)、检测权限异常的文件(比如 suid 文件、隐藏目录或文件等)、检测是否使用了混杂模式、rootkit 检查等。这个功能使用了两个模块,分别为 rootcheck 和 syscheckd,架构如图:

架构差不多,也没啥新的东西,详情请看:

https://documentation.wazuh.com/current/user-manual/capabilities/anomalies-detection/how-it-works.html

漏洞检测

这里主要是针对 Linux,通过获取远程漏洞库,通过比较本地系统内所有软件包的版本信息,如果版本低于漏洞库里所记录的最低版本信息,则认为该组件或者软件包存在漏洞,然后做提醒,配置的话可以通过离线和在线两种方式,主要是为了满足,服务端无法上外网的情况,可以通过手动更新漏洞库的方式来使用这个功能。支持的系统版本如下:

详情请看:

https://documentation.wazuh.com/current/user-manual/capabilities/vulnerability-detection.html#compatibility-matrix

总结

这里挑了几个比较重要的功能做了一些解释,其功能的强大只有自己去挖掘了,还有一点比较好的是,之前遇到问题,在 github 上提 issue,很快能得到解决,而且更新的频率很快,自己还没玩好这个版本,去看文档的时候,已经更新了好几个大版本,又得重新安装, 其中的坑只有自己淌过才更加的深刻。之前在搞的时候翻译过两个文档,用的版本是 3.61,现在都更新到 3.9 版本了,欢迎大家试用,我在圈子里等你一起交流,厚颜无耻的打个广告,请见谅,希望对大家有用。只有打好基础才能在战时不至于手忙脚乱,共勉!

本文分享自微信公众号 - 信安之路(xazlsec),作者:myh0st

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RedTiger 通关学习总结

    学习 SQL 注入有两套必刷题,一个是 sqli-labs,这个已经有了成套的 wp 讲解,在上面的网盘里。

    信安之路
  • macOS 恶意软件分析过程

    Hacker 取得了我们系统权限后通常会做那些事情?植入 shell、恶意软件、留持久化的后门。在当下的 APT 事件中,远控木马扮演着一个重要的角色,这些木马...

    信安之路
  • sql注入学习总结

    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

    信安之路
  • [735]利用UItraISO软碟通制作U盘启动盘安装Ubuntu16.04系统

    第2,3可以不勾选:第2选项是默认.ISO文件都用软碟通打开,不经常使用软碟通没必要关联;第3选项会生产一个驱动器(空盘),类似于百度云盘的,不经常使用软碟通不...

    周小董
  • Python一个万万不能忽略的警告!

    Pandas中有一个警告,很有意思,并且出现频率很高,它就是 SettingWithCopyWarning, 既然是个警告,那么我们是不是可以忽略呢。就像标题说...

    double
  • 碎片化 | 第四阶段-34-Struts2-Spring重构项目案例-视频

    如清晰度低,可转PC网页观看高清版本: http://v.qq.com/x/page/z0566pji5vf.html 重构案例 1:hello strut...

    码神联盟
  • curl命令参数以及curl监控web是否OK自动重启应用脚本示例

    [先上curl监控web自动重启脚本(这个一个接口调用,只考虑返回码200的情况)]

    明哥的运维笔记
  • 手把手教你无代码基础实现Linux运维管理平台

    老早之前就想做一个运维管理平台的项目了,但是一直没沉下来去做,上半年的时候毕设选择了这个课题,想着逼自己一把,不管做出来的怎么样,先把它搞起来..... dj...

    小小科
  • 【React Native】react-native-scrollable-tab-view

    Gavin-ZYX
  • 面试官:你知道大事务会带来什么问题以及如何解决么?

    select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx...

    Java学习录

扫码关注云+社区

领取腾讯云代金券