ActiveX è il nome della tecnologia sviluppata da Microsoft che rappresenta la naturale evoluzione della precedente OLE (Object Linking & Embedding) e risponde all'esigenza, molto avvertita, di disporre di un set di funzionalità esteso in grado di favorire la rapida realizzazione e distribuzione di documenti di carattere composito.
L'utilizzo di questa tecnologia rende possibile l'implementazione di particolari "controlli" in possesso di funzionalità specifiche i quali, una volta realizzati, possono essere letteralmente incorporati all'interno di altre applicazioni od ambienti differenti al fine di permettere lo sfruttamento delle loro caratteristiche tipiche.
Naturalmente, trattandosi di una tecnologia ormai consolidata, l'elenco delle applicazioni che garantiscono il completo supporto agli ActiveX è veramente ampio ed in questa lista non poteva di certo mancare il browser Microsoft Internet Explorer, fatto quest'ultimo che ha suscitato non poche perplessità a causa degli inevitabili problemi che l'uso degli ActiveX pone in termini di sicurezza.
In effetti l'impiego di questa tecnologia in un ottica distribuita come quella di Internet comporta, di fatto, lo scaricamento e l'esecuzione sul lato client di porzioni di codice senza che ciò si accompagni all'esistenza di meccanismi di sicurezza simili a quelli previsti, ad esempio, per le applet Java, con tutte le conseguenze negative che ne derivano nell'ipotesi in cui il codice sia stato volutamente confezionato in modo da svolgere operazioni dannose sul computer dell'utente.
Per comprendere al meglio le implicazioni di questo meccanismo ricordiamo che quando il browser si imbatte in una pagina Web contenente un controllo ActiveX, incorporato mediante l'uso dei tag <object></object> , per prima cosa verifica attraverso l'esame del registro di configurazione se il controllo è disponibile sul sistema locale: se esso risulta presente allora la pagina viene visualizzata con il contestuale caricamento del controllo nello spazio della memoria del browser e la successiva esecuzione del codice mentre, nell'ipotesi contraria, l'ActiveX viene scaricato ed installato seguendo le istruzioni presenti all'interno dello stesso tag <object>.
La debolezza intrinseca insita in questo automatismo ha spinto Microsoft ad introdurre dei correttivi individuati nell'adozione della tecnologia Authenticode che, in breve, permette agli sviluppatori di firmare i controlli attraverso l'uso della crittografia e la successiva validazione da parte di Internet Explorer e di un entità terza (in genere Verisign Corporation).
Attraverso questo ulteriore meccanismo gli utenti dovrebbero essere "assicurati" circa la genuinità della fonte da cui proviene un determinato controllo ActiveX ed impiegarlo senza remore ma, purtroppo, esiste anche il rovescio della medaglia, una scappatoia che consente di aggirare facilmente la procedura di controllo della firma da parte di Authenticode e consiste nell'abilitazione del flag cd. "safe for scripting".
In presenza di questo flag nessun tipo di avvertimento viene fornito quando l'ActiveX è eseguito nel contesto del browser web con la conseguente esposizione del sistema dell'utente a rischi di intuibile portata, considerevolmente aumentati dalla presenza di due fattori critici:
- l'estrema facilità con la quale risulta possibile impostare il flag, considerato che, a tal fine, è sufficiente che il controllo implementi l'interfaccia IObjectSafety oppure che esso sia contrassegnato come "sicuro" nel registro di configurazione di Windows tramite l'aggiunta alle "Implemented Categories" della chiave 7DD95801-9882-11CF-9FA9-00AA006C42C4;
- la circostanza data dal fatto che in alcuni casi i componenti sono in grado di eseguire operazioni "privilegiate" sul sistema locale come la lettura e la scrittura sul disco;
Naturalmente non sono mancate valide dimostrazioni della vulnerabilità insita nel trattamento dei controlli cosiddetti "safe" da parte di Internet Explorer e tra queste vanno citate principalmente quella di Georgi Guninski (http://www.guninski.com), relativa ai controlli Scriptlet.Typelib e Eyedog.ocx forniti con Internet Explorer 4 e versioni precedenti, ed un altra relativa invece al ben più recente controllo OUA installato di default insieme con la suite Microsoft Office 2000 (http://www.l0pht.com/advisories/ouahack/index.html).
Per entrambe le vulnerabilità la Microsoft ha rilasciato delle patch risolutive disponibili agli indirizzi http://www.microsoft.com/technet/security/bullettin/ms99-032.asp e
http://officeupdate.microsoft.com/2000/downloadDetails/Uactlsec.htm ma, purtroppo, va ricordato che questi rilasci risolvono soltanto i problemi specifici riscontrati con questi controlli e non pongono riparo ai possibili abusi che possono presentarsi per tutti gli altri ActiveX.