wazuh的初体验
一、初识wazuh
Wazuh
是一个用于威胁预防、检测和响应的开源平台,它能够跨场所、虚拟化、容器化和基于云的环境保护工作负载。解决方案包括一个部署到被监控系统的终端安全代理和一个收集和分析代理收集的数据的管理服务器。此外,Wazuh 已经与 Elastic Stack 完全集成,提供了一个搜索引擎和数据可视化工具,允许用户通过他们的安全警报进行导航。
使用场景
入侵检测
Wazuh 代理扫描被监控的系统,寻找恶意软件,rootkit 和可疑的异常。它们可以检测隐藏文件、隐藏进程或未注册的网络侦听器,以及系统调用响应中的不一致。除了代理功能之外,服务器组件还使用基于特征的入侵检测方法,使用其正则表达式引擎来分析收集的日志数据并寻找危害的指标。
日志数据分析
Wazuh 代理读取操作系统和应用程序日志,并安全地将它们转发给中央管理器,以便进行基于规则的分析和存储。当没有部署代理时,服务器还可以通过 syslog 从网络设备或应用程序接收数据。Wazuh 规则帮助您了解应用程序或系统错误、错误配置、企图和/或成功的恶意活动、违反政策以及各种其他安全和操作问题。
完整性检查
Wazuh 监视文件系统,识别需要密切关注的文件的内容、权限、所有权和属性的更改。此外,它本机识别用于创建或修改文件的用户和应用程序。完整性检查能力可以与威胁情报结合使用来识别威胁或被入侵的主机。此外,一些美国守规标准,如 PCI DSS,要求它。
漏洞检测
Wazuh 代理提取软件清单数据,并将这些信息发送到服务器,在服务器上与不断更新的 CVE 数据库相关联,以识别众所周知的脆弱软件。自动的漏洞评估可以帮助您找到关键资产中的弱点,并在攻击者利用它们破坏您的业务或窃取机密数据之前采取纠正措施。
配置评估
Wazuh 监视系统和应用程序配置设置,以确保它们符合您的安全策略、标准和/或加强指南。代理执行定期扫描,以检测已知存在漏洞、未打补丁或配置不安全的应用程序。此外,可以自定义配置检查,对其进行裁剪以适当地与您的组织保持一致。警报包括更好的配置建议,参考信息和与守规地图的映射。
事故应变
Wazuh 提供开箱即用的主动响应,以执行各种应对主动威胁的对策,例如在满足某些标准时阻止从威胁来源访问系统。此外,Wazuh 还可用于远程运行命令或系统查询,识别危险指标(IOCs) ,并帮助执行其他实时取证或事件响应任务。
合规
Wazuh 提供了一些必要的安全控制,以符合行业标准和规定。这些特性,结合其可伸缩性和多平台支持,可以帮助组织满足技术遵从性需求。Wazuh 广泛应用于支付处理公司和金融机构,以满足 PCI DSS (支付卡行业数据安全标准)的要求。它的 web 用户界面提供了报告和仪表板,可以帮助解决这个和其他规则(例如 GPG13 或 GDPR)。
云安全
通过使用集成模块从著名的云服务提供商那里获取安全数据,例如 Amazon AWS、 Azure 或 Google Cloud,Wazuh 帮助在 API 级别上监控云基础设施。此外,Wazuh 还提供了评估云环境配置的规则,可以很容易地发现弱点。此外,Wazuh 轻量级和多平台代理通常用于实例级监视云环境。
容器安全
Wazuh 提供对 Docker 主机和容器的安全可见性,监视它们的行为并检测威胁、漏洞和异常。Wazuh 代理与 Docker 引擎本地集成,允许用户监视图像、卷、网络设置和运行中的容器。不断收集和分析详细的运行时信息。例如,为以特权模式运行的容器、易受攻击的应用程序、在容器中运行的 shell、对持久卷或映像的更改以及其他可能的威胁发出警报。
二、wazuh的安装
采用虚拟机OVA文件安装
在官方上下载OVA文件,可能比较大,几个g左右 下载完成后,可以在Vmware中直接导入虚拟机
右上角--->文件--->打开--->选择下载好的OVA文件 之后选择安装路径,跟着引导程序一步步走
安装完成后可在网页中访问
三、浅析wazuh的规则、解码器等告警原理以及主动响应
1.主动响应(active-response)
主动响应的主要作用是检测到危险或者是告警之后,在一定条件下(比如告警等级大于7或者触发了某条或多条规则),可以做出一系列反应来禁止入侵者访问或登录你的系统
主动响应的脚本在/var/ossec/active-response/bin目录下
active-response:响应的脚本 [root@wazuh-server ossec]# cd active-response [root@wazuh-server active-response]# ls -al
这里面有许多脚本,比如
disable-account 禁止账户登录
firewalld-drop 防火墙拦截
host-deny 禁止ip访问
restart-wazuh 重启wazuh服务
2.告警信息(alerts)
当入侵者或正常用户执行了某些命令、做了某些操作,触发了wazuh的规则,那么wazuh就会在日志中记录并告警
这个日志的目录是在/var/ossec/logs/alerts目录下
分为有日期的告警日志和总告警日志
以.json结尾的文件是json格式的日志,主要用于ELK分析展示
以.log结尾的文件是我们查看起来比较方便的格式
log:日志,预警核心
[root@wazuh-server ossec]# cd logs/
以下两个目录记录了何时、触发了哪些规则 /var/ossec/logs/alerts/alerts.json:json格式的预警信息,用于分析展示 /var/ossec/logs/alerts/alerts.log:适用于直接查看xxxxxxxxxx 以下两个目录记录了何时、触发了哪些规则 /var/ossec/logs/alerts/alerts.json:json格式的预警信息,用于分析展示 /var/ossec/logs/alerts/alerts.log:适用于直接查看告警信息最终在这个文件夹中:
可以展开之后具体查看日志信息
3.规则以及解码器(rules and decoders)
查看规则
[root@wazuh-server etc]# cd ../ruleset/rules/ [root@wazuh-server rules]# ls -al [root@wazuh-servet rules]# vim 0095-sshd_rules.xml
进入解码器寻找匹配的解码值
[root@wazuh-server ~]# cd /var/ossec/ruleset/rules
查看ssh登录对应解码值
查看ssh解码器如何解码
[root@wazuh-server ruleset]# cd decoders/ [root@wazuh-server decoders]# grep -r -i "sshd"
解码器
Wazuh中的解码器就是从特定类型的事件中提取相关数据。解码分为预解码阶段和解码阶段。
预解码阶段:从已知字段(如syslog记录头中的字段)提取静态信息。这通常包括时间戳、主机名和程序名,这些值通常在所有syslog消息中都能找到,而不管哪个应用程序生成它们。
解码阶段:将从事件中提取更多的动态信息,如源IP地址、用户名、URL等等。一个或多个解码器专门用于从许多不同的应用程序和日志源中提取字段数据。
一旦日志事件被解码,Wazuh就可以根据其规则集对其进行评估,以确定是否应该生成警报。如果日志没有解码,Wazuh规则将被限制在寻找出现在日志事件中任何地方的通用子字符串,从而大大降低了生成告警的质量。
四、wazuh配置文件解析
<ossec_config>:这是配置文件的根元素。 <global>:在<global>元素下,可以配置与全局设置相关的参数。以下是其中一些重要参数: <jsonout_output>yes</jsonout_output>:允许将输出转换为JSON格式。 <alerts_log>yes</alerts_log>:启用将警报记录到alerts.log文件中。 <logall>no</logall>:禁止将所有日志记录到数据库。 <logall_json>no</logall_json>:禁用将所有日志记录为JSON格式。 <email_notification>no</email_notification>:禁用电子邮件通知功能。 <smtp_server>smtp.example.wazuh.com</smtp_server>:SMTP服务器地址。 <email_from>wazuh@example.wazuh.com</email_from>:电子邮件通知的发件人地址。 <email_to>recipient@example.wazuh.com</email_to>:电子邮件通知的收件人地址。 <email_maxperhour>12</email_maxperhour>:每小时发送的最大电子邮件通知数量。 <email_log_source>alerts.log</email_log_source>:将警报记录到日志文件alerts.log中。 <agents_disconnection_time>10m</agents_disconnection_time>:启动计时器以检测代理与Wazuh服务器的连接中断的时间,此处设置为10分钟。 <agents_disconnection_alert_time>0</agents_disconnection_alert_time>:如果代理与Wazuh服务器的连接中断超过设置的时间,将发出警报。 <alerts>:在<alerts>元素下,可以配置与警报相关的参数。以下是其中两个重要参数: <log_alert_level>3</log_alert_level>:将日志记录的警报级别设置为3(默认为7),表示只记录高级别的警报。 <email_alert_level>12</email_alert_level>:设置通过电子邮件发送的警报级别为12(默认为12),表示发送所有级别的警报。 <logging>:在<logging>元素下,可以配置日志格式相关的参数。以下是其中一个重要参数: <log_format>plain</log_format>:将内部日志记录格式设置为简单文本格式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律