A savoir sur les Systèmes d'exploitation

  • A. Un noyau hybride Comme tous les noyaux précédents de la branche NT, les noyaux de Windows XP et Windows Vista sont qualifiés de noyaux hybrides. Celui de Windows Vista est basé sur celui de Windows Server 2003, mais seulement depuis un épisode surnommé « Longhorn Reset ». En effet, le noyau de Windows Vista était auparavant basé sur celui de Windows XP Service Pack 2, mais les multiples problèmes et retards dans le développement du système ont décidé Microsoft à recommencer, en 2004, le projet depuis le dédut. Sous Windows, les services dépendants du noyau et une partie des pilotes sont exécutés en espace noyau. Windows Vista constitue une avancée par rapport à Windows XP par le fait que désormais seule une infime partie des pilotes s’exécute en espace noyau et ce, au profit de l’espace utilisateur. Haut de page
  • B. L’ASLR, une protection du système L’ASLR (pour « Address Space Layout Randomization ») est une technologie inspirée du projet PaX, technologie issue du monde du logiciel libre. Le principe de cette technologie est simple. Dans un système dépourvu de l’ASLR/PaX, chaque portion de code est chargée dans un emplacement mémoire prédéfini. Cela correspond en quelque sorte à la signature du système et un logiciel malintentionné peut l’identifier et exploiter une faille quelconque. Pour contrer ces programmes, une même portion de code va être chargée à des emplacements mémoire aléatoires. Par conséquent, les chances pour qu’un programme néfaste atteigne sa cible sont beaucoup plus minces lorsque l’ASLR/PaX est utilisée. Windows Vista utilise cette fonctionnalité mais de manière restreinte, suite à quelques problèmes de stabilité. En effet, il était prévu qu’à chaque chargement d’un composant, son adresse mémoire serait modifiée. Désormais, cette modification s’effectue seulement lorsque la machine démarre. De plus, les programmeurs doivent activer spécifiquement cette option dans leur compilateur s’ils veulent en faire profiter leur application. Haut de page
  • C. D’autres protections : « Kernel Patch Protection »…

    Certains logiciels, comme les antivirus ou les pare-feu, ont besoin de modifier des fichiers système plus ou moins vitaux. Microsoft n’a cependant jamais autorisé ni supporté ces opérations pour des raisons évidentes :

    • Le support des versions personnalisées du noyau demeure compliqué ;
    • Si ces opérations sont autorisées, des programmes malicieux peuvent en profiter ;
    • Des modifications peuvent altérer les performances et la stabilité du système.

    Pour empêcher ces opérations, Microsoft a introduit le « Kernel Patch Protection », ou « PatchGuard », destiné à empêcher les modifications du noyau et de l’espace noyau. Uniquement présent sur les versions 64 bits de Windows XP, Server 2003 et Vista, le PatchGuard a malheureusement été contourné avant même la sortie de Windows Vista.

    Haut de page
  • D. Démarrage du système

    Les fichiers de démarrage

    Comme nous l’avons expliqué précédemment, NTLDR, qui lisait le fichier « boot.ini » présent à la racine, a laissé place à Bootmgr qui lit les données dans les « Boot Configuration Data ». Deux programmes font aussi leur apparition : « winload.exe » qui se charge de lancer Windows Vista ou Windows Server 2008 et « winresume.exe » dont le rôle est de restaurer la session en cours lorsque le système a été mis en hibernation. Notez que chaque version installée de Windows Vista ou de Server 2008 possède sa propre copie de ces fichiers. Si Windows 2000/XP est aussi installé sur la machine, le gestionnaire d’amorçage passe la main à NTLDR pour le chargement de la version antérieure.

    Boot Configuration Data

    Alors que le fichier texte « boot.ini » était facilement compréhensible et modifiable, Microsoft a fait le choix de stocker les informations de démarrage dans le même format binaire que celui de la base de registres. Dans le cas d’une machine équipée d’un BIOS, ces informations sont stockées dans le répertoire BootBcd, tandis qu’elles sont présentes sur la partition système EFI pour les machines intégrant l’EFI. Comme les données sont peu accessibles et au format binaire, Microsoft livre un programme, nommé « bcdedit.exe », qui permet de modifier la configuration de démarrage en ajoutant, modifiant ou supprimant des entrées. Bien plus puissant que l’ancien gestionnaire, ce programme est, en plus, évolutif puisqu’il peut supporter d’autres « firmware » que le BIOS ou l’EFI, et qu’il peut lancer des applications tierces. Un programme de test de la mémoire vive est d’ailleurs fourni.

    Haut de page
  • E. Les pilotes avec Windows XP : le WDM

    Apparu avec Windows 98, le « Windows Driver Model », ou WDM, a été conçu pour standardiser l’écriture des pilotes de Windows 98, réduire le nombre de lignes de code nécessaires et proposer une compatibilité (sources et binaires) ascendante. Ainsi, un pilote écrit pour Windows 98 devrait logiquement aussi pouvoir s’exécuter sous Windows Millenium, Windows 2000 ou encore Windows XP. Un cas comme celui-ci est cependant très rare, mais un grand nombre de pilotes conçus pour Windows 2000 est tout de même compatible avec Windows XP. Précisons que si la compatibilité est assurée, un pilote conçu pour une version précédente de Windows ne peut pas profiter des avancées du modèle WDM introduites avec le système supérieur.

    Ce modèle a malheureusement été la source de nombreux problèmes pour les versions de Windows qui le supportaient, notamment en termes de stabilité. Il est de plus jugé particulièrement complexe et l’écriture d’un pilote simple peut requérir plusieurs milliers de lignes de code. Comme si cela ne suffisait pas, il faut souligner que la grande majorité des pilotes s’exécute en espace noyau, ce qui signifie que le plantage d’un pilote peut entraîner le blocage du système. La venue de Windows Vista a permis à Microsoft de revoir ce mauvais point.

    Haut de page
  • F. Les pilotes avec Windows Vista : arrivée de la WDF

    Pour corriger les erreurs du passé, Microsoft a donné naissance à la « Windows Driver Foundation », ou WDF. Ce nouveau modèle comprend trois parties, dont deux « framework » :

    • Le KMDF ou « Kernel-Mode Driver Framework » ;
    • L’UMDF ou « User-Mode Driver Framework » ;
    • Des outils de vérification.

    Un framework est un ensemble de bibliothèques, et parfois d’outils, qui permet de développer des applications. Que ce soit pour le KMDF ou l’UMDF, Microsoft a tout mis en œuvre pour que le développement des pilotes se fasse plus simplement et requière moins de code. Enfin, une des améliorations les plus notables vient du fait que le code existant pourra être réutilisé facilement, ce qui n’était pas toujours le cas auparavant.

    Quelques mots sur le KMDF

    Les pilotes qui utilisent ce framework s’exécutent en espace d’adressage noyau. Lorsqu’une requête d’entrée/sortie est envoyée par une application, elle doit d’abord passer par l’API Win32 puis par le noyau du système. Le noyau crée alors une IRP (« I/O Request Paquet »), soit une représentation de la requête, et l’envoie au pilote. Cette requête est alors traitée par le KMDF qui appelle un des « callback » du pilote.

    Quelques mots sur l’UMDF

    Plus simple que le KMDF, l’UMDF est aussi plus sûr. En effet, les pilotes qui l’utilisent sont exécutés en espace d’adressage utilisateur. S’ils viennent à planter, ils sont tout simplement fermés et redémarrés, sans que le système s’en trouve pour autant affecté. La communication entre le pilote et le noyau est rendue possible par un composant additionnel appelé le réflecteur (ou « reflector »). Le réflecteur est un pilote filtre WDM.

    La vérification des pilotes : PREfast et SDV

    Pour compléter le travail des compilateurs, Microsoft a développé PREfast et SDV (« Static Driver Verifier »). PREfast se charge d’analyser le code pour détecter des erreurs qui sont difficilement détectables avec les compilateurs classiques. SDV exécute le code du pilote et place ce dernier dans un environnement hostile pour tester son comportement.

    Haut de page
  • G. Installation et système de notation des pilotes sous Windows Vista

    L’installation des pilotes sous Windows Vista

    Autrefois réservée aux administrateurs de la machine, l’installation d’un pilote peut désormais être lancée à partir d’un compte utilisateur classique. Elle se déroule en trois étapes :

    • 1.Le système vérifie le paquet et les fichiers : les fichiers binaires et la syntaxe des fichiers INF. Le processus d’installation est arrêté si le paquet contient une erreur ;
    • 2.Le pilote est installé de manière transparente ;
    • 3.Si cela est précisé, des applications tierces peuvent être installées une fois que l’installation du pilote s’est déroulée correctement.

    Un système de notation des pilotes

    Afin d’obtenir le label « Vista Premium », une machine doit avoir les voyants verts du « Driver Quality Rating ». Chaque pilote se voit attribuer une couleur en fonction de sa stabilité : rouge, jaune ou vert. Pour obtenir la couleur verte, un pilote devra être sorti depuis au moins 120 jours et avoir été stable pendant toute cette période au minimum. Si pour quelque raison que ce soit des problèmes font baisser la note, l’éditeur a 90 jours pour les corriger, sans quoi la sanction sera appliquée.

    Haut de page
  • H. La vidéo sous Windows Vista : pilotes graphiques

    Des nouveaux pilotes graphiques : les WDDM

    Les cartes graphiques accélératrices ont désormais une place importante dans les ordinateurs actuels. Afin d’exploiter au mieux le potentiel de ces périphériques, Microsoft a introduit une nouvelle architecture de pilotes graphiques avec Windows Vista (« Windows Display Driver Model »). Se basant évidemment sur la WDF, ces nouveaux pilotes apportent quelques avantages supplémentaires, tant en termes de stabilité que de performances.

    Un pilote WDDM est divisé en deux parties : un pilote en espace d’adressage noyau et un autre en espace d’adressage utilisateur. Le premier s’occupe des opérations de bas niveau qui requièrent de faibles temps de latence, tandis que le second se charge de la plupart des calculs. En réduisant au maximum le code exécuté en espace noyau, on limite le risque de plantage du système et on facilite sa récupération en cas de plantage de la partie qui s’exécute en espace utilisateur. Enfin, en cas d’utilisation prolongée du GPU par une application, le système peut, s’il détecte un blocage, redémarrer automatiquement le pilote graphique et réinitialiser le GPU pour remettre le bureau dans son état initial.

    La gestion des ressources graphiques sous Windows Vista diffère de celle des versions antérieures de Windows. Le GPU est désormais une ressource partagée, de la même manière que le processeur. Le « multitâche GPU » est alors possible et on peut donc lancer plusieurs instances de DirectX en même temps. L’utilisation du GPU par plusieurs applications simultanément est rendue possible grâce à un gestionnaire de mémoire du GPU (qui gère l’allocation de la mémoire du GPU) et par un ordonnanceur GPU. L’utilisation d’un pilote WDDM est par ailleurs indispensable pour pouvoir diffuser un contenu HD protégé à travers une des sorties de la carte graphique.

    Haut de page
  • I. DirectX et OpenGL

    Bien que nous ayons déjà parlé de DirectX dans les « généralités », vous devez savoir que Windows Vista, au contraire de Windows XP, utilise DirectX pour l’affichage du bureau.

    La version 10 introduit les changements suivants :

    • L’élimination des bits de capacité des cartes graphiques. Les cartes sont supposées équivalentes sur le plan fonctionnel, et seules les performances brutes les différencient ;
    • L’apparition des « Geometry Shader » ;
    • Un nouveau pipeline et une gestion plus souple de la mémoire ;
    • Un modèle unifié pour la programmation des unités de calcul. DirectX 10 se base sur la version 4.0 des « Pixel Shader ».

    Windows XP intégrait la version 1.1 des API OpenGL ; Windows Vista est livré avec la version 1.4. Cette version est très ancienne et peut poser quelques problèmes aux jeux qui l’utilisent. De même, l’exploitation d’OpenGL passe par DirectX et cela dégrade fortement les performances. Il existe néanmoins un moyen de contourner ces limitations : les constructeurs de cartes graphiques ont la possibilité d’intégrer la version d’OpenGL qu’ils désirent au sein de leurs pilotes. C’est ce qu’on appelle des pilotes ICD (pour « Installable Client Driver »).

    Haut de page
  • J. Les effets du bureau de Windows Vista

    Windows Vista (excepté la version Familiale Basique) utilise les capacités des cartes graphiques récentes pour afficher les effets suivants :

    • Un effet glacé appliqué aux fenêtres. C’est le thème « Aero » ;
    • Les fonctions Windows Flip (Alt + Tab) et Flip 3D (Windows + Tab) ;
    • Les vignettes des applications dans la barre des tâches.

    Ces effets sont rendus possibles par l’utilisation conjointe de WGF 1.0 et d’un pilote WDDM. Vous aurez aussi pu deviner que les deuxième et troisième effets utilisent la composition du bureau.

    Haut de page
  • K. L’audio sous Windows Vista

    Une nouvelle pile audio

    Windows XP utilise une pile audio apparue avec Windows 98 mais aujourd’hui dépassée. Avec Windows Vista, Microsoft a introduit une nouvelle pile audio qui utilise les flottants sur un 32 bits et qui évolue en espace utilisateur. L’ancienne pile audio ne gérait que les entiers codés sur 16 bits et évoluait en espace noyau. S’ensuivent une meilleure qualité audio, une meilleure stabilité et une meilleure réponse du système lors du traitement des flux audio.

    Plutôt que de régler le volume pour chaque type de flux, Windows Vista propose le réglage du volume par application. Les fenêtres de configuration du périphérique audio ont aussi été revues et elles se veulent plus intuitives. Microsoft propose par ailleurs quelques fonctionnalités avancées comme la gestion des basses, la spatialisation du son, le réglage en fonction de la pièce ou encore la création d’un son multi-canal à partir d’un enregistrement stéréo au micro.

    Malheureusement, ces améliorations sont accompagnées de la suppression de l’accélération matérielle. Microsoft considère que cet élément est une source d’instabilité pour le système et que les processeurs actuels sont assez rapides pour prendre sa place. Les API d’accélération matérielle, de même que DirectSound et DirectSound3D, n’utilisent donc plus la carte son directement comme elles le faisaient sous Windows XP.

    Haut de page
  • L. OpenAL et les pilotes spéciaux

    C’est là qu’entre en jeu OpenAL, l’équivalent d’OpenGL pour l’accélération audio. Cette API est capable de tirer parti de l’accélération matérielle des cartes son et nativement supportée par Windows Vista. La balle est donc du côté des constructeurs qui ne semblent, hélas, pas trop se soucier des besoins des consommateurs. Creative, le fameux constructeur de cartes son et promoteur de l’EAX a d’abord annoncé le support d’OpenAL pour ses cartes X-Fi avant d’en proposer un, quelques mois plus tard, pour les cartes Audigy. Il n’empêche que cette solution n’est pas à la portée de tous les utilisateurs.

    Un autre moyen de profiter de l’accélération matérielle de la carte son est d’utiliser un pilote particulier qui va bénéficier d’un accès exclusif à toutes les ressources audio. Ainsi, seule une application à la fois peut avoir accès à la carte son mais l’accélération matérielle est possible. Cette voie va sans doute être explorée par les constructeurs de cartes son professionnelles.

    Haut de page
  • M. Quelques mots sur l’UAA

    Pour en finir avec les pilotes audio mal finis et instables, Microsoft a annoncé en 2004 l’« Universal Audio Architecture », ou UAA, visant à simplifier la tâche des constructeurs. En leur fournissant une base prête à l’emploi, Microsoft tente de réduire la quantité de code à fournir par les constructeurs tout en proposant une solution compatible avec les versions supérieures à Windows Vista. Tous ces avantages devraient bien sûr profiter aux utilisateurs qui devraient rencontrer moins de problèmes avec leurs pilotes audio et ce, tant au niveau de la stabilité qu’en termes de complexité. Vista supporte donc sans problèmes les périphériques Intel HD Audio, IEEE 1394 AV/C (« Audio Video Control ») et USB Audio. Microsoft a dressé une liste des améliorations apportées par l’UAA :

    • une installation simplifiée des périphériques compatibles ;
    • une consommation réduite des ressources du processeur ;
    • des pilotes évolutifs ;
    • le support des technologies de protection des contenus ;
    • une meilleure intégration au système d’exploitation pour limiter le grésillement du son, même lorsque le processeur est trop sollicité.
    Haut de page
  • N. Le réseau sous Windows Vista

    Une pile réseau remaniée

    Une nouvelle pile réseau a été introduite dans Windows Vista. Elle remplace la pile réseau qui existait depuis les années 90 et elle supporte désormais nativement IPv6. Mais les nouveautés de cette pile ne s’arrêtent pas là : elle facilite la programmation réseau, est plus sûre, plus performante et intègre de nouvelles technologies et de nouveaux réglages. Par ailleurs, l’ajout ou la suppression de pilotes de la pile réseau ne nécessitent plus de redémarrage.

    L’intégration de la version 6 de NDIS apporte un nouveau modèle de pilotes, prétendument plus performant et plus simple à mettre en œuvre. De même, les technologies « TCP Chimney », « IPSec Chimney » et « RDMA Chimney » permettent d’améliorer les performances en déchargeant le processeur du traitement du trafic réseau.

    La sécurité du réseau

    Les fonctionnalités de sécurité réseau ne sont pas incluses dans la pile réseau. A la place, Microsoft a développé un « framework », appelé « Windows Filtering Plateform » ou WFP. Cet ensemble de services et d’API est utilisé pour le développement de pare-feu ou de solutions de sécurité.

    Le pare-feu de Windows Vista utilise donc la WFP. Il est bien plus complet que celui de Windows XP puisqu’il filtre désormais aussi bien les paquets entrants que les paquets sortants alors que celui de Windows XP ne s’occupait que des données entrantes. Ce pare-feu gère aussi IPSec, une technologie de cryptage du trafic IP. Son interface de configuration a été totalement revue : elle s’effectue au sein de la console de gestion.

    Haut de page
  • O. La gestion des utilisateurs sous Windows XP

    Windows XP a été le premier Windows grand public réellement multi-utilisateur. Malheureusement, la restriction trop importante des privilèges pour les comptes utilisateur classiques a eu pour effet que la majorité des utilisateurs travaille sur un compte administrateur. Il est par exemple impossible d’installer un logiciel ou un périphérique, d’exécuter un contrôle ActiveX spécial ou même de modifier des propriétés insignifiantes. Un compte administrateur n’est pourtant réservé qu’à la maintenance du système, la gestion des utilisateurs, etc., car il n’impose aucune restriction des privilèges. Il est alors aisé de corrompre le système si l’on n’est pas assez prudent.

    En plus d’être trop restrictif avec les comptes utilisateur classiques, l’assistant de configuration de Windows XP qui se lance au premier démarrage de la machine ne crée que des comptes administrateur. A l’utilisateur de modifier les droits du compte. Avec quelques connaissances, il est tout de même possible de créer des comptes aux droits élevés sans qu’ils possèdent les droits administrateur, mais l’opération n’est pas à la portée de tout le monde et aurait dû être automatique.

    Haut de page
  • P. La gestion des utilisateurs sous Windows Vista

    L’UAC en théorie

    Pour Windows Vista, Microsoft a totalement revu la gestion des droits et a développé un nouveau système de gestion des privilèges, fortement inspiré de celui de Linux et Unix. Cette fonction se nomme « User Account Control », ou UAC.

    Que l’utilisateur soit administrateur de la machine ou utilisateur standard, sa session est ouverte avec des droits standard. Dans le cas où une application demande des droits plus importants, l’UAC entre en jeu et propose à l’utilisateur de donner plus de privilèges à l’application. Si la session en cours est celle d’un administrateur, seule une confirmation sera demandée. En revanche, si la session en cours est celle d’un utilisateur classique, ce dernier devra entrer en plus le mot de passe d’un administrateur de la machine pour pouvoir élever les droits de l’application. L’élévation des droits est effectuée par un service système, le service « Application Information Service », ou AIS. Son fonctionnement est simple : lorsqu’il est sollicité, il crée un nouveau processus pour l’application qui le demande en lui donnant, cette fois-ci, des droits plus élevés.

    Comme certaines applications ne sont pas compatibles avec l’UAC, les demandes d’accès aux fichiers ou à la base de registres sont redirigées vers le répertoire « VirtualStore » et l’arborescence « HKEY_CLASSES_ROOT\VirtualStore » de la base de registres.

    Pour détecter le moment où il doit intervenir, l’UAC se base sur les manifestes XML fournis avec les applications ou utilise une analyse heuristique pour déceler les programmes d’installation.

    L’UAC en pratique

    Suivant que l’application fait partie intégrante du système, est signée numériquement ou non, la fenêtre affichée par l’UAC est différente. Lorsque le système a besoin d’élever les privilèges, il se verrouille et une boîte de dialogue s’affiche. En revanche, les demandes d’autorisation pour des programmes quelconques peuvent s’afficher en arrière-plan et attendre une action de l’utilisateur. Par ailleurs, elles disparaissent au bout de quelques secondes, annulant du coup l’opération en cours.

    Haut de page
  • Q. Quelques protections supplémentaires pour Windows Vista

    Windows Service Hardening

    En complément de l’UAC, le « Windows Service Hardening » empêche les services de Windows de réaliser des opérations non conformes. Par ailleurs, seules les ressources pouvant être modifiées sont accessibles en écriture pour les services ; les autres ressources sont en lecture seule.

    Windows Resource Protection

    Windows XP est équipé de la « Windows File Protection », une fonction chargée de protéger les fichiers sensibles du système. Windows Vista intègre, quant à lui, la « Windows Resource Protection », une évolution de la fonction précédente. En plus de protéger les fichiers, elle protège aussi la base de registres et gère mieux les programmes d’installation utilisant Windows Installer.

    Haut de page
  • R. Network Access Protection et isolation de la session 0

    Network Access Protection

    Dans une entreprise, la sécurité des machines est un point important, surtout lorsqu’elles sont connectées à un réseau. Une seule machine qui n’est pas à jour dans ses correctifs ou dans ses bases de données de virus peut mettre en péril le bon fonctionnement d’un parc tout entier. Grâce au client « Network Access Protection », intégré dans Vista (et disponible pour Windows XP), les administrateurs système peuvent définir une stratégie de sécurité sur un serveur équipé de Windows Server 2008. Les clients qui ne respectent pas les critères seront isolés du réseau jusqu’à la résolution des problèmes.

    Isolation de la session 0

    Sous Windows XP, les services sont hébergés au sein de la session du premier utilisateur qui se connecte au système : c’est la session 0. Or ce mode de fonctionnement est risqué pour la sécurité de la machine puisque des programmes néfastes peuvent utiliser des services pour acquérir plus de droits et effectuer des actions non réglementaires. Microsoft a profité de Windows Vista pour régler ce problème. La session 0 est désormais réservée aux services, tandis que la première session (la session 1) est réservée aux utilisateurs. Ce mode de fonctionnement diminue donc les risques d’attaque. En revanche, les services qui vérifiaient qu’ils fonctionnaient bien dans une session utilisateur risquent de ne pas vouloir fonctionner. Enfin, si une application disposant de droits élevés peut envoyer un message à une application moins privilégiée, l’inverse n’est plus possible. Cette sécurité est appelée « User Interface Privilege Isolation ».

    Haut de page
  • S. Autres protections supplémentaires pour Windows Vista

    La lutte contre les « spyware » avec Windows Defender

    Intégrée au système d’exploitation, cette application a pour fonction de lutter contre les programmes malintentionnés et les programmes-espions. Elle est aussi téléchargeable pour Windows XP.

    Crypter un volume : BitLocker Drive Encryption

    Seulement inclus avec les éditions Entreprise et Intégrale de Windows Vista, BitLocker est un outil de cryptage de disque pouvant tirer parti des puces TPM (« Trusted Plateform Module ») pour simplifier la procédure. Notez que BitLocker ne crypte que le volume contenant le système. Pour chiffrer les autres partitions NTFS, Microsoft recommande l’EFS (« Encrypting File System ») qui encrypte les données en temps réel sous Windows.

    Le contrôle parental

    Une des grandes nouveautés des éditions Familiale et Intégrale de Windows Vista pour les parents reste bien sûr l’intégration d’un système de contrôle parental. Une interface simple donne accès à la gestion des comptes et permet d’appliquer des restrictions sur la navigation internet, sur les plages horaires d’utilisation, ou encore sur les programmes. Un journal peut aussi recenser les actions des utilisateurs.

    Haut de page
Liens sponsorisés