OPNsense Forum

International Forums => German - Deutsch => Topic started by: ollibraun on September 18, 2021, 09:14:25 pm

Title: Wazuh für Anfänger
Post by: ollibraun on September 18, 2021, 09:14:25 pm
Hallo,

hat hier jemand Erfahrung mit Wazuh und OPNsense bzw. Suricata?

Ich möchte zunächst einmal die Logs von OPNsense bzw. Suricata via Syslog an einen Wazuh-Server übertragen. Später kommt dann möglicherweise der Wazuh-Agent auf die OPNsense, aber klein anfangen...

Ich glaube, ich verstehe das Konzept von Wazuh noch nicht.

Die OPNsense-Logs übertrage ich im Augenblick parallel an einen einfachen-Syslog-Server und an die Wazuh-Installation.

Wazuh habe ich per All-in-one-OVA-Paket installiert. Weiter habe ich noch nicht viel konfiguriert, nur mal einen Windows-PC mit dem Agenten versehen. Da kommt jede Menge an Daten bei Wazuh an. prima.

Dann habe ich auf dem Wazuh-Server den Syslog-Empfang aktiviert:

https://wazuh.com/blog/how-to-configure-rsyslog-client-to-send-events-to-wazuh/

Datei /var/ossec/etc/ossec.conf:
<remote>
  <connection>syslog</connection>
  <port>514</port>
  <protocol>udp</protocol>
  <allowed-ips>8.18.2.93/32</allowed-ips>
  <local_ip>14.7.1.11</local_ip>
</remote>


Tja, und jetzt finde ich unter Kibana -> Discover teilweise (gefühlt unvollständige) Log-Einträge von der OPNsense. Ich habe dort aber noch keinen einzigen Eintrag von Suricata entdecken können.

Der einfache externe Syslog-Server zeigt dagegen jede Menge Einträge, sowohl OPNsense-Systemmeldungen und Firewall-Blocks als auch Suricata-Einträge.

Die OPNsense-Logging/Targets-Einträge sind identisch, nämlich auf "alles" konfiguriert.

Filtert Wazuh da etwas? Muss man den "Eingang" dort noch konfigurieren? Aus den Docs bin ich noch nicht schlau geworden...

Gibt es irgendwo die "Rohdaten" bei Wazuh?

PS: Ich würde auch kostenpflichtigen Support in Anspruch nehmen - gerne per PM.

Viele Grüße
Oliver
Title: Re: Wazuh für Anfänger
Post by: mimugmail on September 18, 2021, 09:49:17 pm
Du musst log_all auf yes setzen und dann in archive log. Da steht dann ALLES. In Kibana kommen nur Sachen die per Decoder erkannt und eine Rule haben.
Suricata sollte mit Eve Log erkannt werden
Title: Re: Wazuh für Anfänger
Post by: ollibraun on September 21, 2021, 10:11:53 am
Ich verstehe ein wenig, vielen Dank für den Tipp. Im Log finde ich dann alle Ereignisse, und es wächst ganz schön schnell.  :)

Mir ist noch nicht so ganz klar wie es mit dem Decodieren geht.

https://documentation.wazuh.com/current/learning-wazuh/suricata.html

Demnach müsste ich sowohl auf der Quelle (OPNsense) als auch auf dem Wazuh-Server Suricata installieren... vermutlich in meinem Fall nicht auf der Quelle, weil ich keinen Wazuh-Agent benutze, sondern nur auf dem Ziel. Aber ist das wirklich richtig verstanden - ich muss auf dem Wazuh-Server Suricata installieren? Kommt mir merkwürdig vor, bin ich auf dem Holzweg?

Bin ich irgendwie richtig, wenn ich annehme, dass danach zwei Schritte erforderlich sind:

Decoder wie hier beschrieben:

https://documentation.wazuh.com/current/user-manual/ruleset/json-decoder.html

Ruleset in diesen Dateien:

https://documentation.wazuh.com/current/user-manual/ruleset/custom.html

Trotz der umfangreichen Docs auf Wazuh habe ich das Gefühl, gerade nicht weiter zu kommen. Nur so eine Ahnung: Die vorgefertigten Funktionen für Suricata kann ich nicht nutzen, so lange ich Syslog verwende und keinen Wazuh-Agent. Zumindest bezüglich Decoder; wenn ich da weiter bin, könnten die Suricata-Rulesets greifen.
Title: Re: Wazuh für Anfänger
Post by: mimugmail on September 21, 2021, 12:28:37 pm
Poste Mal das Suricata Log vom archive.log bitte
Title: Re: Wazuh für Anfänger
Post by: ollibraun on September 21, 2021, 12:59:25 pm
Du meinst einen Auszug, denke ich? So etwa:

Code: [Select]
2021 Sep 21 05:56:48 wazuh-manager->/var/log/messages Sep 21 05:56:47 wazuh-manager filebeat: 2021-09-21T05:56:47.326Z#011INFO#011[monitoring]#011log/log.go:145#011Non-zero metrics in the last 30s#011{"monitoring": {"metrics": {"beat":{"cpu":{"system":{"ticks":39260,"time":{"ms":6}},"total":{"ticks":87530,"time":{"ms":8},"value":87530},"user":{"ticks":48270,"time":{"ms":2}}},"handles":{"limit":{"hard":4096,"soft":1024},"open":11},"info":{"ephemeral_id":"50df92a3-a3a5-4e0a-be4a-caaf05121e87","uptime":{"ms":215970339}},"memstats":{"gc_next":8060000,"memory_alloc":4805752,"memory_total":2688033712},"runtime":{"goroutines":25}},"filebeat":{"harvester":{"open_files":1,"running":1}},"libbeat":{"config":{"module":{"running":0}},"pipeline":{"clients":1,"events":{"active":0}}},"registrar":{"states":{"current":1}},"system":{"load":{"1":0.01,"15":0.05,"5":0.02,"norm":{"1":0.0006,"15":0.0031,"5":0.0013}}}}}}
2021 Sep 21 05:56:48 OPNsense.localserver-berlin.de->8.12.83.83 Sep 21 07:56:32 OPNsense.localserver-berlin.de filterlog[62075]: 113,,,b076000b7efad0d8ce25adbcb1bc0004,igb3,match,block,in,4,0x68,,64,4517,0,DF,17,udp,744,192.168.100.230,10.0.0.4,5065,5060,724
2021 Sep 21 05:56:49 OPNsense.localserver-berlin.de->8.12.83.83 Sep 21 07:56:33 OPNsense.localserver-berlin.de filterlog[62075]: 113,,,b076000b7efad0d8ce25adbcb1bc0004,igb3,match,block,in,4,0xe0,,1,26002,0,none,17,udp,351,192.168.100.242,224.0.0.251,5353,5353,331
2021 Sep 21 05:56:50 OPNsense.localserver-berlin.de->8.12.83.83 Sep 21 07:56:34 OPNsense.localserver-berlin.de filterlog[62075]: 113,,,b076000b7efad0d8ce25adbcb1bc0004,igb3,match,block,in,4,0x68,,64,4662,0,DF,17,udp,744,192.168.100.230,10.0.0.4,5065,5060,724
2021 Sep 21 05:56:51 OPNsense.localserver-berlin.de->8.12.83.83 Sep 21 07:56:35 OPNsense.localserver-berlin.de filterlog[62075]: 113,,,b076000b7efad0d8ce25adbcb1bc0004,igb3,match,block,in,4,0x68,,64,4691,0,DF,17,udp,746,192.168.100.230,10.0.0.4,5065,5060,726
2021 Sep 21 05:56:52 OPNsense.localserver-berlin.de->8.12.83.83 Sep 21 07:56:36 OPNsense.localserver-berlin.de suricata[53565]: {"timestamp": "2021-09-21T07:56:36.203646+0200", "flow_id": 196204642704802, "in_iface": "igb3", "event_type": "alert", "src_ip": "192.168.100.10", "src_port": 60057, "dest_ip": "192.168.100.1", "dest_port": 53, "proto": "UDP", "tx_id": 56, "alert": {"action": "allowed", "gid": 1, "signature_id": 2023883, "rev": 2, "signature": "ET DNS Query to a *.top domain - Likely Hostile", "category": "Potentially Bad Traffic", "severity": 2, "metadata": {"updated_at": ["2020_09_15"], "signature_severity": ["Major"], "deployment": ["Perimeter"], "created_at": ["2017_02_07"], "attack_target": ["Client_Endpoint"], "affected_product": ["Windows_XP_Vista_7_8_10_Server_32_64_Bit"]}}, "dns": {"query": [{"type": "query", "id": 54558, "rrname": "regulationprivilegescan.top", "rrtype": "A", "tx_id": 56}]}, "app_proto": "dns", "flow": {"pkts_toserver": 29, "pkts_toclient": 28, "bytes_toserver": 2279, "bytes_toclient": 3863, "start": "2021-09-21T07:56:24.138658+0200"}, "payload_printable": ".............regulationprivilegescan.top.....", "stream": 0}
2021 Sep 21 05:56:52 OPNsense.localserver-berlin.de->8.12.83.83 Sep 21 07:56:36 OPNsense.localserver-berlin.de suricata[53565]: [1:2023883:2] ET DNS Query to a *.top domain - Likely Hostile [Classification: Potentially Bad Traffic] [Priority: 2] {UDP} 192.168.100.10:60057 -> 192.168.100.1:53
2021 Sep 21 05:56:54 OPNsense.localserver-berlin.de->8.12.83.83 Sep 21 07:56:38 OPNsense.localserver-berlin.de filterlog[62075]: 113,,,b076000b7efad0d8ce25adbcb1bc0004,igb3,match,block,in,4,0xe0,,1,47329,0,none,17,udp,351,192.168.100.242,224.0.0.251,5353,5353,331
2021 Sep 21 05:56:54 OPNsense.localserver-berlin.de->8.12.83.83 Sep 21 07:56:38 OPNsense.localserver-berlin.de filterlog[62075]: 113,,,b076000b7efad0d8ce25adbcb1bc0004,igb3,match,block,in,4,0x0,,1,18811,0,DF,17,udp,32,192.168.100.246,233.89.188.1,10001,10001,12
Title: Re: Wazuh für Anfänger
Post by: mimugmail on September 21, 2021, 01:10:42 pm
Und du siehst das nicht in den Events?
Bei mir wird das richtig erkannt:


root@syslog01:~# /var/ossec/bin/wazuh-logtest
Starting wazuh-logtest v4.2.1
Type one log per line

{"timestamp": "2021-09-21T07:56:36.203646+0200", "flow_id": 196204642704802, "in_iface": "igb3", "event_type": "alert", "src_ip": "192.168.100.10", "src_port": 60057, "dest_ip": "192.168.100
.1", "dest_port": 53, "proto": "UDP", "tx_id": 56, "alert": {"action": "allowed", "gid": 1, "signature_id": 2023883, "rev": 2, "signature": "ET DNS Query to a *.top domain - Likely Hostile",
 "category": "Potentially Bad Traffic", "severity": 2, "metadata": {"updated_at": ["2020_09_15"], "signature_severity": ["Major"], "deployment": ["Perimeter"], "created_at": ["2017_02_07"],
"attack_target": ["Client_Endpoint"], "affected_product": ["Windows_XP_Vista_7_8_10_Server_32_64_Bit"]}}, "dns": {"query": [{"type": "query", "id": 54558, "rrname": "regulationprivilegescan.
top", "rrtype": "A", "tx_id": 56}]}, "app_proto": "dns", "flow": {"pkts_toserver": 29, "pkts_toclient": 28, "bytes_toserver": 2279, "bytes_toclient": 3863, "start": "2021-09-21T07:56:24.1386
58+0200"}, "payload_printable": ".............regulationprivilegescan.top.....", "stream": 0}

**Phase 1: Completed pre-decoding.

**Phase 2: Completed decoding.
name: 'json'
alert.action: 'allowed'
alert.category: 'Potentially Bad Traffic'
alert.gid: '1'
alert.metadata.affected_product: '['Windows_XP_Vista_7_8_10_Server_32_64_Bit']'
alert.metadata.attack_target: '['Client_Endpoint']'
alert.metadata.created_at: '['2017_02_07']'
alert.metadata.deployment: '['Perimeter']'
alert.metadata.signature_severity: '['Major']'
alert.metadata.updated_at: '['2020_09_15']'
alert.rev: '2'
alert.severity: '2'
alert.signature: 'ET DNS Query to a *.top domain - Likely Hostile'
alert.signature_id: '2023883'
app_proto: 'dns'
dest_ip: '192.168.100.1'
dest_port: '53'
dns.query: '[{'type': 'query', 'id': 54558, 'rrname': 'regulationprivilegescan.top', 'rrtype': 'A', 'tx_id': 56}]'
event_type: 'alert'
flow.bytes_toclient: '3863'
flow.bytes_toserver: '2279'
flow.pkts_toclient: '28'
flow.pkts_toserver: '29'
flow.start: '2021-09-21T07:56:24.138658+0200'
flow_id: '196204642704802.000000'
in_iface: 'igb3'
payload_printable: '.............regulationprivilegescan.top.....'
proto: 'UDP'
src_ip: '192.168.100.10'
src_port: '60057'
stream: '0'
timestamp: '2021-09-21T07:56:36.203646+0200'
tx_id: '56'

**Phase 3: Completed filtering (rules).
id: '86601'
level: '3'
description: 'Suricata: Alert - ET DNS Query to a *.top domain - Likely Hostile'
groups: '['ids', 'suricata']'
firedtimes: '1'
mail: 'False'
**Alert to be generated.
Title: Re: Wazuh für Anfänger
Post by: ollibraun on September 21, 2021, 01:32:38 pm
Zu dem angegebenen Zeitpunkt habe ich Einträge von der OPNsense: Multiple pfSense firewall blocks events from same source

Aber nichts von Suricata.
Title: Re: Wazuh für Anfänger
Post by: mimugmail on September 21, 2021, 04:37:17 pm
Dann macht syslog-ng das Format kaputt. Installier mal den wazuh agent und trag das json file ein
Title: Re: Wazuh für Anfänger
Post by: ollibraun on September 21, 2021, 06:02:15 pm
Du  meinst den Agent auf der OPNsense, richtig? Aber nicht Suricata auf dem Wazuh-Server, wie ich den oben genannten Link interpretiert hatte.

Bin die Woche extern, da traue ich mich das nicht, weil ich die OPNsense nicht lahmlegen möchte.
Title: Re: Wazuh für Anfänger
Post by: mimugmail on September 24, 2021, 10:26:32 am
So siehts mit Wazuh Agent aus.
Syslog mit Eve geht nicht, da greift der JSON Decoder nicht. Schickst du plain an Wazuh gibts keinen Decoder.
Ich versuch mal einen zu schreiben, aber meine PR's werden i.d.R. von Wazuh nicht angenommen :D
Title: Re: Wazuh für Anfänger
Post by: Sensler3000 on November 07, 2022, 08:33:09 pm
Nach langer intensiver suche und debugging hat bei mir dieses Setup Funktioniert:

DECODER
/var/ossec/etc/decoders/local_decoder.xml

Code: [Select]
<decoder name="opnsense">
  <program_name>suricata</program_name>
</decoder>

<decoder name="opnsense-child">
  <parent>opnsense</parent>
  <plugin_decoder offset="after_parent">JSON_Decoder</plugin_decoder>
</decoder>

RULE
/var/ossec/etc/rules/local_rules.xml

Code: [Select]
<group name="opnsense,">

    <rule id="330000" level="0">
        <decoded_as>opnsense</decoded_as>
        <description>OPNSense Suricata Logs</description>
    </rule>

    <!-- OPNSense Suricata Event Type -->
    <rule id="330001" level="7">
        <if_sid>330000</if_sid>
        <field name="event_type">^alert$</field>
        <description>OPNSense Suricata: Alert Event rules Group</description>
        <group>alert_event,</group>
    </rule>

</group>

Danach Wazuh neustarten und es sollte klappen.