1 Vulnérabilité non corrigée dans Microsoft VBscript

Cette semaine, Microsoft a émis un bulletin de sécurité concernant une vulnérabilité dans VBscript. Cette vulnérabilité a fait l'objet de l'alerte CERTA-2010-ALE-003.

Cette vulnérabilité est due à une faiblesse structurelle du format de fichier .HLP et permet à une personne malintentionnée d'exécuter du code arbitraire à distance.

Le format .HLP est le format historique utilisé pour les fichiers d'aide dans les environnements Microsoft (remplacé depuis quelques années par le format .CHM). Ce format de fichier est considéré comme non sûr car il permet l'exécution de commandes arbitraires via des macros.

En effet, la fonction VBscript (MsgBox) permet l'ouverture de ce type de fichiers .HLP, via une boîte de dialogue incitant l'utilisateur à appuyer sur la touche F1. Il est possible que cette fonction soit appelée via une page Web ouverte avec Microsoft Internet Explorer ou un document Microsoft Office contenant du script.

Le fichier .HLP sera ouvert si et seulement si l'utilisateur appuie effectivement sur cette touche F1. L'ouverture de ce fichier .HLP permet alors l'exécution de code à distance avec les privilèges de l'utilisateur courant. Le fichier .HLP peut se trouver sur le disque local, un partage SMB ou un serveur WEBDAV.

Il est à noter que du code d'exploitation est d'ores et déjà disponible sur Internet.

Documentation

2 Durcissement de la configuration des systèmes Windows (2/8)

Pour continuer la série d'articles dédiés au renforcement de la configuration des systèmes Windows, voici le second article qui s'intéresse au protocole NetBIOS. Cette suite de recommandations ne contiendra finalement pas quatre articles comme annoncé la semaine dernière mais huit !

2.1 Désactivation de NetBIOS sur TCP/IP

Dans un environnement réseau Windows, le protocole NetBIOS over TCP/IP (appelé également NetBT1) est utilisé pour transporter le protocole SMB (Serveur Message Block) qui sert de support au service de partage de fichiers et d'imprimantes, au système de communication inter-processus unidirectionnel (mailslots) et aux canaux nommés (named pipes). De nombreuses interfaces RPC (Remote Procedure Call) offertes par les systèmes Windows se basent à leur tour sur les canaux nommés pour leur communication.


À partir de Windows 2000, SMB peut utiliser un nouveau protocole dénommé Directhosting2. Lorsque le support des versions antérieures à Windows 2000 n'est pas nécessaire, NetBT peut être désactivé. En effet, ce protocole met en œuvre le service NBNS (NetBIOS Name Services) qui est responsable de l'émission en broadcast de nombreux paquets réseau nécessaire à la découverte du voisinage réseau. Dans un environnement Active Directory, le voisinage réseau n'est plus nécessaire. De plus, le service NBNS divulgue des informations telles que le nom de la machine ou de l'utilisateur connecté sur un système.


Cette action peut être réalisée dans les propriétés de chaque interface réseau (choix « Protocole Internet (TCP/IP) », bouton « Avancé », onglet « WINS », puis option « Désactiver NetBIOS avec TCP/IP »).


Il est également possible de désactiver NetBT sur toutes les interfaces réseau d'un système à l'aide d'un script WMI. Le site de Microsoft propose des exemples de scripts3, qu'il est possible de modifier pour désactiver NetBT, déployables et exécutables à l'aide des GPO dans le cadre d'un domaine Active Directory.

3 La technologie DEP (Data Execution Prevention) : Administration et configuration (2/3)

La semaine dernière nous avons vu les principes de base du fonctionnement de la technologie DEP. Aujourd'hui nous allons voir quels sont les éléments de configuration disponibles.

3.1 Réglages de DEP au niveau du système

Il existe 4 modes de fonctionnement de DEP au niveau du système d'exploitation.

  • optin : DEP est activé pour tous les exécutables de Windows ainsi que pour les programmes qui ont volontairement choisis DEP.
  • optout : DEP est activé pour tous les exécutables sauf pour ceux qui ont été volontairement exclus de DEP.
  • alwayson : DEP est activé pour tous les exécutables, il n'y pas d'exclusion possible.
  • alwaysoff : DEP est désactivé pour tous les exécutables.

Par défaut, sur les systèmes clients (exemple Windows XP SP3), l'option sélectionnée est optin.

Sur les systèmes serveurs (exemple Windows 2003 SP2), l'option sélectionnée par défaut est optout.

Pour Windows XP et Windows 2003, ces paramètres sont accessibles via une option dans le fichier boot.ini :

/noexecute=

Par exemple :

multi(0)disk(0)rdisk(0)partition(1)\\WINDOWS="Microsoft Windows XP Professionnel"
/noexecute=optin
Pour Windows Vista (et ultérieurs) le réglages'effectue par l'outil «BcdEdit.exe setNX».

Les modes optin et optout sont aussi configurables via l'interface graphique, dans les propriétés système :

Image Prosys
Image optionDepOptIn

Il est à noter que les exécutables 64 bits sont obligatoirement couvert par DEP, quelque soit la configuration au niveau système. Sur un système 64 bits les options de réglages DEP ne concernent donc que les exécutables 32 bit.

3.2 Paramétrage de DEP au niveau applicatif

Pour les modes optin et optout il est possible de configurer DEP par application de plusieurs manières.

3.2.1 Fenêtre Propriétés système

Nous avons vu précédemment que les modes optin et optout sont aussi configurable, via l'interface graphique, dans les propriétés système.

Si l'on choisit le mode optout, on peut choisir la liste des exécutables qui seront exclus de DEP. Exemple pour exclure Notepad.exe :

Image optionDepOptOut

3.2.2 ACT (Application Compatibility Toolkit) : Désactiver DEP pour un exécutable

L'ACT est un utilitaire Microsoft qui permet de créer des fichiers de configuration par exécutable. De nombreux paramètres sont modifiables, notamment pour la compatibilité de certaines applications sur de nouvelles versions du système d'exploitation.

Dans le cas de DEP, lorsque que l'on a choisi le mode optout, ACT permet de spécifier l'option DisableNX permettant d'exclure un exécutable de DEP.

L'exécutable que l'on souhaite configurer doit être présent (mais par forcement installé) sur la même machine qu'ACT. Pour ce faire, il faut lancer le programme Compatibility Administrator (installé avec l'ACT), puis créer une nouvelle base de données.

Ensuite il faut créer un nouveau «Application Fix» (Menu «Database»). Nous allons prendre comme exemple l'exécutable Notepad.exe, qui est installé par défaut dans Windows, et est donc protégé par DEP automatiquement :

Image ACT1

Dans la fenêtre suivante il faut sélectionner «None» dans «Operating System Modes» :

Image ACT2

Ensuite choisir «DisableNX» :

Image ACT3

La fenêtre «Matching information» qui suit, permet de sélectionner les critères (outre le nom de l`exécutable), qui seront pris en compte par le système pour savoir s'il doit appliquer cet «Application Fix» à un processus qui est lancé :

Image ACT4

Par défaut, ces critères sont assez restrictifs (version exacte, langue) et souvent trop pour un parc hétérogène. Vous pouvez donc supprimer certains critères pour vous assurer que la modification fonctionnera sur toutes vos machines. Dans notre scénario, nous n'avons gardé qu'un seul critère ORIGINAL_FILENAME :

Image ACT5

Une fois les critères sélectionnés vous devez voir :

Image ACT6

Ensuite, il faut enregistrer la base de données sous la forme d'un fichier .sdb (dans notre cas NotepadNX.sdb), et c'est ce fichier qui sera déployé sur les postes cibles.

Ce déploiement peut s'effectuer par script via la commande sdbinst.exe -q NotepadNX.sdb.

Pour vérifier que cette commande s'est bien déroulée vous pouvez utiliser l'outil Process Explorer. Il faudra au préalable sélectionner la colonne DEP via le menu «View->Select Columns->DEP Status».

Image ACT7

Avant l'exécution de la commande sdbinst.exe on peut voir que Notepad.exe à bien DEP activé :

Image ACT8

Après l'exécution de la commande sdbinst.exe on peut voir que DEP n'est plus activé pour Notepad.exe (après avoir relancé Notepad.exe):

Image ACT9

3.2.3 ACT (Application Compatibility Toolkit) : Activer DEP pour un exécutable

Si vous avez choisi le mode optin, ACT permet d'ajouter des exécutables à la liste des applications qui ont opté pour DEP.

Il faut relancer ACT comme précédemment sauf qu'il faudra choisir AddProcessParametersFlags au lieu de DisableNX et clicker sur le bouton «Parameters» :

Image ACT10

Ensuite dans «Command Line» on entre la valeur 20000 :

Image ACT11

Le reste de la procédure reste inchangé.

3.2.4 Option /NXCOMPAT

L'option /NXCOMPAT est disponible lors de la création d'une application. C'est une option de l'éditeur de lien (Linker) qui permet d'indiquer si DEP est activé avec /NXCOMPAT ou désactivé avec /NXCOMPAT=NO pour l'exécutable.

Cette option n'est reconnue par le système d'exploitation qu'à partir de Windows Vista.

L'outil Microsoft EditBin permet de réaliser la même opération directement sur l'exécutable : editbin.exe /NXCOMPAT

3.2.5 API SetProcessDEPPolicy

L'API (Application Programming Interface) SetProcessDEPPolicy permet, à partir de Windows XP SP3, de modifier dynamiquement l'activation de DEP dans un programme.

3.3 Au prochain épisode...

La semaine prochaine, nous nous pencherons sur les problèmes de compatibilité liés à DEP et sur les limites de cette technologie... .

Rappel des publications émises

Dans la période du 22 février 2010 au 28 février 2010, le CERT-FR a émis les publications suivantes :


Dans la période du 22 février 2010 au 28 février 2010, le CERT-FR a mis à jour les publications suivantes :