Pen-test Microsoft Surface - Sécurité des byte tags

Microsoft Surface est une table multitouch destinée à un usage multi-utilisateurs. La technologie innovante dans cette table est basée sur les caméras infrarouges disposées à l'interieur permettant la reconnaissance de formes telles qu'un doigt, une main ou un objet. Elle est capable de détecter jusqu'à 54 formes simultanément.

Dans les fonctionnalités offertes par l'API Microsoft Surface on notera la présence d'une sorte de qrcode "made in Microsoft". Disposés sous les objets (verres de cocktail, pièces de jeu d'échecs), ils permettent de déclencher des actions ou suivre un objet de manière plus précise. Microsoft les nomme "Surface tags", et ils existent en deux versions, respectivement byte tags et identity tags.

Les identity tags peuvent contenir 128 bits d'informations, tandis que les byte tags en contiennent 8. La chose intéressante ici est donc que les byte tags ne peuvent prendre que 256 valeurs différentes, ce qui est facilement bruteforceable.

Durant un test d'intrusion physique, il s'est avéré que les développeurs utilisaient une certaine valeur de byte tag dans leur application pour déclencher l'apparition d'un menu d'administration. Vous pouvez voir dans la photo ci-dessous le morceau de carton ayant le byte tag administrateur, ainsi qu'un menu d'administration (flouté) apparu grâce au tag :

Nous l'avons trouvé en testant toutes les valeurs de byte tags que nous avions au préalable imprimés (puis jetés sur la table Surface).

Un autre byte tag déclenchait une action, il s'agissait d'un lecteur vidéo commercial - nous avons supposé que les commerciaux de cette société le possédaient sur leur carte de visite et s'en servaient pour faire leurs présentations.