有人使用过 OSSEC 的自定义解码器吗?

有人使用过 OSSEC 的自定义解码器吗?

我在 RHEL 6 服务器上运行 OSSEC HIDS 软件版本 2.8.3。我们一直在实验室中使用 DNS 服务器对此进行测试,以跟踪进入我们的 RPZ 和恶意软件区域的查询。DNS 服务器已安装 OSSEC 代理。为了使其正常工作,我们必须使用自定义编写的解码器。除了“开箱即用”安装的解码器之外,还有其他人使用过 OSSEC 和自定义解码器吗?我主要想了解其他系统管理员如何使用 OSSEC,这些想法在我们的生产环境中也可能有用。

例如,是否有人成功编写/使用自定义解码器来检测 Linux 的 USB 存储?

更新:我一直在研究自定义解码器和规则,用于检测 USB 设备何时插入服务器。以下是我想要匹配的日志行:

Feb  3 10:23:08 testsys kernel: usb 1-1.2: New USB device found, idVendor=0781, idProduct=5575

我在OSSCE中的解码器规则:

<decoder name="usb-storage">
<program_name>kernel</program_name>
</decoder>

<decoder name="usb-storage-attached">
<parent>usb-storage</parent>
<regex offset="after_parent">^USB \S+: New</regex>
<order>extra_data</order>
</decoder>

我在OSSEC中的规则:

<group name="syslog,">
<!-- USB Storage Detection Log Types -->
<!-- level=0 for not generating alerts by default -->
<rule id="310201" level="0">
<decoded_as>usb-storage</decoded_as>
<description>Looking for unknown USB attached storage</description>
</rule>

<!-- USB Storage Detection Event Chains -->
<!-- Fire an alert (level=8) if the log line contains "New USB   device found" -->
<rule id="310202" level="8">
<if_sid>310201</if_sid>
<match>^New USB device found</match>
<description>Attached USB Storage</description>
</rule>
</group>

答案1

iptables正在使用核心作为程序名称

<decoder name="iptables">
   <program_name>^kernel</program_name>
</decoder>

我们可以用iptables作为父母(而不是核心)。 还,ID字段用于方便创建规则。因此,你需要这个解码器:

<decoder name="usb-storage-attached">
    <parent>iptables</parent>
    <regex offset="after_parent">^(usb) </regex>
    <order>id</order>
</decoder>

规则可以是:

<rule id="310201" level="0">
    <decoded_as>iptables</decoded_as>
    <id>usb</id>
    <description>USB messages grouped.</description>
</rule>

<rule id="310202" level="1">
    <if_sid>310201</if_sid>
    <match>New USB device found</match>
    <description>Attached USB Storage</description>
</rule>

现在,您可以将规则 310201 用于与 USB 相关的所有内容。规则 310202 就是您想要的规则:

Feb  3 10:23:08 testsys kernel: usb 1-1.2: New USB device found, idVendor=0781, idProduct=5575


**Phase 1: Completed pre-decoding.
       full event: 'Feb  3 10:23:08 testsys kernel: usb 1-1.2: New USB device found, idVendor=0781, idProduct=5575'
       hostname: 'testsys'
       program_name: 'kernel'
       log: 'usb 1-1.2: New USB device found, idVendor=0781, idProduct=5575'

**Phase 2: Completed decoding.
       decoder: 'iptables'
       id: 'usb'

**Phase 3: Completed filtering (rules).
       Rule id: '310202'
       Level: '1'
       Description: 'Attached USB Storage'
**Alert to be generated.

我刚刚添加到我们的规则集存储库:解码器规则

答案2

您可以尝试我们的 OSSEC 规则集。它会定期更新新的解码器和规则。

在这里能找到它:

https://github.com/wazuh/ossec-rules

说明如下(包括自动运行更新的脚本):

http://documentation.wazuh.com/en/latest/ossec_ruleset.html

关于 USB 存储检测,我已经在 Windows 上完成了,配置如下:

<localfile>  
  <frequency>10</frequency>
  <log_format>full_command</log_format>
  <command>reg QUERY HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR</command>
</localfile>

规则如下:

<rule id="140125" level="7">
  <if_sid>530</if_sid>
  <match>ossec: output: 'reg QUERY</match>
  <check_diff />
  <description>New USB device connected</description>
</rule>

对于 Linux,我认为这会更容易。您有日志消息的示例吗?很可能您只需要为其创建规则。

相关内容