Aller au contenu

SCSI : Small Computer System Interface

Infrastructure

SCSI : Small Computer System Interface, famille de normes de connexion et de commandes entre un ordinateur et ses périphériques de stockage, prononcée « scuzzy ». « Le langage que parle l'ordinateur à ses disques depuis les années 1980, et qu'il continue de parler même quand les disques n'existent plus que dans un hyperviseur », par analogie avec le latin d'Église, langue morte qui commande encore beaucoup de choses.

Origine et survie : La première norme est publiée par l'ANSI (American National Standards Institute) en 1986. Les câbles parallèles ont disparu, mais le jeu de commandes SCSI survit dans le SAS (Serial Attached SCSI), dans le stockage USB, dans iSCSI qui le transporte sur IP, et dans les contrôleurs virtuels des machines virtuelles.

Contrôleurs virtuels : Un hyperviseur expose à l'invité un contrôleur SCSI émulé (LSI Logic, PVSCSI chez VMware) ou paravirtualisé (virtio-scsi). Ce code, exécuté côté hôte, interprète des commandes et des tampons fournis par l'invité : c'est une surface d'attaque pour une évasion de machine virtuelle, au même titre que le contrôleur de disquette émulé de QEMU, dont la faille VENOM (CVE-2015-3456) a montré qu'un périphérique oublié reste un périphérique exploitable.

Ce qui arrive si on s'en passe

Une machine virtuelle dotée de contrôleurs émulés dont elle n'a pas besoin offre à l'attaquant qui la contrôle autant de parseurs supplémentaires à tester, tous exécutés dans le processus de l'hyperviseur, donc du côté de l'hôte. Une seule erreur de gestion de tampon dans l'un d'eux peut suffire à sortir de l'invité et à atteindre les autres machines du même serveur. Un hyperviseur non mis à jour, avec une configuration matérielle virtuelle laissée par défaut, transforme ainsi l'isolation promise en simple convention de politesse.

Explication de la marmotte

SCSI est une ancienne façon standard pour un ordinateur de parler à ses disques durs : lire tel bloc, écrire tel autre. Les vieux câbles ont disparu, mais ce langage de commandes est toujours utilisé, y compris dans les ordinateurs virtuels, où le disque est simulé par un logiciel. Ce logiciel de simulation lit des commandes envoyées par la machine virtuelle. S'il contient une erreur, un attaquant installé dans la machine virtuelle peut parfois s'en servir pour s'échapper vers l'ordinateur réel.

Où ce terme est utilisé

← Tout le glossaire