| S . G . D . S . N Agence nationale de la sécurité des systèmes d'information |
![]() |
Paris, le 16 novembre 2001 No CERTA-2001-REC-001 |
Affaire suivie par :
CERTA
Objet : Visualisation inexacte de documents
par le logiciel WORD.
| Conditions d'utilisation de ce document : | http://www.certa.ssi.gouv.fr/certa/apropos.html |
| Dernière version de ce document : | http://www.certa.ssi.gouv.fr/site/CERTA-2001-REC-001 |
Une gestion de version détaillée se trouve à la fin de ce document.
Documents RTF ou DOC lus sous Microsoft WORD.
Dans le cas de l'utilisation de la signature électronique intégrée dans Office XP, cette vulnérabilité n'existe pas. De même, le logiciel WORDpad ne présente pas ce problème de visualisation.
D'autres logiciels de visualisation sont par contre susceptibles de présenter des risques similaires. Contactez le développeur du logiciel pour le savoir.
WORD possède la faculté d'insérer dans un document des champs dont la valeur change en fonction du contexte (date, numéro de page par exemple).
Lors de l'ouverture d'un document au format DOC ou RTF au format « page » ou « lecture à l'écran », le logiciel WORD calcule automatiquement et affiche un certain nombre de ces champs alors que le document ne prend pas l'état « modifié ». Le fichier conservera, dans les champs, les valeurs originalement sauvegardées, dont la signification peut être totalement différente de ce qui a été présenté lors de la visualisation.
Pour les utilisateurs de logiciels de signature électronique externes à Microsoft Office, le danger existe si la visualisation du document au format DOC ou RTF reçu, à transmettre, ou à signer est effectuée par WORD.
Un utilisateur recevant un document signé au format « page » ou « lecture à l'écran » doit vérifier l'absence de champs dynamiques en activant l'affichage des champs par alt+F9. Il peut aussi vérifier que la visualisation par un autre logiciel comme WordPad, par exemple, ne diffère pas de celle obtenue par WORD.
Sub VerrouillageChamps()
i = 0
For Each myf In ActiveDocument.Fields
If myf.Locked = False Then
i = i + 1
myf.Locked = True
End If
Next
If (i > 0) Then
MsgBox ("Le nombre de champs qui ont été verrouillés est : " & (i))
Else
MsgBox ("Aucun champ à verrouiller dans ce document")
End If
End Sub
Sub VérificationChamps()
i = 0
j = 0
For Each myf In ActiveDocument.Fields
j = j + 1
If myf.Locked = False Then
i = i + 1
End If
Next
If (j > 0) Then
If (i > 0) Then
MsgBox ("Attention, le nombre de champs non protégés dans ce document est : " & (i) & " sur " & (j))
Else
MsgBox ("Aucun champ non verrouillé dans ce document sur " & (j))
End If
Else
MsgBox ("Aucun champ dans ce document")
End If
End Sub
Attention : Pour des raisons de protection contre les virus, le CERTA recommande de ne pas légitimer l'usage de macros dans les documents de bureautique. La règle reste de désactiver systématiquement les macros à l'ouverture d'un document, notamment les exemples automatiques. Si toutefois on souhaite recourir aux macros décrites ci-dessus, il convient de prendre les mesures de prudence suivantes : ouvrir le document sans macro et n'activer ces deux macros qu'après le lancement du logiciel par le menu « Outils », rubrique « Macro », puis « Macros ».
Une demande de modification du logiciel a été faite à Microsoft.
http://support.microsoft.com/support/kb/articles/Q211/6/29.ASP
http://support.microsoft.com/support/kb/articles/Q198/5/44.ASP
http://support.microsoft.com/support/kb/articles/Q212/3/56.ASP
http://support.microsoft.com/support/kb/articles/Q212/0/54.ASP
http://support.microsoft.com/support/kb/articles/Q211/5/06.ASP