Marianne ANSSI

CERT-FR

Centre gouvernemental de veille, d'alerte et de réponse aux attaques informatiques

logo ANSSI
Informations utiles

Que faire en cas d'intrusion ?

Les systèmes obsolètes

Liens utiles

 

L'ANSSI recrute

 

 

Les documents du CERT-FR

Publications récentes

Les alertes en cours

Les bulletins d'actualité

Les notes d'information

Année en cours Archive

 

Les Flux RSS du CERT-FR

Flux RSS complet

RSS

Flux RSS des alertes

RSS

Flux RSS SCADA

RSS

 

CERTFR-2016-ACT-028

Imprimer ce document

Version PDF

À propos du CERT-FR

Le CERT-FR

Nous contacter

Contact us ( Drapeau anglais )

A propos du site

Communauté CSIRT

Les CSIRT

Le FIRST

L'EGC

 
Archives du CERT-FR

Année 2017 Archive

Année 2016 Archive

Année 2015 Archive

Année 2014 Archive

Année 2013 Archive

Année 2012 Archive

Année 2011 Archive

Année 2010 Archive

Année 2009 Archive

Année 2008 Archive

Année 2007 Archive

Année 2006 Archive

Année 2005 Archive

Année 2004 Archive

Année 2003 Archive

Année 2002 Archive

Année 2001 Archive

Année 2000 Archive

 

S . G . D . S . N
Agence nationale
de la sécurité des
systèmes d'information

République Française Paris, le 11 juillet 2016
No CERTFR-2016-ACT-028

Affaire suivie par :

CERT-FR

Objet : Bulletin d'actualité CERTFR-2016-ACT-028

1 - Vulnérabilité en mode processeur surprivilégié sur des microgiciels UEFI

Résumé

Le 28 juin 2016, un chercheur en sécurité a publié une vulnérabilité dans des microprogrammmes embarqués de type UEFI. Cette vulnérabilité est une élévation de privilèges permettant de passer dans un mode spécifique d'exécution du processeur, le mode SMM (System Management Mode).

Contexte de la vulnérabilité

Cette vulnérabilité se situe dans un ensemble de microgiciels basés sur le standard UEFI, il est donc nécessaire de décrire plus spécifiquement ce sous-système et son interaction avec le mode surprivilégié du processeur.

System Management Mode - (SMM)

Le mode d'exécution SMM, également appelé anneau -2, est un mode spécifique aux processeurs Intel x86, introduit au début des années 1990. Ce mode, hautement privilégié, est utilisé pour gérer des fonctionnalités de bas niveau, principalement liées à la plateforme matérielle et aux micrologiciels intégrés.

De même, le mode SMM est largement utilisé dans le standard UEFI pour implémenter des fonctions de sécurité.

Ce mode est accessible au système via un pic de connexion du processeur (SMI#), mais également par le déclenchement d'une interruption SMI par le contrôleur APIC (advanced programmable interrupt controller).

Unified Extensible Firmware Interface - (UEFI)

Le standard d'interface micrologicielle unifiée extensible décrit un système d'interfaces entre le système d'exploitation et le matériel (avec ses micrologiciels intégrés).

Le standard UEFI définit les modalités de démarrage du système, remplaçant de fait le système BIOS. Le processus de démarrage est constitué d'étapes menant à l'exécution en parallèle d'un système d'exploitation et de pilotes microgiciels UEFI permettant d'interagir avec le matériel.

Une de ces étapes est la création d'une phase initialisant le sous-système SMM contenant plusieurs pilotes, ainsi que l'enregistrement de protocoles de communication avec ces pilotes.

La vulnérabilité concernée est justement située dans l'un de ces pilotes.

Description de la vulnérabilité

La vulnérabilité est issue d'une déficience de contrôle sur les paramètres d'une fonction contenue dans un pilote UEFI. Ce pilote est référencé par les idenfiants uniques (GUID) 7c79ac8c-5e6c-4e3d-ba6f-c260ee7c172e et A56897A1-A77F-4600-84DB-22B0A801FA9A.

Ces identifiants uniques correspondent à une partie du système concomitant du mode SMM.

Cette fonction, dont une partie du code est représentée ci-dessous, est enregistrée au démarrage du pilote et est appelée lors du traitement des interruptions SMI. On peut constater que le pointeur donné en argument à la fonction n'est pas correctement vérifié par la fonction, et un appel indirect via un membre de la structure est effectué.

Extrait de désassemblage de la fonction vulnérable :

.text:03CC sub rsp, 28h
.text:03D0 // rcx contient un pointeur controle par l'attaquant
.text:03D0 mov rax, [rcx+20h]
.text:03D4 // rax contient desormais un pointeur teinte
.text:03D4 test rax, rax
.text:03D7 jz short loc_3DF
.text:03D9 mov rdx, [rcx+8]
.text:03DD // Appel de la valeur teintee
.text:03DD call rax
[...]

Déclenchement

Afin de déclencher la vulnérabilité, un attaquant peut préparer en mémoire une structure spécialement conçue contenant un pointeur vers un tableau de code exécutable, et appeler spécifiquement le driver vulnérable en utilisant des interruptions SMI.

Impacts

Le fait d'exécuter du code arbitraire en mode surprivilégié permet d'installer des composants malveillants résistants à une simple réinstallation du système d'exploitation, ainsi que de contourner les protections mises en place, telles que Secure Boot ou l'isolation des identifiants sous Windows 10 (Credential Guard).

Cette vulnérabilité affecte de nombreux constructeurs, tels que Lenovo, HP, Dell ou encore Fujitsu.

D'autre part, le code d'exploitation de cette vulnérabilité rendu public nécessite de posséder un accès physique à la machine. Toutefois une exploitation à distance est sans doute possible, à condition de posséder les droits suffisants sur la machine pour communiquer avec le microprogramme.

Recommandations

Le CERT-FR recommande d'appliquer les correctifs de sécurité, y compris aux microprogrammes embarqués. D'autre part le CERT-FR recommande, dans le cadre d'une réponse à incident, de vérifier l'intégrité de ces microprogrammes.

Documentation


2 - Rappel des avis émis

Dans la période du 04 au 10 juillet 2016, le CERT-FR a émis les publications suivantes :

  • CERTFR-2016-AVI-224 : Multiples vulnérabilités dans les produits Cisco
  • CERTFR-2016-AVI-225 : Multiples vulnérabilités dans SCADA Siemens SICAM PAS
  • CERTFR-2016-AVI-226 : Vulnérabilité dans Samba

Gestion détaillée du document

11 juillet 2016
version initiale.
Dernière version de ce document : http://cert.ssi.gouv.fr/site/CERTFR-2016-ACT-028

CERT-FR
2016-07-11
Premier Ministre / Secrétariat Général de la Défense et de la Sécurité Nationale / Agence nationale de la sécurité des systèmes d'information webmestre Dernière mise à jour : le 2017-09-22