27 giugno 2008

SQL injection: suggerimenti di Microsoft

Torno sul tema della SQL injection per segnalare che il 24 giugno la Microsoft ha pubblicato il Security Advisory n. 954462 (Rise in SQL injection attacks esploiting unverified user data input).

In particolare, è interessante la voce "Suggested Actions", in cui si introducono tre tools (Scrawl, Urlscan e MS Source Code Analyzer) che possono tornare utili per individuare parti di codice di proprie applicazioni web suscettibili di questo tipo di attacchi. Inevitabilmente l'advisory è più incentrato su IIS e ASP, ma può sempre tornare utile.

17 giugno 2008

Cose da non fare per dismettere i vecchi hard disk

E' abbastanza comune comprare sul mercato dell'usato computer o periferiche da cui il venditore non ha prima cancellato i dati memorizzati. Palmari, hard disk, portatili, fotocamere con tracce abbondanti della vita e delle attività del vecchio proprietario.

Sul divertente blog che racconta le epiche avventure del
SuperBabbo, alias il papà "geek" del disegnatore Mauro Borgarello, si può leggere come l'iperattivo genitore ha risolto alla radice la questione della distruzione dei supporti... ma senza i risultati sperati.

6 giugno 2008

Auditing dei database: protezione dei dati

A prescindere da quale architettura di auditing si decida di implementare, la mole di informazioni raccolte sarà comunque elevata e porrà il problema della memorizzazione, dell’archiviazione e della conseguente protezione, soprattutto considerando che la normativa che impone l’uso di sistemi di controllo stabilisce anche per quanto tempo (solitamente anni) le informazioni raccolte devono essere conservate.

Per ovvi motivi di spazio e prestazioni, è sempre consigliabile dedicare un sistema a parte per la memorizzazione di questi dati. Riguardo all’archiviazione, si possono seguire alcune linee guida essenziali:

  • se è prevista la produzione periodica di rapporti occorre programmare il processo di archiviazione di conseguenza, prevedendo anche un periodo transitorio in cui potrebbero essere richieste informazioni più dettagliate per investigare un particolare evento. Per fare un esempio, se si producono rapporti mensili, si potrebbe programmare l’archiviazione dei dati ogni tre mesi;
  • oltre ai dati grezzi è utile archiviare anche i rapporti che ne derivano, perché sono di consultazione più immediata;
  • indicizzare e catalogare le informazioni ogni volta che si procede all’archiviazione consente un rapido recupero in caso di necessità;
  • dove le risorse disponibili lo consentono, adottare una rete SAN (storage area network) o comunque dispositivi sviluppati espressamente per l’archiviazione per semplificare la gestione e la manutenzione dei sistemi.
Le informazioni raccolte e archiviate devono essere protette, perché molto spesso includono dati sensibili. Gli elementi-chiave da rendere sicuri sono: il database in cui vengono raccolti i dati processati dal sistema di auditing; i file di archivio generati a intervalli periodici; quelli passati al sistema di archiviazione; il processo di trasmissione dei file dal sistema di auditing a quello di archiviazione.

Il database popolato dal sistema di auditing è un punto focale della sicurezza dei sistemi informativi. Se non fosse intrinsecamente sicuro si genererebbe il classico infinite loop: per monitorare un sistema di auditing insicuro occorre un altro sistema di auditing, a sua volta insicuro, dunque da monitorare con un altro sistema, e così via. In realtà la sua protezione è abbastanza semplice, perché i sistemi in commercio prevedono il blocco di tutti gli accessi che non provengano dal sistema stesso e impongono regole ferree di sicurezza sul funzionamento del database.

Anche la generazione dei file di archivio dei dati deve seguire un processo preciso per garantirne la sicurezza. I dati estratti dal database di auditing (dal quale vengono eliminati) vanno crittografati per cautelarsi da accessi non autorizzati ai file. Solo il sistema di auditing deve essere in grado di aprirli, decifrarli e utilizzarli. Inoltre, i file di archivio devono essere dotati della firma digitale del sistema per autenticarne i dati (utile eventualmente per certificare la rispondenza alle norme vigenti o a fini investigativi).

Essendo stati criptati i file di archivio, la loro archiviazione nei sistemi di storage non rappresenta un serio problema di sicurezza. L’unica nota riguarda i controlli da effettuare sulla trasmissione dei file e sulla corretta archiviazione, per assicurarsi che le informazioni di auditing siano effettivamente disponibili in caso di necessità e rispondano alle specifiche imposte dalla normativa da rispettare.

Un ultimo accenno può essere fatto sull’auditing del sistema di auditing. Quella che a prima vista potrebbe sembrare una riproposizione del loop infinito di cui si è detto, in realtà è un’ulteriore pratica di sicurezza volta a garantire il corretto funzionamento del sistema di controllo secondo le regole stabilite dalla politica di sicurezza aziendale. È una funzionalità presente nella maggior parte dei sistemi in commercio, in grado di controllare tutte le operazioni compiute sui dati e sulle impostazioni del sistema, particolarmente utile per certificarne la corretta implementazione. Anche dove non richiesto espressamente - e sempre se le risorse a disposizione lo consentono - andrebbe attivato come ulteriore livello del sistema di difesa in profondità.