OSSEC 代理如何检测签名/警报?

OSSEC 代理如何检测签名/警报?

有人可以解释一下 ossec 代理在主动响应配置中如何检测或响应事件(例如,对 Web 服务器 404 状态代码的扫描尝试)。

我知道服务器端的以下 xml 块会触发代理端的响应。但所有规则都保存在 /root 目录中,而不是代理的通常安装目录中。除了监控 apache 访问日志外,它没有脚本或正则表达式来告诉我们要检查什么状态代码。

这是使用 udp 端口​​ 1514 在客户端和服务器之间动态共享的东西吗?请帮助我理解它。

!-- Active response to block http scanning -->
    <active-response>
        <command>route-null</command>
        <location>local</location>
    <!-- Multiple web server 400 error codes from same source IP -->
        <rules_id>31151</rules_id>
        <timeout>600</timeout>
    </active-response>

答案1

这正是 Ossec 的工作方式。引用Ossec 文档

OSSEC 由多个部分组成。它有一个中央管理器,负责监控一切,并从代理、系统日志、数据库和无代理设备接收信息。

因此,Ossec 代理在某种程度上是“愚蠢的”,它们无法自行决定阻止/解除阻止。它们将来自指定日志源(在 中定义etc/shared/agent.conf)的所有数据提供给管理服务器(在 中定义etc/ossec.conf)。管理服务器解析日志条目并根据 下定义的规则采取行动rules/,如果需要,命令代理采取预定义的操作(通常是阻止/解除阻止 IP 地址)。

要监控 ossec 管理服务器日志解析,您可以执行以下示例tail -f logs/alerts/alerts.log

rules/local_rules.xml如果您希望忽略 http 日志中的所有 400 错误,您可以在 Ossec 服务器上添加以下内容。

<rule id="100010" level="2">
  <if_sid>31151</if_sid>
  <description>Don't care about 400 errors</description>
</rule>

您应该始终在文件中进行自定义local_rules.xml,并保留提供的解码器(例如web_rules.xml)。您还应该将本地规则的规则 ID 保持在 100000-119999 之间,因为它们是专门为此用途保留的。

相关内容