docs: Parte C — configurazione Wazuh per ARGOS (decoder, M365/Entra, anti-rumore)
This commit is contained in:
parent
f5aee30d2a
commit
f1fe6cd9ca
96
README.md
96
README.md
|
|
@ -239,6 +239,102 @@ dal SIEM: è la conferma che backend ↔ indexer comunicano.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Parte C — Configurazione Wazuh per ARGOS (decoder, M365/Entra, anti-rumore)
|
||||||
|
|
||||||
|
A questo punto Wazuh raccoglie, ma non normalizza ancora nel formato canonico
|
||||||
|
`data.argos.*`. La configurazione completa (decoder/rule per-vendor + moduli cloud +
|
||||||
|
baseline anti-rumore) **non si scrive a mano**: è versionata nel repo `argos` sotto
|
||||||
|
`integrazioni/` ed è già documentata in modo autoritativo in
|
||||||
|
**`integrazioni/installers/README.md`**. Sulla VM ARGOS il path è
|
||||||
|
`/opt/argos/app/integrazioni/`.
|
||||||
|
|
||||||
|
### C.1 Come portare decoder e config sulla VM Wazuh
|
||||||
|
|
||||||
|
Due strade equivalenti:
|
||||||
|
- **Da UI ARGOS**: Impostazioni → Integrazioni SIEM → abilita i vendor in uso →
|
||||||
|
*Scarica Bundle Completo* → copia lo zip sulla VM Wazuh (`scp`/`sftp`).
|
||||||
|
- **Dal repo**: copia `/opt/argos/app/integrazioni/` dalla VM ARGOS alla VM Wazuh.
|
||||||
|
|
||||||
|
### C.2 Ordine su un Wazuh appena installato (sintesi di `installers/README.md`)
|
||||||
|
|
||||||
|
1. **`opensearch-template-patches/install.sh`** — PRIMA di qualsiasi evento. Corregge
|
||||||
|
il bug Filebeat upstream **#24331** (campi nested di MS Graph/Office365 dichiarati
|
||||||
|
`keyword` invece di `object` → mapping corrotto). Senza questa patch gli eventi
|
||||||
|
Entra/M365 passano `wazuh-logtest` ma **non vengono indicizzati**, quindi ARGOS non
|
||||||
|
li vede. Va **riapplicata dopo ogni upgrade** del manager (il restart re-installa il
|
||||||
|
template stock).
|
||||||
|
2. *(solo se gli switch Cisco passano da Graylog)* `gelf-syslog-bridge/install.sh`.
|
||||||
|
3. **`wazuh-config-template/`**: compila `secrets.env` (tenant/client/secret M365+Entra,
|
||||||
|
parametri cliente), esegui `render-config.sh`, copia l'`ossec.conf` generato in
|
||||||
|
`/var/ossec/etc/`. Il template include già `<remote>` syslog 514, i moduli
|
||||||
|
`<ms-graph>` e `<office365>`, e il `<ruleset>` con `decoder_exclude`/`rule_exclude`
|
||||||
|
dei decoder stock (Cisco/FortiGate/FortiAuth/Sophos/ESET) così non doppiano i
|
||||||
|
canonici ARGOS.
|
||||||
|
4. **`deploy.sh`** — sincronizza i decoder/rule dei vendor abilitati in
|
||||||
|
`/var/ossec/etc/{decoders,rules}/argos/` (backup + `wazuh-logtest` + rollback
|
||||||
|
automatico). `sudo bash deploy.sh` (oppure `--dry-run` / `--no-restart`).
|
||||||
|
5. `sudo systemctl restart wazuh-manager`.
|
||||||
|
6. Validazione: `sudo /var/ossec/bin/wazuh-analysisd -t` deve uscire 0; `wazuh-logtest`
|
||||||
|
sui sample deve mostrare i decoder canonici che matchano.
|
||||||
|
|
||||||
|
### C.3 Eventi del server stesso (riduzione rumore)
|
||||||
|
|
||||||
|
Il template ARGOS imposta già una baseline sobria: **FIM (`syscheck`) disabilitato** sul
|
||||||
|
manager e `decoder_exclude`/`rule_exclude` per non far scattare i decoder vendor stock.
|
||||||
|
Su una VM collector da 8 GB conviene tagliare anche il self-monitoring residuo, editando
|
||||||
|
`/var/ossec/etc/ossec.conf`:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<rootcheck><disabled>yes</disabled></rootcheck>
|
||||||
|
<wodle name="syscollector"><disabled>yes</disabled></wodle>
|
||||||
|
<vulnerability-detection><enabled>no</enabled></vulnerability-detection>
|
||||||
|
```
|
||||||
|
|
||||||
|
(Disabilitare `vulnerability-detection` libera anche RAM e i ~7,5 GB di DB import — utile
|
||||||
|
sugli 8 GB.) Si consiglia di **lasciare attiva la raccolta di `auth.log`** della VM Wazuh:
|
||||||
|
i tentativi SSH sul SIEM stesso sono eventi che vuoi vedere. Riavvia il manager dopo le
|
||||||
|
modifiche.
|
||||||
|
|
||||||
|
### C.4 Microsoft 365 + Entra ID
|
||||||
|
|
||||||
|
- **App Registration** in Entra ID (un'unica app per entrambi):
|
||||||
|
- Microsoft Graph (permessi *application*): `AuditLog.Read.All`, `Directory.Read.All`,
|
||||||
|
`SecurityEvents.Read.All` e — avendo **Entra ID P2** — `IdentityRiskyUser.Read.All` e
|
||||||
|
`IdentityRiskEvent.Read.All` (per riskyUsers/riskDetections di Identity Protection).
|
||||||
|
- Office 365 Management API: `ActivityFeed.Read`.
|
||||||
|
- **Consenso amministratore** + audit logging abilitato sul tenant.
|
||||||
|
- Inserisci `tenant_id` / `client_id` / `secret_value` in `secrets.env`: finiscono nei
|
||||||
|
blocchi `<ms-graph>` e `<office365>` dell'`ossec.conf` generato.
|
||||||
|
- **Vincolo**: senza lo step C.2.1 (template patch) gli eventi Entra/M365 non si
|
||||||
|
indicizzano. È il primo controllo da fare se "logtest ok ma zero alert in OpenSearch".
|
||||||
|
- Nota versione: il bug delle *default rules* MS Graph (#34240) è risolto da **Wazuh
|
||||||
|
4.14.4**; su installazione fresca ≥ 4.14.4 non serve alcun workaround manuale.
|
||||||
|
|
||||||
|
### C.5 Stato per sorgente — stack Tecnotel
|
||||||
|
|
||||||
|
| Sorgente | Dominio · range | Canale | Stato registry |
|
||||||
|
|---|---|---|---|
|
||||||
|
| FortiGate | firewall · 111000–111199 | syslog 514 | ✅ production |
|
||||||
|
| Cisco IOS (switch) | switch · 118000–118199 | syslog (vedi nota) | ✅ production |
|
||||||
|
| Ubiquiti UniFi (WiFi/AP) | wireless · 119200–119299 | syslog 514 | ✅ production |
|
||||||
|
| QNAP NAS | applications · 120200–120299 | syslog 514 | ✅ production-v1 |
|
||||||
|
| ESET | endpoint · 116000–116199 | docker `eset-integration` | ✅ production |
|
||||||
|
| Entra ID | identity · 114000–114099 | wodle `ms-graph` | ✅ production |
|
||||||
|
| Microsoft 365 | cloud · 113000–113099 | wodle `office365` | ✅ production |
|
||||||
|
| 3CX | voip · 117000–117099 | syslog 514 | ⚠️ placeholder (decoder da scrivere) |
|
||||||
|
|
||||||
|
Note operative:
|
||||||
|
- **FortiGate**: syslog free-style → 514. Su FortiOS 7.4.x usa il glob `*PATTERN*`, non il
|
||||||
|
regex `~` (bug del parser su quella build).
|
||||||
|
- **Cisco IOS**: il path canonico ARGOS prevede Cisco → Graylog → `gelf-syslog-bridge` →
|
||||||
|
Wazuh. Se i tuoi switch inviano **syslog diretto**, va verificato che il decoder
|
||||||
|
`cisco-ios` parsi quel formato: in caso contrario o si interpone Graylog, o si adatta il
|
||||||
|
decoder sui log reali.
|
||||||
|
- **3CX**: stub nel registry — il decoder canonico va costruito su 3-5 righe di syslog
|
||||||
|
reali prima di abilitarlo.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Opzioni certificato SSL (console ARGOS)
|
## Opzioni certificato SSL (console ARGOS)
|
||||||
|
|
||||||
- **Let's Encrypt** — automatico, richiede DNS pubblico già puntato alla VM.
|
- **Let's Encrypt** — automatico, richiede DNS pubblico già puntato alla VM.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue