Partager

Unisim, un simulateur de systèmes pour tester des codes binaires

Unisim est un environnement de simulation de systèmes électroniques qui facilite le test de codes binaires de logiciels complexes. Il se caractérise par des possibilités d’émulation étendues (du simple jeu d’instructions au système électronique entier), par son ouverture aux outils de tests, de débogage et d’analyse du marché et par la richesse de ses fonctions d’aide à l’analyse.

L'usage

Tester des codes binaires

Unisim propose un environnement de simulation de systèmes électroniques pour tester et valider des codes binaires. Il offre un large éventail de possibilités d’émulation, allant du simple jeu d’instructions au système électronique entier. Cela, grâce à sa bibliothèque de modèles de composants matériels permettant de constituer des systèmes virtuels complets tels que des jeux de composants intégrés ou des cartes électroniques.

L’environnement propose la simulation des architectures de processeurs les plus courantes (ARM, Intel et PowerPC) ainsi qu’une palette d’outils d’instrumentation (débogueurs, profileurs, etc.). Il dispose, par ailleurs, d’interfaces qui l’ouvrent à des outils tiers de tests, de débogage ou d’analyse de code. Il s’interface, notamment, avec les outils Frama-C et Binsec.

Disponible en open source et compatible avec les standards de simulation SystemC & TLM, il peut aisément s’enrichir de composants et extensions virtuels tiers.

Ouverture, souplesse, richesse de l’aide à l’analyse…

Ses forces principales :

  • son architecture modulaire et ses multiples interfaces qui l’ouvrent à un large éventail de moyens d’analyse ;
  • son aptitude à effectuer des analyses non invasives (sans impact sur l’exécution) indépendamment du nombre de sondes introduites ;
  • sa capacité à affecter l’exécution d’un programme en influant dynamiquement sur son environnement ou en provoquant des erreurs dans son déroulement ;
  • sa fonction de génération de représentations sémantiques à partir des codes binaires interprétés, en vue d’effectuer des analyses ultérieures ;
  • ses possibilités d’instrumentation des programme et des signaux d’entrées-sorties.
Ses atouts>

Interface profilage et débogage du logiciel

Ses atouts>

Interface d’instrumentation des signaux matériels et débogage du logiciel

Ses atouts>

Aperçu

Validation de logiciels complexes et spécifiques

Unisim répond au besoin de valider des logiciels complexes (logiciels systèmes, embarqués, critiques, distribués…), notamment dans les situations où l’analyse formelle devient difficile.

On l’utilise, principalement pour :

  • caractériser la sûreté et la sécurité d’un code ;
  • valider la robustesse d’un code en intégration continue.
Cas d'usage

Un environnement pour la recette de cybersécurité

Pour procéder à la recette de cybersécurité sur des systèmes électroniques tiers, les intégrateurs doivent tester les logiciels qui les composent. Pour ce faire, ils passent au crible les codes binaires grâce à des environnements de type bac à sable. Unisim permet la mise au point de tels environnements en leur fournissant un ensemble de techniques de test (micro-exécution, fuzzing) pour l’analyse de robustesse.

Un tel bac à sable supportant les jeux d’instructions ARM v7 et PowerPC VLE a été réalisé pour un grand industriel de l’automobile.

Cas d'usage

Stabilité numérique

La stabilité et la précision des calculs numériques sont essentiels au fonctionnement des algorithmes de systèmes embarqués modernes (géolocalisation, traitement d’image, etc.). Avec Unisim, il est possible d’analyser la précision numérique des calculateurs dans les conditions d’exécution réelles.

Une plateforme simulant un jeu d’instruction PowerPC 64 bits a ainsi été instrumentée dans le domaine ferroviaire, afin de qualifier la précision d’un algorithme de géolocalisation. La reconstitution de situations réelles a mis en évidence des dérives dans certaines conditions de vitesse des trains.

Publications

Validation with Code Introspection of a Virtual Platform for Sandboxing and Security Analysis, Y. Lhuillier, G. Mouchard, F. Vedrine. CAESAR. 2019

 

Pour en savoir plus, visiter le site Unisim-VP