【网络安全】 wazuh学习
安装网址:逐步安装 Wazuh 服务器 - Wazuh 服务器
1、了解什么是Wazuh
Wazuh是一个用于威胁预防、检测和响应的开源平台,它能跨场所、虚拟化、容器化和基于云的环境保护工作负载;
使用场景广泛丹不局限于:入侵检测、日志数据分析、完整性检查、漏洞检测、配置评估、事故应变、合规、云安全、容器安全等;
解决方案包括一个部署到被监控系统的终端安全代理和一个收集和分析代理收集的数据的管理服务器。
特点:wazuh已经Elastic Stack 完成集成,提供一个搜素引擎和数据可视化工具,允许用户通过他们的安全警报进行导航。
2、初步感知
服务器端安装了wazuh的服务后,服务器自动就会采集本台服务器的信息,默认路径在
cd /var/ossec/
我们既可以看到文档结构
1.active-response:主动响应的脚本
2.agentless:使用非代理模式连接其他服务器(SSH)
3.bin:OsSEc核心执行程序
4.etc:配置文件
5.logs:日志文件夹,也是预警数据的核心文件夹
6.queue:临时处理队列
7.rules:检测规则
8.stats:统计数据
9.tmp var等:一些内部目录,暂时不需要关心
查看日志
1./var/ossec/logs/alerts/alerts.json #通常json格式的预警不适合用于直接查看,而主要是用于分析和展示
2. /var/ossec/logs/alerts/alerts.log #而.log的预警信息则用于直接查看,而非分析和展示
3./var/ossec/etc/ossec.conf #存放这主机的各种信息,文件夹或者命令执行结果等,看核心配置中的目录监控,可以看到监控了登陆日志
核心配置文件
1、日志级别
<alerts>
<log_alert_level>3</log_alert_level>
<email_alert_level>12</email_alert_level>
</alerts>
2、执行命令
<localfile>
<log_format>command</log_format>
<command>df -P</command>
<frequency>360</frequency>
</localfile>
3、监控文件
<localfile>
<log_format>syslog</log_format>
<location>/var/log/secure</location>
</localfile>
4、白名单
<global>
<white_list>127.0.0.1</white_list>
<white_list>^localhost.localdomain$</white_list>
<white_1ist>192.168.112.2</white_1ist>
</global>
5、主动响应
<command>
<name>firewall-drop</name>
<executable>firewall-drop</executable>
<timeout_allowed>yes</timeout_allowed>
</command>
<active-response>
<command>firewall-drop</command>
<location>local</location>
<level>9</level>
<timeout>600</timeout>
</active-response>
主动响应的工作原理图
wazuh处理MySQ
L预警
1、这里我们添加mysql基础设置
确保启用了mysql的日志文件
1.编辑:/opt/lampp/etc/my.cnf
2.
3.# Enable MySQL Log
4. general_log = ON
5. general_log_file = /opt/lampp/logs/mysql.log
6. log_output = file3
7.
8. chmod o+w /opt/lampp/logs
9.重启lampp
2、为Mysql添加远程访问权限
1. 进入MySQL
2. 设置密码
update mysql.user set password = password('666888') where user = 'root';
3. 开启远程访问
grant all privileges on *.* to 'root'@'%' identified by '666888' with grant option;
4. 刷新权限
flush privileges;
5. 退出mysql
exit
6. 重启xampp
7. 测试本地登录
8. 测试远程连接
3、添加mysql.log到ossec的配置文件
vi /var/ossec/etc/ossec.conf
<localfile>
<log_format>syslog</log_format> -
<location>/opt/lampp/logs/mysql.log</location>
</localfile>
注意:重启Wazuh,并尝试读一读ruleset/rules/0295-mysql_rules.xml中定义的规则。
4、基于已有规则进行MySQL登陆
配置完我们开始测试远程登陆
tail -f mysql.log #可查看日志信息
例如:
Time Id Command Argument
240722 20:00:40 2 Connect root@localhost as anonymous on
2 Connect Access denied for user 'root'@'localhost' (using password: NO)
240722 20:03:07 3 Connect root@192.168.11.1 as anonymous on
3 Connect Access denied for user 'root'@'192.168.11.1' (using password: YES)
240722 20:03:16 4 Connect root@192.168.11.1 as anonymous on
4 Query select @@version_comment limit 1
240722 20:03:24 4 Quit
240722 20:17:09 5 Connect root@192.168.11.1 as anonymous on
5 Connect Access denied for user 'root'@'192.168.11.1' (using password: YES)
5、配置正则
分析日志特征,对比解码器的特征,可以发现解码器的匹配正则是不可能识别出我们MySQL日志,需要修改解码器匹配规则。
1、/var/ossec/ruleset/decoders/ #进到decoders查看mysql
2、ls | grep mysql
3、vim 0150-mysql_decoders.xml #修改正则
<!--
- Examples:
- 6 Connect Access denied for user 'root'@'192.168.211.1' (using password: YES)
- 7 Query select @@version_comment limit 1
--> 这里复制mysql登陆失败的回显
<decoder name="mysql_log">
<prematch>\d+ Connect|\d+ Query</prematch> #正则匹配
</decoder>
4、cd /var/ossec/ruleset/rules
5、ls | grep mysql
会有两个xml
mysql_rules.xml #我们修改这个,别弄错了
mysql_audit_rules.xml
6、vim 0291-mysql_rules.xml
<group name="mysql_log,">
<rule id="50100" level="0">
<decoded_as>mysql_log</decoded_as>
<description>MySQL messages grouped.</description>
</rule>
<rule id="50105" level="3">
<if_sid>50100</if_sid>
<regex>\d+ Query select @@version_comment limit 1</regex>
<description>MySQL: authentication success.</description>
<mitre>
<id>T1078</id>
</mitre>
<group>authentication_success,</group>
</rule>
<rule id="50106" level="9">
<if_sid>50100</if_sid>
<match>Access denied for user</match>
<description>MySQL: authentication failure.</description>
<group>authentication_failed,</group>
</rule>
</group>
6、修改完我们要重启wazuh
7、/var/ossec/logs/alerts
tail -f alerts.log #测试错误远程登陆mysql测试规则是否生效
ription>MySQL: authentication failure.
authentication_failed,
6、修改完我们要重启wazuh
7、/var/ossec/logs/alerts
tail -f alerts.log #测试错误远程登陆mysql测试规则是否生效`