CodePhage, i software si riparano da soli

CodePhage è un sistema che consente di individuare le vulnerabilità dei software e applicare automaticamente le patch al codice sorgente.
CodePhage è un sistema che consente di individuare le vulnerabilità dei software e applicare automaticamente le patch al codice sorgente.

I ricercatori del MIT hanno sviluppato un sistema che permette di risolvere i bug dei software, importando le funzionalità da altre applicazioni. CodePhage 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 dal quale si “prende in prestito” il fix.

Nei repository open source sono conservate milioni di applicazioni e molte di esse condividono simili specifiche. Anche se le funzionalità principali sono differenti, spesso i software condividono gli stessi sottocomponenti (porzioni di codice). CodePhage costruisce in pratica un sistema ibrido che combina i migliori “pezzi” delle applicazioni. L’individuazione della soluzione implementata in un software prevede l’uso di due input, uno che causa il crash dell’applicazione e uno che non causa il crash.

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.

CodePhage analizza quindi il software “ricevente” per trovare le porzioni di codice che soddisfano la maggior parte dei vincoli descritti dalla nuova espressione simbolica (quella associata all’input che causa il crash del programma donatore). Il sistema quindi 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 è stato riparato.

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, il sistema è riuscito ad applicare le patch alle vulnerabilità, impiegando un tempo compreso tra 2 e 10 minuti.

Ti consigliamo anche

Link copiato negli appunti