CodePhage, il sistema che permette ai software di auto-ripararsi.


A quanto pare i ricercatori del Massachusetts Institute of Technology, (noto anche con la sigla MIT), hanno messo a punto un sistema che permette di risolvere i bug dei software, importando le funzionalità da altre applicazioni. Si chiama CodePhage e la sua particolarità sta nel fatto che non accede al codice sorgente, ma analizza l'esecuzione delle applicazioni e caratterizza i test di sicurezza effettuati: in questo modo è possibile riparare software scritti con un linguaggio di programmazione diverso da quello usato per il software e dal quale questo sistema "prenderà in prestito" il fix. In sostanza nei repository open source sono conservate milioni di applicazioni molte delle quali condividono simili specifiche ed, anche se le funzionalità principali sono differenti, spesso i software condividono anche gli stessi sottocomponenti, (ovvero porzioni di codice). In pratica per farla breve, CodePhage costruisce una sorta di sistema ibrido che combina i migliori "pezzi" delle applicazioni; difatti in genere l'individuazione della soluzione implementata in un software prevede l'uso di due input: uno che causa il crash dell'applicazione ed uno che non causa il crash. Inoltre questi due input vengono applicati al software "donatore" e CodePhage traccia la sequenza di operazioni eseguite, usando un'espressione simbolica per registrare i vincoli logici imposti: il processo viene interrotto quando il sistema rileva una divergenza, ovvero un vincolo soddisfatto dall'input "sicuro", ma non dall'input che causa il crash. Dunque in altre parole, CodePhage analizza il software "ricevente" per trovare le porzioni di codice che soddisfano la maggior parte dei vincoli descritti dalla nuova espressione simbolica, (vale a dire quella associata all'input che causa il crash del programma "donatore"). Così facendo il sistema in questione traduce i vincoli nel linguaggio del "ricevente" e li inserisce nel codice sorgente: se il software funziona normalmente anche con l'input che causa il crash, allora il bug risulterà essere riparato. Ad ogni modo, considerando che nelle applicazioni moderne i cosiddetti "security check" possono occupare fino all'80% del codice, i ricercatori del MIT sperano che CodePhage possa velocizzare il lavoro degli sviluppatori, mediante l'inserimento automatico di queste verifiche: in tutti i test eseguiti finora, il sistema è riuscito ad applicare le dovute patch alle vulnerabilità, impiegando, infine, un tempo compreso tra i 2 ed i 10 minuti.

Commenti