chore: update wazuh
This commit is contained in:
@@ -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": []})
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user