主机入侵检测HIDS如何配置

wen 网络安全 6

本文目录导读:

主机入侵检测HIDS如何配置

  1. 第一阶段:基础架构规划
  2. 第二阶段:配置 Wazuh(现代推荐方案)
  3. 第三阶段:配置 OSSEC(经典方案)
  4. 第四阶段:通用配置最佳实践(无论选哪种HIDS)
  5. 总结:如何选择配置方案?

主机入侵检测系统(HIDS)的配置是一个综合性的过程,涉及代理安装、规则定义、日志收集、告警配置和响应机制,最常用的开源HIDS是 OSSECWazuh(Wazuh是OSSEC的增强分支),商业方案有CrowdStrikeSentinelOne等。

以下以 Wazuh(推荐)OSSEC 为例,提供详细的配置步骤和核心配置项说明。


第一阶段:基础架构规划

在配置前,需要明确架构:

  1. Server端:负责收集日志、分析告警、管理规则(需要较高的CPU和内存,建议4C8G以上)。
  2. Agent端:部署在每台需要监控的服务器上(Windows/Linux/macOS)。
  3. 通信方式:通常使用加密通信(预共享密钥或证书)。

第二阶段:配置 Wazuh(现代推荐方案)

Wazuh 提供了开箱即用的功能,配置相对友好,且拥有强大的规则引擎和仪表板。

安装和管理端(Manager)

在管理服务器上安装 Wazuh Manager 和 Wazuh Indexer(可选,用于存储和可视化)。

# 官方一键安装脚本(CentOS/RHEL/Ubuntu)
curl -s https://packages.wazuh.com/4.x/wazuh-install.sh | sudo bash
# 安装完成后,记录自动生成的 admin 密码和 agent 注册密码

安装并注册 Agent(被监控主机)

在每台需要监控的服务器上执行:

# 安装 Agent
WAZUH_MANAGER="你的管理端IP" yum install wazuh-agent
# 或使用官方一键脚本(推荐)
curl -s https://packages.wazuh.com/4.x/wazuh-agent.sh | sudo bash -s -- -m 管理端IP -A 注册密码
# 启动并设置开机自启
systemctl restart wazuh-agent
systemctl enable wazuh-agent

核心配置项(/var/ossec/etc/ossec.conf

这是决定 HIDS 能力的关键文件,主要修改以下部分:

  • 文件完整性监控(FIM):监控关键目录的变更。
    <syscheck>
        <directories check_all="yes" realtime="yes">/etc,/usr/bin,/usr/sbin</directories>
        <directories check_all="yes" whodata="yes">/var/www/html</directories> <!-- who-data 可以记录谁修改的 -->
        <ignore>/etc/mtab</ignore> <!-- 忽略动态变化文件 -->
        <scan_on_start>yes</scan_on_start>
    </syscheck>
  • 日志分析(Log Analysis):指定监控哪些日志源。
    <localfile>
        <location>/var/log/auth.log</location> <!-- Linux SSH 登录日志 -->
        <log_format>syslog</log_format>
    </localfile>
    <localfile>
        <location>/var/log/secure</location> <!-- RHEL/CentOS 安全日志 -->
        <log_format>syslog</log_format>
    </localfile>
    <localfile>
        <location>/var/log/messages</location>
        <log_format>syslog</log_format>
    </localfile>
    <!-- Windows 事件日志 -->
    <localfile>
        <location>Security</location>
        <log_format>eventchannel</log_format>
    </localfile>
  • 命令监控(Command Monitoring):执行自定义脚本。
    <wodle name="command">
        <disabled>no</disabled>
        <tag>check_ports</tag>
        <command>ss -tuln</command>
        <interval>1h</interval>
    </wodle>
  • 主动响应(Active Response):自动封禁IP等操作(谨慎使用)。
    <active-response>
        <disabled>no</disabled>
        <command>firewall-drop</command> <!-- 默认有 iptables/systemctl 命令 -->
        <location>local</location>
        <level>10</level>
        <rules_id>5710</rules_id> <!-- 只对特定规则触发,如SSH暴力破解 -->
    </active-response>

规则配置(决定告警质量)

  • 位置/var/ossec/ruleset/rules/
  • 自定义规则:不要直接修改系统规则,应创建 /var/ossec/etc/rules/local_rules.xml
  • 示例:自定义一个规则,监控“root用户登录”并设置告警级别为10。
    <group name="local_syslog,">
        <rule id="100001" level="10">
            <decoded_as>syslog</decoded_as>
            <field name="program_name">^sudo$</field>
            <match>COMMAND=/bin/su -</match>
            <description>Root elevation detected via su</description>
        </rule>
    </group>
  • 调整规则级别
    • level 0-3:信息
    • level 4-6:警告
    • level 7-9:严重(需要关注)
    • level 10-12:紧急(可能入侵成功)
    • level 13-15:严重安全事件

日志与告警查看

  • 服务端日志/var/ossec/logs/ossec.log
  • 代理端日志/var/ossec/logs/ossec.log
  • 告警日志/var/ossec/logs/alerts/alerts.json(适合接入SIEM或Elasticsearch)

第三阶段:配置 OSSEC(经典方案)

对于需要轻量化、高稳定性的场景,OSSEC 仍是不错的选择。

安装服务端

wget -U ossec https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
tar -zxf ossec-hids-3.6.0.tar.gz
cd ossec-hids-3.6.0
./install.sh

安装过程中选择 server 模式,并配置邮件告警(可选)。

安装并注册 Agent

# 在服务端生成密钥
/var/ossec/bin/ossec-authd
# 在被监控主机安装 agent,并运行
/var/ossec/bin/ossec-agent-authd -m 服务端IP
service ossec restart

核心配置(/var/ossec/etc/ossec.conf

  • :与Wazuh非常相似,只是少了 wodleinventory 等高级模块。
  • 文件监控
    <syscheck>
        <frequency>3600</frequency>
        <directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
        <directories check_all="yes">/root</directories>
    </syscheck>
  • 主动响应:OSSEC 的 active-response 配置语法与Wazuh一致,但支持的命令较少。

规则自定义

  • 存放位置:/var/ossec/rules/local_rules.xml
  • 逻辑与Wazuh一致,但OSSEC不支持<decoded_as>等温组件。

第四阶段:通用配置最佳实践(无论选哪种HIDS)

以下配置能极大提升检测效果与系统稳定性:

  1. 白名单配置

    • 排除合法操作(如Puppet/Ansible的定期更新、备份脚本的读取)。
    • <syscheck> 中添加 <ignore> 标签,例如忽略 /proc/sys、数据库数据文件(*.ibd)。
  2. 日志源覆盖(尽可能全):

    • Linuxauth.logsecuremessagessyslogcronapache/nginx error.logaudit.log(审计日志)。
    • Windows:Security(登录/权限)、System(服务/驱动)、Application(应用程序)、Sysmon(如有安装)。
    • 数据库:MySQL general log、PostgreSQL日志(需开启SQL审计)。
  3. 告警抑制

    • 避免频繁无用的告警刷屏,例如cron的正常执行、系统回包IP的扫描。
    • 创建规则设置 if_matched_sid 排除已知的正常事件。
  4. 性能调优

    • 避免对整个 根目录启用实时监控(realtime=“yes”),建议指定具体目录。
    • 调整扫描频率:<frequency>43200</frequency>(12小时一次)
    • 如果Agent所在主机配置较低,关闭 who-data(记录谁修改),改用 realtime
  5. 主动响应策略(安全与风险的平衡)

    • 不要 使用默认的 firewall-drop 对任何外部IP进行全局封禁(可能导致误封正常用户)。
    • 推荐策略:将告警级别达到10以上的事件,触发 ossec-slack.shossec-alert 发送到邮件/钉钉,由人工判断是否封禁。
    • 如果必须自动化,请设置 timeout 参数,例如封禁30分钟(<timeout>1800</timeout>)。

如何选择配置方案?

场景 推荐方案 配置重点
新手入门 / 中小企业 Wazuh 一键安装,自带Web仪表板(Kibana),规则库完善,支持容器监控。
追求极简 / 老旧机器 OSSEC 安装包小(约5MB),资源占用低,配置简单。
Windows 环境监控 Wazuh 原生支持Windows事件日志、注册表监控、Sysmon集成。
云原生 / Kubernetes Wazuh + Falco Wazuh负责宿主机层,Falco负责容器运行时异常。
金融 / 合规要求高 商业HIDS(CrowdStrike等) 侧重EDR(终端检测与响应),溯源能力强,AI分析。

最后的忠告

  • 先测试,后上线:在非生产环境运行48小时,观察误报情况,调整规则级别。
  • 监控HIDS本身:确保Agent进程(ossec-agent)一直在运行,如果挂掉要能通过自愈脚本重启或发告警。
  • 日志不要只存本地:将告警日志汇聚到ELK/Splunk等平台,以便回溯历史入侵事件。

如果你能提供具体的操作系统版本和业务场景(比如是Web服务器还是数据库服务器),我可以给出更精准的规则配置建议。

抱歉,评论功能暂时关闭!