Une equipe de chercheurs de Carnegie Mellon a developpe un systeme pour combattre les virus dans les systemes embarques, appele SWATT pour SoftWare-based ATTestation. Le propos est de s’attaquer aux virus, vers et autres chevaux de Troie qui peuvent attaquer des systemes embarques tels que ceux que l’on trouve dans des voitures, les telephones portables, les imprimantes, organiseurs etc. Par ailleurs la technique utilisee peut egalement permettre de reperer d’autres types d’alterations telles que celles qui consistent a modifier l’ordinateur de bord d’un vehicule pour acceder a des services pour lesquels on ne paye pas l’abonnement ou pour modifier le comportement du moteur (certains conducteurs rendent ainsi leur vehicule plus sportif, au detriment de la securite de fonctionnement). Le principe de detection repose sur l’attestation d’identite du code par un logiciel externe, ce qui permet de n’imposer aucune contrainte (indesirable) sur les systemes embarques consideres. Le logiciel externe envoie des requetes au systeme embarque, sachant que la reponse est connue en fonction de ce qui est suppose etre dans la memoire de ce dernier. Si des virus plus elabores peuvent dans une certaine mesure cacher leur presence, ils ralentiraient tellement la reponse au detecteur que cela permettraient quand meme de detecter leur presence. Si la memoire a ete alteree par la presence d’un « intrus », alors la reponse differe de ce qui est attendu ou, le cas echeant, le delai de la reponse n’est pas normal. Sinon un checksum (sur 64 bits, en 8 vecteurs de 8 bits) permet de verifier la validite de la reponse. Les principales hypotheses de fonctionnement sont que l’attaquant ne change pas la configuration materielle (taille de la memoire physique, vitesse de l’horloge, reglages du BIOS). La clef du controle est que le logiciel de verification emet une serie de requetes qui visent a necessiter un parcours pseudo-aleatoire de la memoire. Les reponses successives permettent de detecter une erreur de reponse ou, si l’attaquant a deplace dans la memoire les elements logiciel et systeme d’origine, permettent de detecter des temps de reponses anormaux (augmentes de quelques cycles de la CPU). Le nombre de requetes est en nLogn, ou n est la taille de la memoire, de sorte que la probabilite que les reponses restent correctes pour l’ensemble des requetes est negligeable en cas d’alteration de la memoire.
Contacts :
http://www.cmu.edu/PR/releases05/05...
http://www-2.cs.cmu.edu/ arvinds/pu...
