Oggi si è presentata l'esigenza di monitorare le modifiche a determinati file sul server, esistono molti modi diversi, ad esempio , ma poiché recentemente ho iniziato a utilizzare , ho deciso di monitorare i file con Elastic, uno dei suoi .
Non descriverò l'installazione di Elastic stack e Auditbeat, tutto è disponibile nei manuali, l'unica cosa è che, dopo l'installazione, è necessario modificare il file auditbeat.yml, nel modulo file_integrity aggiungere il percorso del file da monitorare.
Dopo la configurazione e l'avvio, in Kibana apparirà l'indice auditbeat-*

Successivamente creiamo il monitoraggio, specificando il nome del monitoraggio, l'intervallo di controllo, e anche il tipo di monitoraggio e il file indice:

in Definisci la query di estrazione scriviamo quanto segue:
Definisci la query di estrazione
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"file.path": {
"query": ""
}
}
}
],
"filter": [
{
"term": {
"event.action": {
"value": "attributes_modified" #modifiche agli attributi, può essere created o deleted
}
}
},
{
"range": {
"@timestamp": {
"from": "now-1m" #periodo durante il quale monitoriamo la modifica
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
}Dopo premiamo il pulsante Run e controlliamo la richiesta, dovrebbe apparire qualcosa del genere:

Proviamo a modificare il file di destinazione e ripetiamo la richiesta:

come potete vedere hits è cambiato a 2, premiamo update e creiamo un trigger per la modifica del valore:

Lasciamo tutto come nell'immagine.
In seguito, possiamo configurare le notifiche in Slack o in un altro messaggero.
Fonte: habr.com
