chore: update wazuh

This commit is contained in:
Nuxgrid
2026-07-18 23:41:18 +02:00
parent adf00cf3d0
commit 974b4c0801
2 changed files with 32 additions and 14 deletions
@@ -1,11 +1,17 @@
<!-- Règles WireGuard VPN — IDs 100800-100826
Les logs kernel passent par rule 5100 (program_name=^kernel).
On hérite via if_sid 5100 et on filtre par match/regex.
Les rules 1082x sont des enfants qui redescendent le niveau à 0
pour les peers de confiance (etc/lists/wireguard-trusted-ips) :
le negate="yes" sur <list> n'est pas supporté par analysisd ici,
donc on matche positivement et on laisse la règle la plus
spécifique (l'enfant) l'emporter sur le parent. -->
Les rules 1082x sont des enfants pour les peers de confiance
(etc/lists/wireguard-trusted-ips) : le negate="yes" sur <list>
n'est pas supporté par analysisd ici, donc on matche positivement
et on laisse la règle la plus spécifique (l'enfant) l'emporter
sur le parent.
Niveau 3 (pas 0) : <log_alert_level>3</log_alert_level> dans
ossec.conf exclut tout niveau < 3 de l'index OpenSearch. Un niveau
0 rendrait les handshakes de confiance invisibles du dashboard VPN
(compteurs handshakes/peers actifs à 0). Le groupe vpn_trusted
permet de les filtrer d'une vue "alertes à traiter" sans les
retirer des stats. -->
<group name="wireguard,vpn,">
@@ -26,7 +32,7 @@
<group>wireguard,vpn_handshake,</group>
</rule>
<rule id="100821" level="0">
<rule id="100821" level="3">
<if_sid>100801</if_sid>
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
<description>WireGuard: handshake initiation - peer de confiance $(srcip)</description>
@@ -41,7 +47,7 @@
<group>wireguard,vpn_handshake,</group>
</rule>
<rule id="100822" level="0">
<rule id="100822" level="3">
<if_sid>100802</if_sid>
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
<description>WireGuard: handshake reponse - peer de confiance $(srcip)</description>
@@ -56,7 +62,7 @@
<group>wireguard,vpn_handshake,</group>
</rule>
<rule id="100823" level="0">
<rule id="100823" level="3">
<if_sid>100803</if_sid>
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
<description>WireGuard: handshake complet - peer de confiance $(srcip)</description>
@@ -98,7 +104,7 @@
<group>wireguard,vpn_roaming,</group>
</rule>
<rule id="100825" level="0">
<rule id="100825" level="3">
<if_sid>100815</if_sid>
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
<description>WireGuard: roaming - peer de confiance $(id) vers $(srcip)</description>
@@ -113,7 +119,7 @@
<group>wireguard,vpn_reconnected,</group>
</rule>
<rule id="100826" level="0">
<rule id="100826" level="3">
<if_sid>100816</if_sid>
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
<description>WireGuard: reconnexion - peer de confiance $(srcip)</description>
@@ -29,10 +29,20 @@ DASHBOARD_PASS = os.environ.get("DASHBOARD_PASSWORD", "E9Jpr6586kQ3wYrCS2!")
INDEX_PATTERN = "wazuh-alerts-*"
# ── Queries ────────────────────────────────────────────────────────────────────
Q_ALL = "rule.id: 100801 OR rule.id: 100802 OR rule.id: 100803 OR rule.id: 100810 OR rule.id: 100811 OR rule.id: 100812 OR rule.id: 100815"
Q_HANDSHAKES = "rule.id: 100801 OR rule.id: 100802 OR rule.id: 100803"
# Note: pour un peer de la liste de confiance (etc/lists/wireguard-trusted-ips),
# analysisd indexe l'alerte sous le rule.id de la regle enfant 1082x (voir
# wireguard-rules.xml), pas celui du parent 1008xx. Il faut donc inclure les
# deux jeux d'IDs partout, sinon les peers de confiance disparaissent des stats.
Q_ALL = ("rule.id: 100801 OR rule.id: 100802 OR rule.id: 100803 OR rule.id: 100810 "
"OR rule.id: 100811 OR rule.id: 100812 OR rule.id: 100815 OR rule.id: 100816 "
"OR rule.id: 100821 OR rule.id: 100822 OR rule.id: 100823 OR rule.id: 100825 OR rule.id: 100826")
Q_HANDSHAKES = ("rule.id: 100801 OR rule.id: 100802 OR rule.id: 100803 "
"OR rule.id: 100821 OR rule.id: 100822 OR rule.id: 100823")
Q_WARNINGS = "rule.id: 100810 OR rule.id: 100811 OR rule.id: 100812"
Q_COMPLETE = "rule.id: 100803"
# Peers actifs : cardinalite sur data.srcip, tous rule.id de handshake confondus
# (100802/100822 = reponse envoyee, le cas dominant sur un serveur qui recoit les
# connexions ; 100803/100823 = reponse recue, cote initiateur).
Q_COMPLETE = Q_HANDSHAKES
# ── Client HTTP ────────────────────────────────────────────────────────────────
ctx = ssl.create_default_context()
@@ -337,7 +347,9 @@ def main():
"description": "Handshakes peers, deconnexions, timeouts, activite par IP — agent vpn-prod",
"panelsJSON": json.dumps(PANELS),
"optionsJSON": json.dumps({"useMargins": True, "hidePanelTitles": False}),
"timeRestore": False,
"timeRestore": True,
"timeFrom": "now-24h",
"timeTo": "now",
"kibanaSavedObjectMeta": {
"searchSourceJSON": json.dumps({"query": {"language": "kuery", "query": ""}, "filter": []})
},