Safed e` l’acronimo di Security Auditing ForwardEr Daemon ed e` la nuova suite di agent open source sviluppata a partire dalla base fornita dagli agent SNARE di Intersect Alliance, che viene proposta ed utilizzata da NetEye.
Fino a poco tempo fa, nelle installazioni NetEye per l’adeguamento al provvedimento del Garante della Privacy del 24/12/2008 si utilizzavano gli agent SNARE per individuare gli eventi di logon/logoff da parte dei sysadm e dei DBA e per inviare queste informazioni real time al server NetEye per l’archiviazione.
Con l’esperienza maturata presso i nostri clienti, abbiamo deciso di lavorare sulla base open source che avevamo a disposizione per migliorare:
1. affidabilita` della comunicazione tra agent e server syslog;
2. funzionalita` dei filtri per scremare le informazioni di interesse;
3. efficacia della configurazione degli agent;
4. configurazione centralizzata degli agent sul server NetEye;
5. monitoraggio del funzionamento e delle configurazioni degli agent.
Il risultato e` la nuova suite di agent safed.
Per quanto riguarda l’affidabilità della comunicazione tra agent e server, la versione di partenza supportava il solo protocollo UDP, che come e` noto, e` un protocollo efficiente ma e` anche un protocollo senza connessione: una volta preparato il pacchetto, questo viene consegnato alla rete, che cercherà di fare il possibile per portarlo a destinazione ma non e` previsto nessun meccanismo che possa far conoscere all’agent se il pacchetto e` effettivamente arrivato a destinazione oppure no. Abbiamo quindi deciso di offrire la possibilità di utilizzare anche il protocollo TCP che offre maggiori garanzie in questo senso. Ma, come spiegato in questo link , anche il syslog su TCP non e` sufficientemente affidabile perche`, mancando di un ack a livello applicativo, in caso di errore semplicemente non c’e` modo per il client di sapere con certezza cosa e` stato ricevuto dal server e cosa no. Per questo motivo abbiamo provveduto ad identificare univocamente i messaggi attraverso una numerazione progressiva, e ad implementare un meccanismo di caching locale configurabile (e` possibile configurare quanti giorni di log l’agent tiene nella sua cache locale). Queste due feature consentono di effettuare la ritrasmissione in automatico dei messaggi nel caso in cui l’agent rilevi un errore di trasmissione, e, fornendo un meccanismo per individuare eventuali anomalie anche lato server, e` ora possibile effettuare anche la ritrasmissione on demand di eventuali messaggi mancanti. Abbiamo quindi creato uno strato applicativo sicuro, che rende il sistema veramente a prova d’errore, rimanendo conformi alla specifica syslog standard.
E` stata aumentata l’efficacia dei filtri con cui possono essere scremate le righe di log e/o gli eventi di interesse, implementando il matching tramite espressioni regolari anche sulle piattaforme Windows: questo significa che i messaggi possono essere sempre filtrati alla fonte, riducendo sostanzialmente il traffico generato sulla rete per la trasmissione dei log.
Uno dei punti critici degli agent precedenti era inoltre la necessita` di gestire la configurazione host per host attraverso l’interfaccia web: operazione agevole nel caso si debba gestire un numero limitato di macchine, ma che diventa subito onerosa ed impraticabile al crescere del numero di macchine gestite. Per questo motivo, pur lasciando tutte le funzionalita` dell’interfaccia web per la configurazione del singolo agent, abbiamo implementato delle funzionalità di export/import della configurazione via http: questo ci consente di effettuare la gestione centralizzata delle configurazioni sul server NetEye, e di facilitarne la gestione attraverso la definizione di gruppi e profili, semplificando al massimo aggiornamento e deploy di configurazioni simili.
Avendo poi tutte le configurazioni memorizzate anche sul server NetEye, e` possibile implementare dei controlli per verificare che gli agent funzionino correttamente e non siano stati manipolati, cioe` che lavorino con la configurazione corretta.
Per quanto riguarda le versioni Unix/Linux abbiamo aggiunto il supporto anche per HP-UX, ed abbiamo risolto alcuni problemi di consumo eccessivo di CPU (abbiamo reso configurabile l’intervallo tra i check per cambiamenti nei file di log).
Sulle versioni per Windows, abbiamo integrato le funzionalità di SNARE Agent (monitoraggio registro degli eventi) e SNARE Epilog (monitoraggio file di log) in un unico agent, semplificandone gestione e configurazione.