L'isolation de l'application Win32 est maintenant en préversion publique, voici ce qu'elle fait

L'isolation des applications Win32 est une fonctionnalité de sécurité astucieuse que Microsoft a introduite dans Windows 11 le mois dernier, voici comment cela fonctionne.

Lors de sa conférence annuelle Build le mois dernier, Microsoft a annoncé la possibilité de exécuter des applications Win32 de manière isolée sur Windows 11. La société n'est pas entrée dans les détails dans son article de blog initial, mais elle a mis en évidence l'option d'exécuter Win32 applications dans un environnement sandbox afin que le reste du système d'exploitation soit protégé contre les éléments potentiellement malveillants logiciel. Maintenant, il a révélé plus d'informations sur cette capacité particulière, y compris son fonctionnement et son intégration dans le reste de l'infrastructure de sécurité de Windows.

David Weston, vice-président de la sécurité du système d'exploitation et de l'entreprise chez Microsoft, a rédigé un long article de blog, expliquant la nature de l'isolation des applications Win32. La fonctionnalité est encore une autre option de sécurité du bac à sable, tout comme

Bac à sable Windows et Microsoft Defender Application Guard, mais il est basé sur AppContainers, et non sur un logiciel basé sur la virtualisation comme les deux autres mesures de sécurité. Pour ceux qui ne le savent pas, les AppContainers permettent de contrôler l'exécution d'un processus en l'encapsulant et en s'assurant qu'il s'exécute à des niveaux de privilège et d'intégrité très bas.

Microsoft a fortement recommandé d'utiliser Contrôle d'application intelligent (SAC) et l'isolation des applications Win32 en tandem tout en sécurisant votre environnement Windows contre les applications non approuvées qui utilisent des vulnérabilités 0-day. Le premier mécanisme de sécurité arrête les attaques en installant uniquement des applications de confiance tandis que le second peut être utilisé pour exécuter des applications dans un environnement isolé et sécurisé afin de limiter les dommages potentiels et de protéger l'utilisateur confidentialité. En effet, une application Win32 exécutée de manière isolée n'a pas le même niveau de privilège que l'utilisateur du système.

La société de technologie de Redmond a identifié plusieurs objectifs clés de l'isolation des applications Win32. Pour commencer, cela limite l'impact d'une application compromise puisque les attaquants ont un accès à faible privilège à une partie du système d'exploitation, et ils devraient enchaîner une attaque complexe en plusieurs étapes afin de percer leur bac à sable. Même s'ils réussissent, cela donne également un meilleur aperçu de leur processus, ce qui accélère beaucoup la mise en œuvre et la livraison des correctifs d'atténuation.

La façon dont cela fonctionne est qu'une application est d'abord lancée à des niveaux d'intégrité faibles via AppContainer, ce qui signifie qu'ils ont accès à certaines API Windows et ne peuvent pas exécuter de code malveillant nécessitant des privilèges plus élevés les niveaux. Dans la prochaine et dernière étape, les principes du moindre privilège sont appliqués en accordant à une application un accès autorisé aux objets sécurisables de Windows, ce qui équivaut à la mise en œuvre d'un Liste de contrôle d'accès discrétionnaire (DACL) sur Windows.

Un autre avantage de l'isolation des applications Win32 est la réduction des efforts des développeurs, car les créateurs d'applications peuvent tirer parti du profileur de capacité d'application. (ACP) disponible sur GitHub pour comprendre de quelles autorisations ils ont exactement besoin. Ils peuvent activer ACP et exécuter leur application en "mode d'apprentissage" dans l'isolement de l'application Win32 pour obtenir des journaux sur les fonctionnalités supplémentaires dont ils ont besoin pour exécuter leur logiciel. ACP est alimenté par le backend de la couche de données Windows Performance Analyzer (WPA) et les journaux de suivi des événements (ETL). Les informations des journaux générés par ce processus peuvent simplement être ajoutées au fichier manifeste du package d'une application.

Enfin, l'isolation des applications Win32 vise à offrir une expérience utilisateur transparente. L'isolation des applications Win32 facilite cela en exigeant que les applications utilisent la fonctionnalité « isolatedWin32-promptForAccess » pour inviter l'utilisateur au cas où il aurait besoin d'accéder à ses données telles que les bibliothèques .NET et le registre protégé clés. L'invite doit être significative pour l'utilisateur auprès duquel le consentement est obtenu. Une fois l'accès à une ressource accordé, voici ce qui se passe ensuite :

Lorsque l'utilisateur donne son consentement à un fichier spécifique pour l'application isolée, l'application isolée s'interface avec Windows Système de fichiers de courtage (BFS) et accorde l'accès aux fichiers via un mini pilote de filtre. BFS ouvre simplement le fichier et sert d'interface entre l'application isolée et BFS.

La virtualisation des fichiers et du registre permet de garantir que les applications continuent de fonctionner sans mettre à jour le fichier de base ou le registre. Cela minimise également les frictions de l'expérience utilisateur tout en maintenant la compatibilité des applications. Les espaces de noms protégés sont créés pour autoriser l'accès uniquement à l'application et ne nécessitent pas le consentement de l'utilisateur. Par exemple, l'accès à un dossier dont la propriété n'est connue que de l'application Win32 et requise pour la compatibilité de l'application peut être accordé.

Microsoft a souligné qu'afin d'avoir la parité des fonctionnalités entre les produits isolés et non isolés Les applications Win32, les premières peuvent interagir avec le système de fichiers et d'autres API Windows en tirant parti de Windows BFS. De plus, les entrées dans le manifeste de l'application garantissent également que l'application peut interagir en toute sécurité avec les éléments Windows tels que les notifications du shell et les icônes dans la barre d'état système. Tu peux en savoir plus sur l'initiative sur GitHub ici.