Oggi è sorto il bisogno di monitorare le modifiche a determinati file sul server, ci sono molti modi diversi, ad esempio , ma poiché recentemente ho iniziato a usare , ho deciso di monitorare i file con Elasticsearch, uno dei suoi .
Non descriverò l'installazione di Elastics stack e Auditbeat, tutto è spiegato nei manuali, l'unica cosa è che, dopo l'installazione, dovete modificare il file auditbeat.yml, nel modulo file_integrity aggiungete il percorso del file da monitorare.
Dopo la configurazione e l'avvio, apparirà un indice in Kibana auditbeat-*

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

in Definire la query di estrazione scriviamo quanto segue:
Definire la query di estrazione
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"file.path": {
"query": ""
}
}
}
],
"filter": [
{
"term": {
"event.action": {
"value": "attributes_modified" #modifiche agli attributi, possibile created o deleted
}
}
},
{
"range": {
"@timestamp": {
"from": "now-1m" #periodo per cui monitoriamo la modifica
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
}Dopo facciamo clic sul pulsante Esegui e verifichiamo la query, dovrebbe apparire qualcosa di simile:

Proviamo a modificare il file di destinazione e a rieseguire la query:

come vedete hits è cambiato a 2, facciamo clic su aggiornamento e creiamo un trigger per cambiare il valore:

Lasciamo tutto come nell'immagine.
Poi è possibile configurare notifiche su Slack o altri messaggeri.
Fonte: habr.com
