Circa un anno fa iniziava la nostra attività che ha portato alla definizione ed allo sviluppo dell’agent Safed, partendo dalla base fornita da SNARE di Intersect Alliance e dalla nostra esperienza sul campo. Come il predecessore a cui ci siamo ispirati, Safed nelle varie versioni è disponibile nei termini della GNU Public License.
Gli obiettivi che ci siamo prefissati erano i seguenti:
Inizialmente ci siamo concentrati sull’ampliamento delle piattaforme supportate, ed a rendere più robusta la comunicazione tra agent e server syslog.
In particolare, poter utilizzare il solo protocollo UDP, che non offre di base alcuna garanzia sulla ricezione dei messaggi inviati dall’agent, ci sembrava una limitazione alquanto importante, soprattutto su reti congestionate. Per questo motivo si è introdotta la possibilità di utilizzare, nella comunicazione tra agent e server, anche il protocollo TCP che offre una maggiore affidabilità.
Con l’implementazione della trasmissione SYSLOG via TCP, ci siamo accorti che avevamo comunque bisogno di un qualche tipo di gestione a livello applicativo per ottenere il livello di affidabilità cercato. Il protocollo SYSLOG di per sè non prevede un acknowledge di trasmissione e così abbiamo introdotto un numero progressivo per i messaggi SYSLOG che ci permette di identificare univocamente ogni singolo messaggio, e di poter verificare lato server se ci sono stati buchi nella ricezione. In tal caso l’agent Safed è in grado di ricevere la richiesta di ritrasmissione di un particolare evento SYSLOG in base al numero univoco. Questo strato aggiuntivo a livello applicativo fra Safed e NetEye ci dà la garanzia che tutti gli eventi trasmessi siano anche stati ricevuti e ci permette di usare l’agent in maniera sicura sia in modalità UDP che TCP. Di conseguenza, adesso è più vantaggioso usare UDP con il controllo di integrità aggiuntiva, siccome UDP è molto più veloce e meno esigente in termini di risorse rispetto al protocollo TCP, risultando quindi anche più scalabile. Svantaggio di UDP è che non permette la comunicazione criptata e in tal caso bisogna usare TCP con TLS, opzione adesso disponibile nell’agent Safed.
Abbiamo poi affrontato il problema, sentito soprattutto nel mondo Windows, di rendere più facile ed immediata la configurazione dell’agent per il tracciamento degli accessi degli amministratori di sistema. A tal fine abbiamo integrato nell’agent la funzionalità di individuazione delle utenze con privilegi amministrativi (sia locali che di dominio), ed abbiamo migliorato il potere espressivo delle regole di filtraggio degli eventi, adottando ovunque l’uso delle espressioni regolari. Per monitorare i logon / logoff degli amministratori di sistema adesso è sufficiente effettuare una spunta di una check box e tutto viene gestito da Safed.
Introducendo l’agent in realtà IT piuttosto estese, ci siamo dovuti confrontare con la problematica di gestire la configurazione dell’agent su centinaia di host: in questo caso anche l’interfaccia web di amministrazione si rilevava insufficiente. Abbiamo così esteso quest’interfaccia in modo da consentire l’acquisizione e la fornitura della configurazione in blocco, tramite una singola richiesta http, ed offrire così la possibilità di amministrare centralmente la configurazione di tutti gli agent su NetEye in base a dei template che vengono assegnati ai singoli host. Questo rende agevole e veloce la riconfigurazione delle regole presenti sull’agent Safed da parte degli amministratori di sistema, poichè non è più necessario dover lavorare su ogni singola istanza di agent.
Infine, con la nuova versione di Safed, vengono introdotti notevoli miglioramenti relativamente alla sicurezza, sia per l’amministrazione da remoto degli agent, che per quanto riguarda la comunicazione tra agent e server syslog e per la prima volta si mette a disposizione una versione specifica per piattaforme Windows a 64 bit, superando le limitazioni che si avevano con gli eseguibili a 32 bit.
Finalmente è stata anche migliorata la funzionalità di logging dell’agent stesso, adesso configurabile e gestibile direttamente dall’interfaccia web di amministrazione remota che permette di fare del troubleshooting semplice e veloce da parte degli amministratori.
L’introduzione della comunicazione sicura tra agent e server syslog via TLS su TCP, una volta generati i certificati X.509, consente ad agent e server di verificare la rispettiva identità e di far poi viaggiare tutte le informazioni su un canale criptato.
L’interfaccia web di amministrazione remota della configurazione degli agent (cambiamenti di configurazione e verifica dettagliata dello stato dell’agent) adesso supporta anche il protocollo HTTPS, che permette di far viaggiare tutte queste informazioni su un canale criptato. Inoltre sono state create delle suite di test con il tool Selenium HQ, che ci consentono di verificare con estrema efficacia il corretto funzionamento di questa parte dell’agent attraverso dei test automatici.
L’agent Safed supporta le seguenti piattaforme: nel mondo Windows: Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008R2, sia a 32 che a 64 bit; nel mondo Unix sono supportati IBM-AIX, HP-UX, Solaris e Linux in tutti i diversi flavour.
Che cosa vogliamo fare nel 2011 ?
Ci concentriamo ad estendere le funzioni dell’agent Safed sui vari eventi dei sistemi operativi. Vogliamo raggiungere l’integrazione di audit su Linux con Safed. Un altro punto che vogliamo introdurre è il tracciamento degli eventi sui desktop, come ad esempio il collegamento di un disco usb esterno o anche di chiavette usb. In parte questi tipi di evento vengono già tracciati dall’agent ma vogliamo rendere più semplice la configurazione, così come vogliamo rendere univoca la configurazione fra i vari ambienti Microsoft Windows XP, Vista e Windows 7.
Ed ovviamente saremo ben lieti per ogni feedback vogliate fornirci, che sicuramente ci aiuterà a migliorare sempre più la qualità complessiva del nostro lavoro ed a renderlo sempre più interessante.
è prevista la possibilità di fare simulcasting, per inviare il log a più syslog server?
Grazie
Loernzo