Renforcement de la sécurité de l’ordinateur : concept de l’environnement de confiance

Introduction

Cela fait quelques années maintenant que le nombre de programmes malveillants connaît une croissance exponentielle. Même les technologies de lutte contre les virus les plus efficaces proposées par différents éditeurs ne parviennent pas toujours à faire face à ce volume de menaces. Il y a 10 à 15 ans de cela, un coefficient de détection de 99,9 % signifiait que le logiciel antivirus laissait passer un ou deux programmes malveillants sur les 10 000 créés l’année antérieure. Aujourd’hui, cela signifie que l’antivirus laisse passer plusieurs milliers sur les millions de nouveaux programmes malveillants. L’exploitation de plus en plus fréquente de vulnérabilités de type0 jours dans une application n’est pas une nouveauté.

Dans ces conditions, les grandes sociétés sont obligées de modifier leur attitude vis-à-vis des systèmes de protection qu’ils adoptent. Dans le cadre de leurs fonctions, les employés manipulent les données de la sociétés qui se trouvent dans le réseau de l’entreprise et par conséquent, un individu malintentionné qui parviendrait à accéder à un ordinateur du réseau pourrait obtenir des données qui constituent un secret commercial. Ceci est particulièrement dangereux pour les grandes entreprises car cela les expose à des pertes de plusieurs millions. De plus en plus souvent, la protection des données sur le réseau d’une entreprise est confiée à des solutions qui reposent sur un principe diamétralement opposé à celui des logiciels antivirus. Le principe est simple : seules les applications qui figurent dans une liste définie peuvent être exécutées. Le lancement de toutes les autres est bloqué. Pour de nombreuses sociétés, la protection du réseau devient une priorité parmi les plus importantes. Cette démarche réduit la flexibilité du système : les employés peuvent uniquement utiliser les applications indispensables aux opérations de la société. Cette conception n’est pas vraiment nouvelle et porte le nom de mode Default Deny (blocage par défaut) ou mode Lock Down (verrouillage).

Souvent, la solution Default Deny est adoptée sans protection antivirus. Toutefois, les experts de Kaspersky Lab estiment que la méthode la plus efficace consiste à utiliser à la fois les principes du mode Default Deny et les modules de protection antivirus. Plusieurs raisons valides justifient ce commentaire : il existe des codes d’exploitation qui réalisent des actions malveillantes sans créer de fichier sur l’ordinateur. Des virus de macro peuvent se propager dans des documents Office (il se peut que ces fichiers ne soient pas soumis au contrôle Default Deny car ils sont modifiés en permanence). Les cybercriminels peuvent utiliser une application légitime et la configurer pour qu’elle remplisse des fonctions malveillantes. Par exemple, des paramètres spéciaux dans le fichier de configuration transforment des applications pour enregistrer les frappes dans Trojan-Spy. Dans la situation actuelle, une protection complexe est bien plus efficace que l’utilisation d’une seule méthode.

L’utilisation du mode Default Deny est efficace dans les grandes sociétés dotées d’une infrastructure fermée. Toutefois, les petites entreprises et les particuliers ont également besoin d’une protection fiable. Les informations d’identification des utilisateurs de systèmes de paiement électronique et de réseaux sociaux, les ressources matérielles de l’ordinateur et le trafic Internet possèdent une valeur certaine et constituent une cible de choix pour les individus malintentionnés.

De leurs côtés, les particuliers souhaitent installer régulièrement de nouvelles applications ou mettre à jour les applications existantes, télécharger des fichiers depuis Internet ou des réseaux P2P ou consulter des sites. Ceci étant dit, les solutions de type Default Deny proposées aux entreprises possèdent rarement la flexibilité suffisante pour répondre aux besoins des particuliers. C’est la raison pour laquelle de nombreuses entreprises n’ont pas adopté la méthode Default Deny : l’exécution de l’ensemble de leurs processus métier requiert une flexibilité supérieure à celle offerte par les solutions Default Deny proposées.

Le présent article est une description du concept d’environnement de confiance qui combine les avantages de la protection via la méthode Default Deny et la flexibilité offerte par les solutions antivirus.

Mode de fonctionnement de Default Deny

Afin de comprendre les causes de la rigidité des systèmes de protection qui reposent sur le concept de Default Deny, nous allons tenter d’expliquer leur fonctionnement (cet article reprend une description détaillée de la technologie Default Deny).

Lors du déploiement d’une solution Default Deny standard, on peut observer la séquence d’actions suivantes :

  • Etablissement de l’inventaire des fichiers capables de provoquer l’exécution d’un code : applications, bibliothèques dynamiques et scripts.
  • Octroi de la confiance ou non aux fichiers détectés.
  • Activation du mode Default Deny.

Une fois que le mode Default Deny a été activé, les applications, les scripts ou les bibliothèques dynamiques sont chargés selon l’algorithme suivant :

  • Le système d’exploitation initialise le lancement de l’application, du script ou de la bibliothèque.
  • Le système de sécurité vérifie si l’application, la bibliothèque ou le script est de confiance. Il utilise pour ce faire la liste des objets de confiance.
  • Si l’objet est de confiance, le lancement est autorisé. Dans le cas contraire, il est bloqué.

Interdiction de l’exécution d’un code qui ne figure pas dans la liste de confiance : absence de flexibilité

L’avantage indéniable de la méthode Default Deny est la création d’un système isolé dans lequel les applications qui ne sont pas de confiance ne peuvent être exécutées. Dans le mode Default Deny classique, la flexibilité est sacrifiée au nom de la protection. Le désavantage le plus marquant est l’impossibilité d’installer une nouvelle application ou la mise à jour d’une application déjà utilisée. C’est la raison pour laquelle les solutions Default Deny d’aujourd’hui prévoient des catégories spéciales d’application : « programmes de mise à jour de confiance » et « programmes d’installation de confiance » Ces programmes sont autorisés à créer d’autres applications dans le système et celles-ci seront également de confiance.

Cette démarche fonctionne parfaitement dans les organisations où le nombre d’applications qui peuvent être utilisées sur les ordinateurs est strictement défini par l’administrateur qui crée un système fermé distinct dans le réseau de l’entreprise. Seules les applications définies au préalable peuvent être mises à jour ou installées sans restriction.

Toutefois, la majorité des systèmes d’information sont ouverts et interagissent. Chaque ordinateur exécute une multitude de tâches et ce nombre de tâches peut augmenter. De plus, chaque ordinateur a accès à Internet.
Pour les particuliers et les organisations qui n’imposent pas un contrôle strict sur les applications installées, la création de catégories de confiance est loin d’offrir le niveau de flexibilité requis pour le système.

De l’interdiction de l’exécution d’un code douteux à la prise en charge de l’environnement de confiance

Comment conférer une flexibilité suffisante au système tout en garantissant un niveau de protection élevé ? Une solution possible consiste à passer de l’interdiction de l’exécution d’un code douteux à la prise en charge de l’environnement de confiance.

Qu’entend-on par environnement de confiance ?

L’inventaire des applications permet de dresser la liste des objets de confiance (applications, bibliothèques dynamiques et scripts) dont l’exécution sur le système est autorisée. L’exécution du code d’autres objets sera bloquée.

Quelle est la source des informations utilisées pendant l’inventaire pour déterminer si un fichier en particulier est de confiance ?

Il est évident qu’il faut pouvoir confirmer que ce fichier est de confiance. Cette confirmation est fournie par une signature numérique qui atteste que le fichier analysé provient bel et bien d’un éditeur de confiance et qu’il n’a pas été modifié par un tiers.

Ceci étant dit, il existe un grand nombres d’applications, développées par d’importants éditeurs, qui ne possèdent pas de signature électronique. Et pour ce qui est des éditeurs plus modestes, ils « signent » rarement leurs produits. Et comme si cela ne suffisait pas, il y a déjà eu des cas de vols de certificats numériques utilisés ensuite par des individus malintentionnés.

Comment obtenir des informations solides sur la fiabilité d’un fichier non signé ou du certificat en tant que tel ? La solution à ce problème réside dans l’utilisation d’une base de connaissances qui contient les données relatives à toutes les applications légitimes et qui est mise à la disposition du développeur du système de protection.

Bien souvent, cette base est tellement volumineuse et ses mises à jour sont tellement rapides qu’il est impossible de proposer les données actuelles sous forme de mise à jour comme c’est le cas pour les bases antivirus. C’est ici que les technologies du nuage et les listes blanches dynamiques viennent à la rescousse. Quand le système de protection souhaite obtenir des informations sur un objet, il consulte le nuage. Le nuage indique si le fichier sollicité est de confiance ou non.

Une fois que l’inventaire est terminé et que la sélection des fichiers de confiance a été définie, tout le code dont l’exécution est autorisée dans le système est considéré comme de confiance et, par conséquent, tout le système es considéré comme de confiance.

Si le système est de confiance, on peut affirmer que les applications de confiance, en l’absence de contact avec un environnement externe douteux, créent des objets de confiance dans le système et que cela ne porte pas préjudice à l’état de confiance de l’ensemble du système. C’est cette propriété qui permet de considérer le système comme un environnement de confiance.

Garantie de l’installation et de mise à jour des applications

Pour décider de l’organisation de l’installation de nouvelles applications et de la mise à jour d’applications existantes, il faut d’abord voir comment ces nouvelles applications apparaissent dans le système. Dans la majorité des cas, les nouvelles applications sont téléchargées depuis Internet ou sont transmises via un support amovible. Par conséquent, il est impossible de garantir qu’un fichier, créé par une application de confiance qui utilise un environnement externe, soit de confiance. Par exemple, le navigateur est une application de confiance, mais il peut télécharger des applications douteuses via Internet. Ces applications ne pourront être considérées comme des applications de confiance uniquement après une analyse complémentaire. L’algorithme de l’analyse qui permet d’établir qu’une application est de confiance sera décrit ci-dessous.

Si l’application est déjà installée dans le système et est considérée comme une application de confiance, la nouvelle version de l’application, téléchargée depuis une source de confiance, sera également considérée comme une application de confiance sur la base du fait qu’elle a été obtenue dans un environnement de confiance. Ainsi, les applications déjà installées peuvent être directement mises à jour sans porter préjudice au caractère de confiance du système. Nous n’aurons aucun problème à mettre à jour une application déjà installée.

Qu’en est-il de l’installation de nouvelles applications ?

Les trois méthodes les plus populaires pour installer une application sont les suivantes :

  • Installation à l’aide d’un programme d’installation Internet.
  • Installation à l’aide de paquet d’installation entier.
  • Installation à l’aide de paquet d’installation fragmenté.

Le programme d’installation Internet suit la même logique que le programme de mise à jour de confiance : il suffit au système de protection de savoir que le programme d’installation est un programme de confiance et la mise à jour sera téléchargée depuis la ressource Internet de confiance. Dans ce cas, tous les fichiers obtenus pendant l’installation de l’application seront également considérés comme des fichiers de confiance sur la base de la propriété de l’environnement de confiance.

Lors de l’utilisation d’un paquet d’installation entier, il suffit de confirmer que le paquet d’installation est de confiance. L’installation du paquet d’installation s’opère à l’aide de programmes d’installation spéciaux qui font partie du système d’exploitation, notamment l’application msiexec.exe. Vu qu’elle fait partie du système d’exploitation, elle est considérée comme une application de confiance. Si le paquet d’installation qui va être utilisé par le programme d’installation est de confiance, les fichiers extraits de celui-ci ne violent pas la confiance de l’environnement et par conséquent, ils peuvent être considérés comme de confiance également.

Si le programme d’installation utilise plusieurs fichiers pour l’installation, par exemple en cas d’installation via des fichiers CAB, ce scénario respecte également les propriétés de l’environnement de confiance : si tous les fichiers utilisés pour l’installation sont de confiance, alors les fichiers obtenus sont de confiance également.

Utilisation de sources de confiance issues d’environnements externes

Nous avons résolu le problème des programmes d’installation locaux. Mais bien souvent, une application est téléchargée depuis un réseau local ou depuis Internet. Le système de sécurité ne sait pas si ces objets sont de confiance ou nom. De plus, les programmes d’installation peuvent consulter des ressources Internet pour obtenir des informations complémentaires pour l’installation et l’accès à Internet viole le concept de base de l’environnement de confiance car on ne sait pas si le nœud est de confiance ou non.

Ce problème peut être résolu de la manière suivante. L’éditeur de la solution définit la liste des nœuds du réseau (locaux ou autres) qui sont de confiance. Quand l’application, qui appartient à l’environnement de confiance, se connecte à ces nœuds, elle ne perd pas son statut d’application de confiance et peut créer des objets de confiance dans le système.

Quelle est la meilleure manière de composer la liste des nœuds de confiance et de confirmer que les nœuds ne sont pas compromis ? Chaque éditeur de solution Default Deny résout ce problème en fonction de son expertise et sur la base de la surveillance constante des ressources du réseau qui ont été considérées comme des ressources de confiance.

Préservation de l’intégrité de l’environnement de confiance

Une fois que l’environnement de confiance a été défini et que le mode Default Deny a été activé, la tâche la plus importante consiste à préserver l’intégrité de l’environnement de confiance. Il faut pouvoir garantir que les applications existantes ne seront pas modifiées et que de nouvelles ne seront pas installées pour déjouer le système de protection.

Admettons que ce système de protection est utilisé par une société X ou un nombre élevé d’utilisateurs. Les individus malintentionnés savent que ces utilisateurs ont adopté de nouvelles méthodes de protection et que les méthodes traditionnelles d’exécution de code malveillant ne vont pas fonctionner.

Que va donc faire l’individu malintentionné qui souhaite obtenir les informations confidentielles de l’utilisateur ou utiliser les ressources de l’ordinateur ? Il va vraisemblablement chercher d’autres modes d’exécution du code malveillant et tenter de contourner le système de protection. Le point le plus critique est l’exploitation d’une vulnérabilité dans une application de confiance.

Si l’individu malintentionné parvient à exploiter une vulnérabilité dans l’application, il pourra utiliser les propriétés de l’environnement de confiance contre le système de protection en lui-même : vu que le code malveillant invoqué par le code d’exploitation est exécuté dans un processus de confiance, toutes les actions réalisées par ce code seront considérées comme des actions de confiance. Par exemple, après avoir visité un site malveillant doté d’un code d’exploitation, du code malveillant est exécuté dans le navigateur de l’utilisateur. Le code malveillant fonctionne dans un processus de confiance et par conséquent, toute action réalisée par le navigateur à ce moment sera considérée comme une action autorisée. Si le code d’exploitation tente d’exécuter un fichier malveillant téléchargé, ce lancement est bloqué. Par conséquent, le code malveillant sera limité par l’activité dans le processus infecté. Pour élargir le cercle des possibilités, l’individu malintentionné va tenter de tromper le système de protection, par exemple en modifiant le secteur d’amorçage du disque ou en installant un pilote qui sera lancé avant le lancement du système de protection. La liste de ces actions potentielles est longue et elles entraîneront toutes, d’une manière ou d’une autre, la perte de données de l’utilisateur ou l’utilisation détournée de l’ordinateur.

Comment éliminer ce problème ? Une analyse des applications de confiance permet de voir que la sélection de fonction intégrée à la logique métier de l’application est assez limitée et elle ne contient aucune action qui présente un danger potentiel. Par exemple, la logique métier d’un navigateur est d’afficher des pages Internet et de télécharger des fichiers. Des actions telles que la modification de fichiers système ou de secteurs du disque sont totalement étrangères au navigateur. La logique métier d’un éditeur de texte reprend l’ouverture et l’enregistrement sur le disque de documents texte et non pas l’enregistrement sur le disque de nouvelles applications ni l’exécution de celles-ci.

Ces observations ont débouché sur la formation de l’idée de la préservation de l’intégrité de l’environnement de confiance qui repose sur le contrôle des actions des applications potentiellement vulnérables : navigateurs, clients de messagerie instantanée, applications de bureautique, clients P2P, gestionnaires de fichiers, etc. Pour chaque application potentiellement vulnérable dans le système, il faut dresser la liste des actions autorisées et définies dans la logique de l’application par ses développeurs. Les autres actions qui n’ont pas été prévues par les développeurs seront bloquées par le système de protection.
Par exemple, un client de messagerie instantanée peut envoyer et recevoir des données via le réseau, créer des fichiers sur le disque et analyser leur fiabilité ou ouvrir les fichiers existants. Les actions telles que l’insertion de code dans d’autres processus, la modification des fichiers système ou des branches du registre seront interdites pour ces applications.

Cette démarche permet de limiter les possibilités du code malveillant à l’aide de la logique métier de l’application vulnérable qui ne permet pas l’exécution d’actions malveillantes dans le système.

Obtention d’informations sur les nouvelles applications

Que faire quand un fichier légitime, inconnu du système, est reçu depuis une source inconnue, par exemple une copie depuis un support amovible ou obtenu via Skype ?

Après avoir obtenu les informations sur la tentative d’ouverture d’une nouvelle application, le système de protection contacte le nuage qui lui indique si ce fichier est de confiance ou non. Si l’application est de confiance, le lancement est autorisé. Par contre, si l’application est inconnue dans le nuage ou si elle est douteuse, le lancement est bloqué. Ceci confère une souplesse complémentaire au système sans nuire à l’idée de base de l’environnement de confiance et sans affaiblir la protection du système.

Ces mêmes actions sont réalisées lors du lancement d’une application signée par une signature numérique inconnue : le système de protection contacte le nuage et obtient les informations qui vont confirmer si la signature numérique est de confiance ou non.

Conclusion

Dans la première partie de l’article, nous avons analysé une démarche en matière de protection qui combine le niveau de protection offert par les solutions de type Default Deny et la souplesse nécessaire à l’utilisation quotidienne de l’ordinateur. La création et la préservation d’un environnement de confiance sont à la base de cette démarche.

Ce concept est adapté aussi bien aux particuliers qu’aux organisations de n’importe quelle taille. C’est le système de protection lui-même qui crée et préserve l’environnement de confiance. Ces actions reposent sur les éléments suivants :

  • Résultats de l’inventaire des fichiers dans le système ;
  • Principe de l’héritage de la confiance (un fichier créé par une application de confiance sera de confiance également) ;
  • Réputation des fichiers, obtenue du nuage ;
  • Liste de signatures numériques de confiance ;
  • Liste de sites de confiance.

Le concept d’environnement de confiance ne supprime pas l’utilisation des technologies de protection antivirus. Associées à l’environnement de confiance, elles permettent de mettre en place une protection efficace.

Aucune théorie ou concept n’a de sens tant qu’il n’a pas été appliqué dans la pratique. Nous avons évoqué l’application du concept d’environnement de confiance de Kaspersky Lab, utilisé pour la première fois dans le logiciel Kaspersky Internet Security 2014, ici.

Posts similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *