Comment Redmond s’est penché sérieusement sur la question de sécurité avec Windows 7.

Si le meilleur développeur de logiciel que je connaisse préfère me rencontrer dans un restaurant sushi, c’est probablement une bonne chose, car lorsqu’un ringard comme moi discute avec un programmateur du gabarit d’Adam [j’ai changé le nom pour me protéger], il vaut mieux s’éloigner d’ustensiles tranchants. « Qu’est-ce que tu racontes ? », « Tu t’en fiches de la sécurité ?! » Qu’est-ce que tu racooooontes », « Tu t’en occuperas plus tard ? », je m’exclame en hurlant, tandis que mon ami mâche et avale tranquillement, puis m’explique que là où il travaille, ils construisent d’abord le logiciel, puis s’occupent des « bogues » par la suite – notamment les failles de sécurité qui pourraient surgir.

Pendant qu’il commande plus de saké, je me demande si je dois craindre un mauvais sushi ou le logiciel d’Adam.

Fort heureusement pour la plupart d’entre nous, Adam ne travaille pas chez Microsoft. En 2004, Microsoft – après avoir pris de coups pendant des années par les férus de sécurité et d’autres dont les motifs n’étaient pas si transparents – s’est engagé dans une politique exigeant des processus de sécurité qu’ils soient intégrés aux logiciels à partir du moment où tout un chacun les critiquait. Windows 7 est la deuxième version du système d’exploitation phare de l’entreprise à se soumettre à un processus complet, connu et peut-être même affectionné par la compagnie, le cycle de vie de développement de la sécurité de Microsoft.

Processus affectionné ? Tout au moins accepté, selon David Ladd, directeur principal des programmes de sécurité de l’équipe de l’entreprise chargée du cycle de vie de développement de la sécurité (Security Development Lifecycle – SDL) qui déclare que le processus est enraciné auprès des équipes chargées du développement dans l’ensemble de l’entreprise. Le contrôle de la sécurité est tissé dans les six étapes du processus de développement de logiciels.

1. Les exigences. Au fur et à mesure que les développeurs décident des caractéristiques qui appartiendront à un nouveau logiciel, les projets sont enregistrés auprès de l’équipe Secure Windows Initiative de Microsoft, qui fournit à son tour des conseillers en sécurité à l’équipe de développement.

2. La conception. Les exigences et la structure du nouveau logiciel sont étoffées, pendant que les responsables de la sécurité élaborent les directives relatives à l’architecture et à la conception de la sécurité du produit, examinent les surfaces d’attaque potentielles des surfaces et modélisent les menaces possibles. Ladd dit qu’au cours des années qui ont suivi le développement de Windows Vista, la société a mis en exergue l’alignement de la sécurisation dans cette phase du processus – c’est-à-dire, dès le départ – puisque c’est justement la phase pendant laquelle les problèmes potentiels de sécurité sont les plus faciles et les moins chers à résoudre.

La modélisation des menaces est à maints égards un exercice de pensée créatrice qui équivaut au processus de conception lui-même, sachant que les experts de la sécurité tentent de prévoir les menaces de toute fonctionnalité du logiciel qui pourrait avoir des incidences sur la sécurité ou la vie privée (encore une fois, le développement le plus important est la réflexion sur les fonctionnalités elles-mêmes). Ladd hésite à donner des détails précis, mais dit que l’équipe a trouvé « des dizaines de modèles de menaces d’une complexité variable » pour Windows 7.

3. La mise en œuvre. Le codage est bel et bien en cours à ce stade. Alors que le code est mis en place par les développeurs, les responsables de la sécurité font de leur mieux pour le briser : analyse du code, exécution des outils d’analyse du code qui cherchent les dépassements de tampon (un vecteur d’attaque populaire pour les logiciels malveillants) et autres failles, application des normes de codage et d’essai et exécution d’autres tests de sécurité, y compris les outils destinés au « fuzzing » (technique utilisée pour traquer des failles de sécurité)  qui peut détecter des problèmes associés à l’API (l’interface de programmation d’application). Avec Windows 7, les outils de fuzzing ont été davantage perfectionnés qu’ils ne l’avaient été avec Vista. Ladd ajoute que depuis Vista, la liste des interfaces de programmation d’application interdits s’est considérablement élargie, verrouillant un certain nombre de pistes potentiellement exploitables.

Les atténuations – techniques qui permettent plus facilement aux développeurs de contrecarrer les tentatives de piratage d’une vulnérabilité – figurent en bonne place dans le processus SDL à ce stade. D’après Ladd, les techniques de défense en profondeur, telles que la prévention de l’exploitation des vulnérabilités d’exécution du code en mode utilisateur, les contrôles d’intégrité pour la dissociation sécurisée du noyau kernel et les améliorations de filtre pour filtres XSS dans Internet Explorer 8 (le navigateur par défaut dans Windows 7) ont fait leur première apparition dans Windows 7.

4. La vérification. Le logiciel est désormais entièrement fonctionnel et prêt pour les tests bêta. Pour les professionnels de la sécurité, les efforts de sécurité ou le « Security Push » (oui, c’est le nom officiel de cette étape) sont en route à mesure qu’ils se focalisent au départ à partir des surfaces d’attaque prioritaires identifiées à l’étape de conception vers – enfin, partout ailleurs. Aucun code n’est en sécurité alors que l’équipe chargée de la sécurité examine non seulement le nouveau matériel, mais le code hérité utilisé dans les versions antérieures du logiciel. Les tests de pénétration sont également en cours et l’équipe – avec le grand public à l’horizon – prépare un plan de réponse sur la sécurité après la sortie du logiciel. Qui après un examen finale de la sécurité …

5. Le lancement, suivi immédiatement et pour toute la durée de vie du produit, par …

6. Le support et les services, qui incluent nécessairement tous les correctifs nécessaires.
Microsoft a sérieusement commencé à réorganiser son approche sur la sécurité avec le lancement de son programme Trustworthy Computing Initiative dès 2002. Cela dit, il faut rendre à César ce qui appartient à César : le SDL est davantage un agrégat de processus de sécurité prouvés mis au point par Microsoft ou par d’autres entreprises qu’une réflexion originale sortie tout droit de Redmond. Ces processus sont destinés au développement à la fois d’applications client/serveur (à l’évidence, un terrain bien familier pour Redmond) et d’applications basées sur l’informatique en ligne ou en nuages.

Pour donner une reconnaissance la communauté plus large de la sécurité (et pour encourager les développeurs tiers à poursuivre une approche de développement autant rigoureuse et sensible à la sécurité – écoute-moi bien Adam ! l’entreprise a fait preuve d’une remarquable ouverture sur la dynamique de ce processus, qu’elle décrit comme étant de l’information « non exclusive ». C’est la raison pour laquelle les orientations du processus SDL, mis à jour régulièrement, sont disponibles en ligne. Ce que Ladd décrit comme « un tas » d’outils SDL est également disponible en téléchargement gratuit, notamment l’analyseur binaire BinScope Binary Analyzer, un outil de vérification ! exploitable, qui automatise le processus de tri des failles et un outil actualisé de modélisation des menaces, Threat Modeling Tool. Des outils complémentaires, comme le fuzzer de base, sont disponibles dans le référentiel des outils SDL. Par ailleurs, il existe aussi un kit de formation gratuit qui comprend des démonstrations de « laboratoires virtuels pour débutants.

Ainsi, le processus SDL étant un processus vivant, constamment soumis à examen et révision – qu’a donc appris l’équipe Windows 7 au cours de ce développement ? Quels étonnements et quelles surprises l’équipe a-t-elle rencontrés ? Ladd dit qu’il n’y a eu « aucune révélation - ce qui est l’expérience idéale lorsqu’il s’agit du processus SDL ». Ou bien, comme diraient la majorité des professionnels informatiques axés sur la sécurité, lorsqu’il s’agit de connaître et de comprendre un système d’exploitation tout nouveau.

FM IT Expert Voice est un partenariat entre Dell® et Federated Media. Déclaration de confidentialité