10.07.2015 Views

Gestione dei Certificati X.509 Firma Digitale Firma ... - Clizio.com

Gestione dei Certificati X.509 Firma Digitale Firma ... - Clizio.com

Gestione dei Certificati X.509 Firma Digitale Firma ... - Clizio.com

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

S3Log<strong>Firma</strong> <strong>Digitale</strong> di StreamL’architettura S3Log è illustrata nella figura seguente.NTP Server (stratum-1)INTERNETTarget GeneratorGenerazione continuaStream TargetNTP Server | ClientS3Log-HandlerS3Log-LoggerSystem Clock• gestione S3Log• PKI minimale• auditingCollettore degliStream TargetS3Log-Signer- Comandi Client- <strong>Firma</strong> digitale TargetStream Target <strong>Firma</strong>tiStream TargetPKCS12di <strong>Firma</strong>MutantBoxCertificato Serverdi NavigazioneINTRANETS3Log-Client- Attivazione firma- Disattivazione firmaPKCS12 diNavigazioneArchitettura S3LogPKCS12 di<strong>Firma</strong>La <strong>com</strong>unicazione tra S3Log-Client e S3Log-Signer viene effettuata mediante una connessioneSSL/TCP, con l’adozione di appositi certificati di navigazione. Su questa connessione certificatal’operatore tramite S3Log-Client trasmette, in fase di attivazione, le credenziali di firma in formatoPKCS12 al processo S3Log-Signer: le credenziali sono opportunamente protette da una frase di passoche viene trasmessa in formato codificato. La frase di passo iniziale viene riassegnata periodicamenteda S3Log-Signer in modo automatico e casuale, garantendo così una protezione dell’integrità delmeccanismo di firma. Le credenziali dell’operatore e la relativa frase di passo variabile sono mantenutedal S3Log-Signer nell’area di memoria protetta (MutantBox).3


S3Log<strong>Firma</strong> <strong>Digitale</strong> di StreamProcessi, File, SequenzeIl servizio S3Log è implementato con il supporto di due processi:S3Log-Signer processo principale di firma digitale <strong>dei</strong> log, monothread e monoconnessione,S3Log-Logger processo secondario di raccolta <strong>dei</strong> log, multithread e multiconnessione.Il processo S3Log-Signer viene armato per la firma da un operatore, che trasmette su un canale sicuroSSL sia il certificato che la chiave segreta di firma (credenziali), che sono poi mantenuti in unamemoria interna protetta (stealth memory di tipo MutantBox). Il processo S3Log-Logger viene creatoe attivato da S3Log-Signer al momento dell’attivazione.La figura seguente illustra lo schema di principio del servizio S3Log.TargetGeneratorLog Messagesprocesso S3Log-Loggerdi raccoltaAppend Log MessagesStatusFileLog StatusLogFileSignedSequence 1SignedSequence 2………SignedSequence NBuildingSequenceprocesso S3Log-Signerdi firmaSign Log SequenceActivate(Cert+Ks)DeactivateI due processi operano con il supporto di due file:Schema di Principio S3LogStatusFileLogFilefile contenente le variabili <strong>com</strong>uni di log, utilizzato per il sincronismo tra S3Log-Signer eS3Log-Loggerfile su cui sono memorizzate le sequenze di log firmateI log sono raccolti in un file di log (LogFile) <strong>com</strong>e sequenze di messaggi (testata + dati), inizialmentenon ancora firmati.Periodicamente il servizio S3Log provvede a firmare l’ultima sequenza raccolta.4


S3Log<strong>Firma</strong> <strong>Digitale</strong> di StreamRaccolta e FilteringLa raccolta degli eventi viene effettuata da un insieme di sensori distribuiti, che sono operativi sullarete cliente, e da uno o più collettori periferici, S3LogCollector. I sensori distribuiti possonointeragire direttamente con il processo S3Log-Logger, o generare log in base allo standard ‘syslog’indirizzati a uno o più processi ‘rsyslogd’ operanti sulla rete (collettori). La figura seguente illustra loschema implementativo del sistema globale.P12<strong>Firma</strong>OperatorClientCertificatoNavigazioneS3Log-Signer<strong>Firma</strong>StealthMemoryP12Log FileLogS3Log-LoggerSystemClockS3Log ServerSTunnelNTPSTunnelS3LogpluginrsyslogdS3Log-CollectorS3LogAgentsyslogredirectorSTunnelEvent LoglogLogapplicativoMS Windows ServerUnix, Linux, Cisco …… applicativi …Schema Implementativo del Servizio S3Log6


S3Log<strong>Firma</strong> <strong>Digitale</strong> di StreamUn collettore è un server ‘rsyslogd’, su piattaforma Unix-like, che opera in accoppiamento con unplugin specifico, S3LogCollector: il processo ‘rsyslogd’ raccoglie gli eventi dai sensori distribuiti, e lipassa al plugin che provvede a marcarli con l’identificativo del sensore (in base all’indirizzo IP) e atrasmetterli al processo S3Log-Logger per la registrazione.Nel caso di non raggiungibilità o non disponibilità della istanza di processo S3Log-Signer (interruzionidi rete o temporanea sospensione del servizio), il plugin collettore S3LogCollector provvede amantenere traccia degli eventi trasmessi, e a riattivare la trasmissione quando il processo S3Log-Logger è nuovamente raggiungibile o disponibile.La <strong>com</strong>unicazione tra il plugin S3LogCollector e il processo S3Log-Logger può essere protettautilizzando una coppia di processi STunnel, che realizzano un canale SSL gestito con i certificati <strong>X.509</strong>propri di S3LogCollector e di S3Log-Logger. In alternativa a STunnel possono essere utilizzate altretipologie di VPN di sistema o applicative.Il plugin S3LogCollector è il <strong>com</strong>ponente S3Log che operare quale front-end di <strong>com</strong>unicazione delservizio ‘syslog’ verso il processo S3LogL.Per la collezione degli eventi di sistema dalla rete il canale di elezione è il protocollo ‘syslog’, cherappresenta lo standard de facto utilizzato da tutte le piattaforma Unix (o di derivazione Unix) e damolti apparati di rete (router, firewall, hub, ...).Un problema basilare nella cattura e raccolta <strong>dei</strong> log degli eventi è la capacità di filtrare i log deglieventi di interesse al fine di successivi trattamenti, quale la firma tramite il servizio S3Log.Molte versioni di Syslogd (Syslog daemon) presenti sul mercato offrono la possibilità di effettuareoperazioni di filtro ed elaborazioni in cascata (sia per ambienti Unix e derivati, che per ambientiMicrosoft Windows). Molte di queste soluzioni sono closed-source, e solo due sono open-source:1. syslog-ng2. RsyslogPer quanto riguarda syslog-ng, il package viene distribuito in tre versioni, di cui solo una (di base) inopen-source. Molte opzioni di interesse sono presenti solo nelle versioni closed-source (registrazione<strong>dei</strong> log crittografata, firmata e con time-stamp, buffering su disco, supporto per Microsoft Windows,interfaccia di gestione Web, supporto in High-availability, interfaccia di browsing, ricerca, e reporting<strong>dei</strong> log).Per contro Rsyslog è full-open-source, e offre molte caratteristiche di livello superiore rispetto asyslog-ng (protocollo RELP, RFC 3195/BEEP, mark message generator, GSS-API, protocollo TLS/TCP,<strong>com</strong>pressione ZLIB <strong>dei</strong> messaggi, nuovo protocollo syslog-IETF, filtering ad ampio spettro, architetturamodulare, ...). Offre una interfaccia Web di gestione open-source (phpLogCon) che può esserefacilmente integrata nella interfaccia Web di gestione di S3Log.Per tale motivo Rsyslog è il package di riferimento di S3Log per la cattura, filtraggio e raccolta deglieventi ‘syslog’ dalla rete.Ovviamente la soluzione S3Log è indipendente dal package ‘syslog’ adottato, purchè permettaadeguate tecniche di filtering degli eventi, e l’attivazione in piping di S3LogCollector per il bufferingdegli eventi e l’invio al processo S3LogL di cattura e raccolta di firma.Il plugin S3LogCollector è implementato <strong>com</strong>e un processo multithread, in grado di acquisire messaggidi log in input da un servizio ‘syslog’, e di trasmetterli al processo S3LogL, garantendone <strong>com</strong>unque ilmantenimento temporaneo in una memoria a medio termine implementata con il supporto di undatabase embedded SQLite.7


S3Log<strong>Firma</strong> <strong>Digitale</strong> di StreamLe implementazioni del servizio ‘syslog’ disponibili sul mercato e integrabili con S3Log presentano leseguenti caratteristiche:• ricevono i dati dai sensori di rete mediante <strong>com</strong>unicazioni UDP (nel cui ambito i pacchetti possonoessere persi in particolari condizioni di carico della rete), o TCP (in cui i pacchetti sono raccolti conun maggior grado di affidabilità);• salvano i dati raccolti su file locali del sistema (ad esempio /var/log/messages);• possono passare in piping i dati (o sottoinsiemi di essi) a processi di plugin (quale ad esempioS3LogCollector) per successive elaborazioni.Il meccanismo di piping non è particolarmente robusto in nessuna delle piattaforme di interesse, inquanto non soggetto ad handshaking, e può causare in condizioni di carico elevato la perdita parzialedi dati scambiati sulla pipe.Per tale motivo S3LogCollector effettua la lettura dal pipe di input in modalità raw a blocchi, e con ilsupporto di un buffer di memoria circolare sufficientemente ampio, dando priorità alla lettura <strong>dei</strong> datidalla pipe al fine di eliminare (o almeno ridurre) la perdita di dati in condizioni di carico elevato.Per garantire un throughput adeguato, eliminando (o almento riducendo) la perdita di dati, il processoS3LogCollector è implementato <strong>com</strong>e una catena di tre thread in cascata, così configurata:1. main thread di cattura <strong>dei</strong> dati dalla pipe di input (stdin), che legge i dati dalla pipe e liinserisce su una coda di memoria sincronizzata;2. thread di ricezione (RX-thread), che acquisice i dati catturati dal main thread sulla coda dimemoria sincronizzata e li inserisce in un database embedded SQLite (passagio da una memoria abreve termine e volatile ad una memoria a lungo termine);3. thread di trasmissione (TX-thread), che acquisisce in modo sincronizzato blocchi di dati daldatabase embedded SQLite, li trasmette al processo S3LogLogger, e li cancella dal databaseembedded.La figura seguente illustra l’architettura interna del processo e <strong>dei</strong> relativi thread.main threadS3LogCollector pluginsyslog- pipe input- sync.enqueuesynchromemoryqueueMemoriaa brevetermineRX thread- sync.dequeue- sync.insert DBSQLiteDataBaseMemoriaa lungotermineTX thread- sync.select DB- network send- sync.delete DBArchitettura di S3LogCollector8


S3Log<strong>Firma</strong> <strong>Digitale</strong> di StreamPunti di RaccoltaPer la cattura di eventi dai sistemi Microsoft Windows su protocollo ‘syslog’ il servizio S3Log prevedel’adozione di un servizio Windows (S3LogAgent) installato a bordo <strong>dei</strong> sistemi Windows di interesseopportunamente configurato.S3LogAgent è installato <strong>com</strong>e servizio in ambiente Microsoft Windows 2000/XP/2003/Vista per fornireuna <strong>com</strong>patibilità verso il servizio di rete RSyslog. Gli eventi registrati nell’EventLog sono inoltrati alservizio RSyslog. S3LogAgent supporta anche l’inoltro di log applicativi.S3LogAgent è una evoluzione di NTSyslog della SaberNet.net e di SyslogAgent della DatagramConsulting Sweden, entrambi rilasciati sotto licenza GNU. Il programma di controllo S3LogAgentConfigè una evoluzione di NTSyslogCtrl di Didier Liroulet. Il programma è stato modificato ed esteso per:• <strong>Gestione</strong> <strong>dei</strong> log applicativi• Ottimizzazione delle performance• Riduzione del numero di query ‘SID-lookup’ al domain server• Invio <strong>dei</strong> messaggi syslog su protocollo TCP se possibile, sia in chiaro che via TLS• Opzione di ping del server prima dell’invio in modalità UDPIn base alla licenza GNU <strong>dei</strong> package originali, anche S3LogAgent e S3LogAgentConfig sono rilasciatisotto licenza GNU.Per altre tipologie <strong>dei</strong> punti di raccolta degli eventi (sistemi operativi Unix/Linux/MacOS, databaseOracle/PostGres/MySQL/Firebird, ..., si rimanda alle specifiche tecniche di raccolta, analisi e triggeringimplementabili specificamente al fine di instradare appositi messaggi sui canali ‘syslog’ indirizzati aiserver ‘rsyslogd’ e ai relativi meccanismi di filtering e collezione.9


S3Log<strong>Firma</strong> <strong>Digitale</strong> di Stream10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!