Archive for the 'Sicurezza' Category

Ennesimo motivo per preferire GNU

Monday, May 26th, 2008

Ormai è parecchio tempo che uso prevalentemente Debian (installata ovunque), tuttavia mi capita ancora ogni tanto di usare Windows per lavoro o per l’università… beh in casi come questi non c’è da meravigliarsi se succede qualche cosa di spiacevole! Oggi volevo scansionare una banconota da 500 euro per la realizzazione di un piccolo manifesto e dovendo lavorare molto con la grafica ho preferito il mio caro Paint Shop Pro su Windows… allora ho avviato Epson Twain e ho fatto partire la scansione della banconota… ma!!!???

banknote scanning

Il programma non mi ha lasciato proseguire, impedendomi la scansione… ecco il messaggio nel dettaglio:

banknote warning

Al momento non volevo crederci… capisco che qualche malintenzionato potrebbe voler stampare banconote false, ma questa mi sembra un’esagerazione idiota… se stampo una banconota scansionata a 200 dpi (infatti nemmeno a quella risoluzione si può procedere alla scansione) viene fuori una schifezza e non ci casca nemmeno un matusa cieco over 100 :eek:

Naturalmente non ho perso tempo a fare del reverse engineering perché non ne valeva proprio la pena: ho riavviato su Linux e con XSane ho potuto scansionare la banconota senza problemi… ah quanto mi piace l’open source! Evviva GNU :-)

GNU

Windows File Protection, sradichiamola!

Saturday, August 5th, 2006

WFP, acronimo di Windows File Protection, è l’ennesima feature di dubbia utilità integrata nelle ultime versioni di Windows. Infatti come spesso accade non funziona quando serve e funziona quando non serve!

WFP è un meccanismo di protezione il cui compito è essenzialmente quello di impedire manomissioni ai files di sistema di Windows: i files cioè essenziali per il funzionamento del sistema operativo, ed in particolare i PE (exe, dll, ocx, sys, cpl etc.) presenti nella directory system32, vengono infatti costantemente monitorati e in caso di eliminazione o modifica degli stessi, WFP tenta di ripristinarne le rispettive versioni originali, in modo da mantenere intatte la stabilità e la sicurezza del sistema.

WFP non mi aveva mai dato fastidio… fino a quando l’altro giorno mi è capitato di voler installare alcune utilities sostitutive a quelle già presenti in Windows, ma dotate di funzionalità avanzate. Con mia amara sorpresa ho constatato che dopo l’installazione tutto era come prima e di tali applicazioni non c’era traccia… solo dopo una reinstallazione attentamente monitorata ho verificato che il sistema operativo ripristinava dopo pochi istanti le versioni originali di tutti i files che erano stati modificati nella directory system32. Dopo un’accurata analisi ho scoperto finalmente l’esistenza, sempre all’interno di system32, di una directory nascosta e compressa, dal nome autoesplicativo “dllcache”. Al suo interno una copia della maggior parte dei files di sistema, un vero e proprio repository da cui WFP recupera i files originali… ed è quindi qui che bisogna metter mano prima di effettuare l’installazione o la modifica dei files monitorati da WFP.

Esaminiamo il funzionamento di WFP considerando ad esempio il file mspaint.exe (il famoso Paint di Windows): eliminandolo dalla directory dllcache oppure sostituendolo con un altro eseguibile con lo stesso nome, non succede assolutamente niente :-D Invece eliminandolo dalla directory system32 oppure sostituendolo con un altro eseguibile con lo stesso nome, dopo pochi istanti entra in azione WFP la quale effettua tutta una serie di operazioni: controlla il file in system32 e se non esiste più o non risulta autentico allora lo cerca in dllcache; è interessante notare che la ricerca in dllcache avviene anche se il file è stato trovato in system32 e risulta autentico… questo rende quindi possibile anche un eventuale ripristino al contrario, per una maggiore sicurezza. La successiva ricerca in dllcache implica un controllo del tutto analogo, ma questa volta se il file non esiste più o non risulta autentico (e contemporaneamente anche l’omonimo in system32 risulta non autentico… ricordate il ripristino al contrario!) WFP avverte l’utente della manomissione, chiedendogli di inserire il CD di Windows da cui poter recuperare il file originale. Ovviamente, al contrario, se il file è stato trovato in dllcache e risulta autentico allora WFP lo ricopia silenziosamente in system32, eventualmente soprascrivendo il proprio omonimo se presente, riportando il sistema alla normalità. Semplice vero? :-)

Nel peggiore dei casi quindi, quando non esiste una copia autentica né in system32 né in dllcache, l’utente (solo se amministratore) si ritrova questa bella finestra:

Richiesta del CD di Windows da parte di WFP

Cliccando su Annulla viene poi richiesta una conferma per mantenere la versione non originale del file in dllcache, che funziona anche se il file in dllcache non esiste proprio… quindi più che mantenere la versione modificata semplicemente non effettua il ripristino!

Conferma conservazione files non originali

Nel corso degli esperimenti ho potuto constatare come la scansione automatica sia effettuata dall’utility SFC (System File Checker), su cui si basa anche un’applicazione per la scansione manuale… ed infatti eseguendo dal prompt il comando “sfc.exe /scannow” appare questa finestra:

Scansione files protetti da parte di SFC

che effettua il medesimo controllo su tutti i files protetti. Se trova un file mancante o modificato e non riesce a recuperarne la versione originale dalla directory dllcache allora visualizza il messaggio di cui sopra, con la richiesta del CD di Windows. Il famigerato WFP in conclusione è costituito da tre librerie sfc.dll, sfc_os.dll e sfcfiles.dll che si trovano nella directory system32. Su queste medesime librerie si basano sia il meccanismo di scansione automatica attivata su notifica del SO sia l’utility sfc.exe per la scansione manuale. Gli stessi files che costituiscono SFC e la base di WFP sono quindi soggetti anch’essi al monitoraggio di WFP stesso, ed infatti una loro copia è presente nella directory dllcache.

A questo punto, avendo bisogno di apportare numerose modifiche al sistema, per evitare problemi di ogni sorta ho scelto di sradicare completamente WFP… in rete si trovano vari tutorials per disabilitarla tramite modifiche al registro di configurazione di sistema e addirittura modifiche alle dll di SFC con un editor esadecimale per le versioni più recenti, da Windows 2000 SP2 in poi. Ma per essere sicuro di liberarmi di questa scomoda feature ho potuto testare il sistema più semplice e valido per qualsiasi versione, che consiste nell’avviare il pc da un sistema alternativo, quale ad esempio un cd avviabile con BartPE o un altro dispositivo avviabile con supporto rw per file system NTFS, ed eliminare banalmente i files sfc*.* dalle directories system32 e dllcache (l’avvio da un sistema alternativo si rivela necessario perché normalmente i files risultano bloccati). A questo punto sicuramente al riavvio non ci sarà più il pericolo di ritrovarsi WFP… ma attenzione se lo fate anche voi, perché in tal modo il vostro sistema risulterà più vulnerabile! In compenso però potrete divertirvi ad apportare tutte le modifiche che vorrete… ;-) Naturalmente io non mi ritengo responsabile per i danni che potrete fare direttamente o subire indirettamente sul vostro sistema!

La finestra 'Esegui' di Windows modificata

Maggiori dettagli su WFP e SFC li trovate a questi links sul sito di supporto Microsoft:

Funzionalità non richieste in M$IE

Wednesday, March 22nd, 2006

Internet Explorer ha conquistato negli anni il monopolio nel mercato dei browser: Microsoft ha adottato una strategia di marketing geniale ed integrandolo nei propri sistemi operativi ha fatto sì che molti utenti iniziassero ad utilizzarlo preferendolo a browser alternativi più affidabili e sicuri. Non ancora paga di tale successo, una volta ottenuta la fetta di mercato più grossa ha poi ben pensato di assicurarsi il monopolio per il futuro cominciando ad imbottire il proprio browser di funzionalità assolutamente non richieste, non standard e soprattutto non sicure, spacciandole per rivoluzionarie ed indispensabili… ed è così che ora siamo giunti al punto che molti siti non sono visualizzabili con browser diversi da Internet Explorer e/o addirittura non permettono l’accesso se si utilizza un browser differente! Questo perché ovviamente utilizzano tecnologie non standard e proprietarie Microsoft. Proprio un bel risultato: il world wide web dovrebbe essere sinonimo di accessibilità ma a Microsoft non è mai interessato questo aspetto e anzi negli anni ha sempre e solo speculato e approfittato di questo fatto, sfruttandone le caratteristiche a proprio esclusivo vantaggio.

Ed e così che ha avuto inizio la sequela infinita di vulnerabilità e problemi di sicurezza… che potrà aver termine soltanto quando gli utenti ma ancora prima i webmasters capiranno l’importanza di rispettare gli standard di accessibilità definiti da istituzioni internazionali quali il World Wide Web Consortium e l’Internet Engineering Task Force. Mozilla Firefox sembra essere attualmente l’unica ancora di salvezza per tentare di riportare il web sulla giusta strada. Scaricatelo, è gratis e nonostante gli inevitabili piccoli problemi di gioventù ha dimostrato di essere già molto più maturo di Internet Explorer per il web del futuro, quello che molti ormai chiamano Web 2.0.

Dopo questa doverosa premessa vi do una piccola dimostrazione pratica su quanto appena detto. Internet Explorer integra una comoda funzionalità che permette ad una pagina web di accedere al contenuto degli appunti del sistema operativo tramite un banale script. Sicuramente vi sarà capitato di giungere in qualche sito che vi consente di effettuare operazioni di selezione automatica del testo con una successiva copia negli appunti… di primo acchito tale funzionalità vi sarà apparsa naturalmente utile e soprattutto innocua, ma non lo è assolutamente! Non si tratta di una vulnerabilità vera e propria, ma immaginate cosa potrebbe succedere se un webmaster poco onesto inserisse in una sua pagina web la copia automatica dei vostri appunti… magari ad intervalli regolari di 3 secondi… magari criptando la pagina (la criptazione lato client naturalmente può fermare soltanto l’utente medio, che arriva al massimo a dare un’occhiata al sorgente HTML della pagina e poi si ferma)…

Se non riuscite ad immaginarlo e/o volete testare il problema vi ho preparato una pagina di prova, la trovate a questo indirizzo:

http://freehost18.websamba.com/[…]/grabclipboarddata/grab.asp

La pagina in questione fa esattamente quanto appena descritto… provate ad aprirla con Internet Explorer e lasciatela in background per un po’ di tempo. Effettuate nel frattempo alcune operazioni di copia di testi (non immagini) e dopo qualche secondo visualizzate i risultati del “furto di appunti” tramite quest’altro indirizzo (che offre ovviamente anche un link per svuotare gli appunti catturati, non sia mai che per sbaglio copiate user e pass della vostra banca e poi non possiate cancellarli dal database!):

http://freehost18.websamba.com/[…]/grabclipboarddata/view.asp

A questo punto credo sia chiara a chiunque la pericolosità di questa funzionalità che potrebbe carpirvi dati personali preziosi a vostra insaputa. La pagina criptata potrebbe essere persino nascosta in un’altra pagina dall’aspetto normale all’interno di un frame nascosto e reso invisibile all’utente… e ciò renderebbe l’inganno ancora più difficile da individuare.

Le operazioni di copia tramite script sono abilitate di default nei livelli di protezione basso, medio-basso e medio delle opzioni internet di Internet Explorer… soltanto impostando il livello di protezione alto la funzionalità viene disattivata. La navigazione internet utilizza il livello predefinito medio e pertanto consente la copia senza avvisare l’utente! Potete verificare l’impostazione dal menu Strumenti → Opzioni Internet… → Scheda “Protezione” → Click sull’icona “Internet” → Click sul pulsante “Livello Personalizzato”. L’impostazione predefinita che appare è la seguente:

Impostazioni protezione di Internet Explorer

Durante la normale navigazione su internet non viene quindi chiesta nessuna conferma e chiunque può prelevare il contenuto dei vostri appunti senza che voi ve ne accorgiate… Considerando poi che la maggior parte degli applicativi Microsoft che integrano funzionalità HTML utilizzano il motore di rendering di Internet Explorer e ne ereditano quindi tutte le caratteristiche “potenzialità”… ne consegue che i vostri appunti potrebbero venir catturati anche da Outlook Express, Visual Studio, guide in linea etc… La scheda Opzioni Internet per l’impostazione del livello di protezione è infatti presente anche nel pannello di controllo di Windows, ad indicare la sua estensione a tutte le applicazioni che richiedono risorse http o https utilizzando come base le stesse librerie su cui si appoggia il browser.

La soluzione a questo inconveniente, oltre ovviamente a cambiare browser :-) , consiste nel personalizzare il livello di protezione delle opzioni internet: impostare il livello su alto, ma in tal caso verrebbero disabilitate anche altre funzionalità indispensabili, oppure personalizzare il livello medio e spuntare l’opzione “Disattiva” nella finestra di dialogo che vi ho mostrato prima. Se disattivare la funzionalità vi sembra eccessivo potete optare per la soluzione intermedia “Chiedi conferma” e in tal caso quando una pagina tenterà di copiare gli appunti apparirà il seguente messaggio di avviso:

Messaggio di avviso 'Consentire la copia'

Potrete così decidere, a seconda della situazione, se consentire o meno la copia.

Tutto il codice dell’esempio è disponibile per il download Download. L’esempio è stato realizzato in ASP con database Microsoft Access in formato .mdb, per comodità di distribuzione.