Jaa


MEDC '07 Las Vegas - Locking Down Windows XPe and WEPOS

Lorsque l'on développe un système Windows XP Emdedded ou WEPOS (Windows Embedded for Point Of Service), on veut pouvoir utiliser les fonctionnalités de Windows XP, mais sur un device qui ne ressemblera pas à un PC, l'utilisateur n'ayant aucune notion de l'OS tournant dessus et ne pouvant pas accéder aux fonctionnalités d'administration. L'expérience utilisateur est très inmportante : on n'acceptera pas par exemple que son lecteur/enregistreur numérique mette 3 minutes à démarrer, ou qu'un équipement médical affiche un shell Windows !

Sean Liming, éminnence du monde XP Embedded nous a donc présenté les guidelines à suivre pour customiser et protéger son système XPe ou WEPOS.

  • Ecran de démarrage : personnaliser le bootscreen, supprimer le logo Windows
    • option /noguiboot dans boot.ini
    • option /bootlogo dans boot.ini
    • créer une image 640x480
    • créer un composant intégrant le nouveau fichier boot.ini, le bitmap et en resource, une commande FBA GenCMD pour effectuer l'opération de remplacement du fichier boot.ini lors du FBA (ceci ne pouvant se faire dans Component Designer ou Target Designer.
  • Modifier le mode de logon (automatique, optionel, minlogon...), remplacer GINA (Graphical Identification and Authentification) en utilisant une solution tierce partie (www.frontmotion.com, www.stardock.com,...) ou bien soit-même (voir livre blanc de Keith Brown "Security Briefs: Customizing GINA")
  • Modifier le look and feel
    • remplacer le shell par sa propre application
    • changer le theme du shell standard
    • modifier/supprimer les économiseurs d'écran et gestionnaires d'économie d'énergie
    • intercepter les messages du système avec System Message Intercept
    • supprimer le curseur sur les appareils avec écran tactile
    • modifier les écrans du BIOS (www.gensw.com)
  • Démarrage : la temps de démarrage dépend principalement du disque de démarrage
    • on préfèrera un disque dur avec mode DMA, ou de la Flash USB 2.0
    • on peut utiliser HORM (Hibernate Once Resume Many) depuis XPe SP2. HORM permet de démarrer en restaurant un état d'hybernation. En moyenne, on obtient un temps de boot d'une 30aine de secondes (15s pour le BIOS, 15s pour la restauration de l'OS). Voir les articles du MSDN concernant HORM.
  • Sécurité :
    • inclure et activer : Windows Firewall, IPSec, WEP, WPA
    • activer Data Execution Prevention
    • utiliser NTFS
    • utiliser Winlogon lorsque c'est possible
    • utiliser Enhanced Write Filter
    • diminuer la taille de l'image pour diminuer la surface d'attaque"
    • ajouter un anti-virus
    • activer Pop-up Blocker
    • utiliser la sécurité biométrique ou à l'aide de Smart Card.
    • implémenter un "dual shells" : un shell bridé pour l'utilisateur et un shell pour l'administrateur. Pour cela, il faut modifier quelques clés de la base de registre (cf. article MSDN "Different Shells for Different Users")
    • mettre en oeuvre des "security policies" personnalisées. On peut créer un composant avec Component Designer qui appliquera ces paramètres lors du FBA.
    • gérer les périphériques qui se connectent à la cible (clés USB, appareil photo, ...) : https://www.securewave.com

When you develop a Windows XP Embedded or WEPOS (Windows Embedded for Point Of Service), you want to be able to benefit from Windows XP functionnalities on a device that won't look like a PC, on which the user won't know about the OS running underneath at all and won't have access to administration functions. The user experience is very important : you won't accept your digital video recorder to take 3 minutes boot time, or you won't want your medical equipment to display a Windows Shell!

Sean Liming , Windows XPe expert presented guidelines to customize and secure ya XPe or WEPOS system.

  • Boot screen: customize bootscreen, remove Windows logo
    • option /noguiboot in boot.ini
    • option /bootlogo in boot.ini
    • create a 640x480 bitmap
    • create a component containing the new boot.ini file, the bitmap and in resources, a FBA (First Boot Agent) GenCMD to execute remplacement of the boot.ini file during FBA time (because this can't be done before FBA time).
  • Modifiy logon (automatic, optional, minlogon...), replace GINA (Graphical Identification and Authentification) using a third party solution( www.frontmotion.com , www.stardock.com ,...) or by yourself (see Keith Brown's white paper "Security Briefs: Customizing GINA")
  • Change look and feel
    • replace shell by your own applicaiont
    • change standard shell theme
    • modifiy/remove screen savers and power saving managment
    • intercept system messages using System Message Intercept
    • remove cursor on touch display enable
    • change BIOS screen ( www.gensw.com )
  • Boot time : boot time mainly depends on drive
    • you'll prefer a DMA mode enabled HDD, or USB 2.0 flash
    • you can use HORM (Hibernate Once Resume Many) since XPe SP2. HORM allows to boot restoring an hybernate state. you get something like 30s boot time (15s for BIOS, 15s for the OS). See articles about HORM in MSDN.
  • Security :
    • iinclude and activate: Windows Firewall, IPSec, WEP, WPA
    • activate Data Execution Prevention
    • use NTFS
    • use Winlogon lorsque c'est possible
    • use Enhanced Write Filter
    • reduce footprint size to reduce attack surface
    • add anti-virus
    • activate Pop-up Blocker
    • use biometric or Smart Card security
    • implement "dual shells": a user shell with limited functionalities and a more complete one for the admin. In order to do so, you have to change some registry keys (see MSDN article"Different Shells for Different Users")
    • set custom "security policies" . You can create a component with Component Designer that will apply hanges during FBA.
    • manage peripherals connecting to the target (USB Disk on Key, cameras, ...) : https://www.securewave.com

Comments

  • Anonymous
    June 15, 2009
    PingBack from http://mydebtconsolidator.info/story.php?id=21549

  • Anonymous
    February 14, 2010
    Bonjour Vu qu'il n'y a plus de boot.ini sur windows 7, je me demande comment on peut réaliser les préconisations ci-dessous sous Seven?

  • Anonymous
    February 14, 2010
    Bonjour Pierre Je ne peux entrer dans le detail pour ce qui est de Windows 7, en revanche Windows Embedded Standard 7, prochaine version de notre version embarquee de Windows, basee sur Windows 7, et disponible en CTP sur connect.microosft.com, met a disposition des outils permettant de fairde ce type de personnalisation de maniere beaucoup plus controlee et aisee. Je vous invite a vous enregister sur connect et a telecharger la version d'evaluation qui inclus la documentation qui vous guidera: http://connect.microsoft.com/windowsembedded Nous prevoyons de publier des Webcasts sur ces sujets sous peu... restez connecte. -Olivier