Par Antoine Dauchelle
Principe de base
Contrairement à un anti-virus, AppGuard ne cherche pas à savoir si un programme est « bon » ou « mauvais », il va simplement appliquer le principe « d’isolation » très classique dans les environnements « smartphone », où une application ne peut pas interférer avec une autre, et encore moins modifier le système sur lequel elle fonctionne.
Par défaut, Windows est un système « ouvert » : tous les programmes ont tous les droits (avec quelques limitations selon si l’utilisateur dispose des droits « administrateur » ou pas). Ceci permet à n’importe quel ordinateur Windows d’exécuter n’importe quel programme, développé par n’importe qui… Cette force est également une faiblesse, car elle permet la création et l’exécution de programmes malveillants, qui auront alors accès à la totalité du système.
Afin d’apporter une solution radicale, AppGuard Solo va définir deux espaces :
- L’espace « Système » (qui contient par défaut C:\Windows et C:\Program Files sous Windows)
- L’espace « Utilisateur » (tout le reste, y compris les partages réseaux et les stockages amovibles).
Voici les règles d’AppGuard :
- Seuls les programmes présents dans l’espace « Système » peuvent s’exécuter.
- Seuls les programmes signés par les éditeurs dont le certificat est présent dans la liste « Publishers » sont autorisés à s’exécuter depuis l’espace « Utilisateur » (par défaut : Adobe, Apple Inc, Blue Ridge Networks, Google, Intuit, McAfee, Inc., Microsoft, Mozilla, Oracle, Sun Microsystems et Symantec Corporation)
- Il est possible de créer des exceptions si nécessaire.
Toutefois, certains programmes légitimes sont souvent la cible d’attaque, et doivent donc être « surveillés », pour éviter qu’ils ne servent de porte d’entrée (les navigateurs, les applications bureautiques, les lecteurs multimédias…). Chez AppGuard, on dit que ces applications sont « Guarded », cela signifie que même si elles ont le droit de s’exécuter, leurs actions seront limitées :
- Interdiction d’écrire sur le disque système (à part dans %userprofile% et %ProgramData%)
- Interdiction d’écrire dans certains emplacements de la base de registre
- Interdiction de lire ou écrire dans la mémoire d’autres processus (fonction « MemoryGuard »)
- Interdiction d’accès aux dossiers personnels de l’utilisateur (fonction « PrivacyGuard »)
Ces deux dernières protections pourront être désactivées au cas par cas.
Enfin, AppGuard applique le principe d’héritage : si une application est « Guarded », ses processus enfants le seront également et ainsi de suite.
Le but de cet article est de vérifier le comportement d’AppGuard dans le contexte suivant :
- Windows 10 + Microsoft Office
- L’utilisateur est Administrateur de sa machine
- Aucun antivirus n’est présent
Nous allons exécuter plusieurs outils utilisés par les programmes malveillants (mais aussi par les chercheurs en cyber sécurité), et voir comment AppGuard réagit.
Mimikatz
Mimikatz est un logiciel qui permet de « jouer » avec la mémoire de Windows, et s’est notamment fait connaitre pour récupérer les mots de passes d’une session Windows ou extraire les clefs privées considérées comme « non extractible ».
Nous allons tester Mimikatz avec AppGuard éteint, ensuite nous testerons Mimikatz avec AppGuard activé et nous verrons le résultat.
Etape 1 : Mimikatz sans AppGuard
En tant qu’administrateur, lancer « mimikatz.exe ».

La console de Mimikatz va s’afficher.


Une fois le privilège obtenu, récupérons les mots de passes avec la commande : « sekurlsa ::logonPasswords full »

Mimikatz a réussi à extraire tous les mots de passes stockés en mémoire

Etape 2 : Mimikatz avec AppGuard
Réessayer de lancer Mimikatz avec une invite de commande comme dans l’étape précédente. Vous verrez que Mimikatz ne peut être lancé.


On voit qu’AppGuard refuse le lancement de Mimikatz. Si on regarde dans les logs on voit qu’il le bloque, ce qui est logique car par défaut, AppGuard empêche toute exécution de programme depuis l’espace « Utilisateur ».
Pour lancer « mimikatz.exe » il faut du coup créer une exception, en ajoutant l’éditeur ayant signé le binaire :


Désormais, Mimikatz s’exécute mais il n’arrive pas à extraire les mots de passes car AppGuard va l’empêcher d’accéder à la mémoire des autres processus, c’est la fonctionnalité « MemoryGuard » :


Document Office Piégé
Etape 1 : Ouverture d’un fichier EXCEL piégée
Nous allons tester un document Excel qui contient une macro malveillante qui tente de télécharger un binaire puis de l’exécuter.
Evidemment, les macros sont bloquées par défaut, mais il ne faut pas sous-estimer un utilisateur, nous allons donc volontairement cliquer deux fois sur les alertes, une fois pour la modification, et une fois pour l’activation des macros).


Malgré tout, grâce à AppGuard, le programme malveillant (nommé « chrome.exe » pour tenter se faire passer pour légitime) ne peux s’exécuter.



Conclusion
En quelques exemples concrets, on peut donc voir quelques force d’AppGuard :
- Il fonctionne sans signature ni mise à jour de base de connaissance
- Il ne fait ni « Machine Learning », ni « IA » (et pas de « BlockChain » non plus 😉 mais applique une politique stricte de segmentation entre l’espace « Utilisateur » et « Système »
- Même si un programme est autorisé à s’éxécuter, il reste « isolé » pour l’empêcher d’accéder à la mémoire d’autres processus
Le tout, même en étant Administrateur !
Evidemment, la version « Entreprise » permet encore plus de souplesse, en permettant de créer de nouvelles « enclaves » et de gérer des exceptions et les journaux d’activités de manière centralisée !