chore: update wazuh
This commit is contained in:
@@ -1,11 +1,17 @@
|
|||||||
<!-- Règles WireGuard VPN — IDs 100800-100826
|
<!-- Règles WireGuard VPN — IDs 100800-100826
|
||||||
Les logs kernel passent par rule 5100 (program_name=^kernel).
|
Les logs kernel passent par rule 5100 (program_name=^kernel).
|
||||||
On hérite via if_sid 5100 et on filtre par match/regex.
|
On hérite via if_sid 5100 et on filtre par match/regex.
|
||||||
Les rules 1082x sont des enfants qui redescendent le niveau à 0
|
Les rules 1082x sont des enfants pour les peers de confiance
|
||||||
pour les peers de confiance (etc/lists/wireguard-trusted-ips) :
|
(etc/lists/wireguard-trusted-ips) : le negate="yes" sur <list>
|
||||||
le negate="yes" sur <list> n'est pas supporté par analysisd ici,
|
n'est pas supporté par analysisd ici, donc on matche positivement
|
||||||
donc on matche positivement et on laisse la règle la plus
|
et on laisse la règle la plus spécifique (l'enfant) l'emporter
|
||||||
spécifique (l'enfant) l'emporter sur le parent. -->
|
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,">
|
<group name="wireguard,vpn,">
|
||||||
|
|
||||||
@@ -26,7 +32,7 @@
|
|||||||
<group>wireguard,vpn_handshake,</group>
|
<group>wireguard,vpn_handshake,</group>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule id="100821" level="0">
|
<rule id="100821" level="3">
|
||||||
<if_sid>100801</if_sid>
|
<if_sid>100801</if_sid>
|
||||||
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
||||||
<description>WireGuard: handshake initiation - peer de confiance $(srcip)</description>
|
<description>WireGuard: handshake initiation - peer de confiance $(srcip)</description>
|
||||||
@@ -41,7 +47,7 @@
|
|||||||
<group>wireguard,vpn_handshake,</group>
|
<group>wireguard,vpn_handshake,</group>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule id="100822" level="0">
|
<rule id="100822" level="3">
|
||||||
<if_sid>100802</if_sid>
|
<if_sid>100802</if_sid>
|
||||||
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
||||||
<description>WireGuard: handshake reponse - peer de confiance $(srcip)</description>
|
<description>WireGuard: handshake reponse - peer de confiance $(srcip)</description>
|
||||||
@@ -56,7 +62,7 @@
|
|||||||
<group>wireguard,vpn_handshake,</group>
|
<group>wireguard,vpn_handshake,</group>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule id="100823" level="0">
|
<rule id="100823" level="3">
|
||||||
<if_sid>100803</if_sid>
|
<if_sid>100803</if_sid>
|
||||||
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
||||||
<description>WireGuard: handshake complet - peer de confiance $(srcip)</description>
|
<description>WireGuard: handshake complet - peer de confiance $(srcip)</description>
|
||||||
@@ -98,7 +104,7 @@
|
|||||||
<group>wireguard,vpn_roaming,</group>
|
<group>wireguard,vpn_roaming,</group>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule id="100825" level="0">
|
<rule id="100825" level="3">
|
||||||
<if_sid>100815</if_sid>
|
<if_sid>100815</if_sid>
|
||||||
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
||||||
<description>WireGuard: roaming - peer de confiance $(id) vers $(srcip)</description>
|
<description>WireGuard: roaming - peer de confiance $(id) vers $(srcip)</description>
|
||||||
@@ -113,7 +119,7 @@
|
|||||||
<group>wireguard,vpn_reconnected,</group>
|
<group>wireguard,vpn_reconnected,</group>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule id="100826" level="0">
|
<rule id="100826" level="3">
|
||||||
<if_sid>100816</if_sid>
|
<if_sid>100816</if_sid>
|
||||||
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
<list field="srcip" lookup="match_key">etc/lists/wireguard-trusted-ips</list>
|
||||||
<description>WireGuard: reconnexion - peer de confiance $(srcip)</description>
|
<description>WireGuard: reconnexion - peer de confiance $(srcip)</description>
|
||||||
|
|||||||
@@ -29,10 +29,20 @@ DASHBOARD_PASS = os.environ.get("DASHBOARD_PASSWORD", "E9Jpr6586kQ3wYrCS2!")
|
|||||||
INDEX_PATTERN = "wazuh-alerts-*"
|
INDEX_PATTERN = "wazuh-alerts-*"
|
||||||
|
|
||||||
# ── Queries ────────────────────────────────────────────────────────────────────
|
# ── 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"
|
# Note: pour un peer de la liste de confiance (etc/lists/wireguard-trusted-ips),
|
||||||
Q_HANDSHAKES = "rule.id: 100801 OR rule.id: 100802 OR rule.id: 100803"
|
# 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_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 ────────────────────────────────────────────────────────────────
|
# ── Client HTTP ────────────────────────────────────────────────────────────────
|
||||||
ctx = ssl.create_default_context()
|
ctx = ssl.create_default_context()
|
||||||
@@ -337,7 +347,9 @@ def main():
|
|||||||
"description": "Handshakes peers, deconnexions, timeouts, activite par IP — agent vpn-prod",
|
"description": "Handshakes peers, deconnexions, timeouts, activite par IP — agent vpn-prod",
|
||||||
"panelsJSON": json.dumps(PANELS),
|
"panelsJSON": json.dumps(PANELS),
|
||||||
"optionsJSON": json.dumps({"useMargins": True, "hidePanelTitles": False}),
|
"optionsJSON": json.dumps({"useMargins": True, "hidePanelTitles": False}),
|
||||||
"timeRestore": False,
|
"timeRestore": True,
|
||||||
|
"timeFrom": "now-24h",
|
||||||
|
"timeTo": "now",
|
||||||
"kibanaSavedObjectMeta": {
|
"kibanaSavedObjectMeta": {
|
||||||
"searchSourceJSON": json.dumps({"query": {"language": "kuery", "query": ""}, "filter": []})
|
"searchSourceJSON": json.dumps({"query": {"language": "kuery", "query": ""}, "filter": []})
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user