Назад | Перейти на главную страницу

Кто-нибудь использовал кастомные декодеры с OSSEC?

У меня есть программное обеспечение OSSEC HIDS версии 2.8.3, работающее на сервере RHEL 6. Мы тестировали это в лабораторных условиях с помощью DNS-сервера, чтобы отслеживать запросы, поступающие в наши зоны RPZ и вредоносного ПО. На DNS-сервере установлен агент OSSEC. Чтобы это сработало, нам пришлось использовать собственный письменный декодер. Есть ли у кого-нибудь еще опыт работы с OSSEC и кастомными декодерами, кроме тех, которые устанавливаются «из коробки». В основном я ищу творческие идеи о том, что другие системные администраторы делают с OSSEC, которые также могут быть полезны в нашей производственной среде.

Например, удалось ли кому-нибудь написать / использовать собственный декодер для обнаружения USB-накопителя для Linux?

ОБНОВЛЕНИЕ: я работал над настраиваемым декодером и правилом для определения того, когда 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>

iptables использует ядро так как program_name:

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

Мы можем использовать iptables как родитель (вместе с ядро). Также, мне бы поле используется для облегчения создания правил. Итак, вам понадобится этот декодер:

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

Я только что добавил в наш репозиторий наборов правил: Декодер и Правила.

Вы можете попробовать наш набор правил 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, думаю, было бы еще проще. У вас есть пример сообщения журнала? Скорее всего, вам нужно только создать для него правило.