Vous êtes sur le site public du Cert-IST
Les contrôles ActiveX (Workshop du CERT/CC août 2000)

Date :11 Juillet 2005

Publication: Article

Introduction

Le 22-23 août 2000 s'est tenu à Pittsburg (USA) un workshop organisé par le CERT/CC sur le thème de la sécurité des contrôles ActiveX.

Le CERT/CC (Computer Emergency Response Team / Coordination Center), centre d'alerte américain en matière de sécurité informatique (http://www.cert.org), a alors invité une vingtaine de spécialistes afin d'élaborer un document sur la sécurité des contrôles ActiveX et sur leurs prises en charge au niveau du Système d'Information (SI) de l'entreprise.

Le document réalisé par ce groupe de travail propose un état de l'art sur les contrôles ActiveX et ses dangers ainsi que des suggestions sur la manière de gérer ces programmes au niveau des différents acteurs d'un Système d'Information :

  • Managers,
  • Administrateurs système et personnel du service sécurité,
  • Développeurs d'application,
  • Utilisateurs finaux gérant leur postes.

Nous présentons ici une synthèse de ce document.

Les contrôles ActiveX et les risques associés :

Les contrôles ActiveX sont des facilités de plus en plus utilisées par les sites web. Mais qui sont-ils vraiment ?

Les contrôles ActiveX (contenus dans les fichiers de type .ocx) sont des objets issus du modèle COM (Component Object Model) de Microsoft.

Le modèle COM est la norme de Microsoft pour le développement de composants réutilisables et communicants. Sa grande particularité est qu'il n'est pas destiné à un langage de programmation précis, ni à une plate-forme précise. Ainsi, il trouve son utilité dans le fait qu'il peut être utilisé par plusieurs applications sans nécessité de développement supplémentaire.

Les contrôles ActiveX sont des objets du modèle COM destinés essentiellement aux applications Web à travers les plate-formes Windows. Ce sont les concurrents des fameuses applets Java.

Ces composants sont appelés à travers des pages web soit par des programmes contenus dans ces dernières (scripts JavaScript par exemple) ou soit directement à travers des directives contenues dans la page web (tags html spécifiques). Si le contrôle ActiveX sollicité n'est pas présent sur le système au moment de son appel, il peut être alors téléchargé à partir d'une adresse (URL) fournie dans cette page. Dans le cadre d'une configuration " par défaut " d'un PC, ces appels et le téléchargement se font généralement à l'insu de l'utilisateur (i.e. de façon transparente !).

En terme de sécurité, les contrôles ActiveX ne s'exécutent pas dans un environnement restreint (sûr), contrairement aux applets Java (notion de sandbox) mais directement sur le système, comme un fichier exécutable quelconque, avec les privilèges de l'utilisateur connecté. Ainsi, il est très important de connaître le degré de confiance que l'on accorde à un contrôle ActiveX car il peut être conçu pour exécuter n'importe quelle action sur le système (lecture/effacement de données, …).

Pour prendre en compte la sécurité, les contrôles ActiveX se dissocient en 2 familles :

  • les contrôles ActiveX signés,
  • les contrôles ActiveX non signés

La signature du contrôle ActiveX permet de vérifier l'intégrité de ce dernier pour s'assurer qu'il n'a pas subi de modification depuis sa conception. Cependant, un contrôle signé n'est pas une marque de confiance suffisante dans le sens où ce dernier reste quand même la création d'une personne plus ou moins bien intentionnée (voir également l'article suivant "Les faux certificats de Microsoft"). De même, si une faille est découverte sur un contrôle ActiveX de ce type, le fait d'être un contrôle signé n'empêchera ce dernier de représenter un risque pour le SI.

Présenté comme des programmes " quelconques ", les contrôles ActiveX représente en fait autant de danger que l'exécution d'une application inconnue sur un PC.

De plus, comme ils sont de plus en plus nombreux et de plus en plus utilisés, même par des applications tierces autres que celle destinées au navigateur web Microsoft Internet Explorer ou le client de messagerie Microsoft Outlook, il est difficile d'évaluer les risques de manière exhaustive liés aux contrôles ActiveX.

Il est important de noter enfin que les contrôles Active-X ne sont pas reconnus par tous les navigateurs Internet. Par exemple, les versions actuelles de Netscape Communicator ne supportent pas (dans leur version standard) cette fonctionalité.

Evaluation des risques liés aux contrôles ActiveX

Du fait de sa capacité à effectuer n'importe quelle action sur un système Microsoft, la technologie ActiveX présente d'importants risques en terme de sécurité qui peuvent être néanmoins maîtrisés s'il sont correctement pris en compte.

Ainsi avant d'accepter l'utilisation d'un contrôle ActiveX, il est nécessaire d'évaluer les risques introduits par

  • l'origine du contrôle ActiveX (source fiable ou non)
  • la fiabilité du contrôle ActiveX (possibilité de mauvaise conception introduisant une vulnérabilité en terme de sécurité)
  • la conséquence de l'installation du contrôle ActiveX sur un poste utilisé par plusieurs utilisateurs
  • la possibilité laissée au contrôle d'exécuter n'importe quelle commande sur le système (lecture et/ou effacement de données, prise de contrôle du poste, …)
  • le fait que les mécanismes de sécurité des navigateurs web ne protègent pas contre l'utilisation d'un contrôle ActiveX par une application tierce,
  • le rejet systématique des contrôles ActiveX (problème au niveau de la fourniture du service demandé)

Gestion des contrôles ActiveX au niveau des acteurs du SI

La gestion des composants ActiveX dans un Système d'Information peut être prise en compte à plusieurs niveaux. Le document du CERT/CC fournit une panoplie de recommandations plus ou moins techniques pour les niveaux suivants.

  • Au niveau du Manager :

    • Mise en place d'une politique de sécurité adéquate (cohérence de la politique de sécurité avec la réalité, disponibilité de ressources, action de veille technologique sur les nouvelles menaces, politique de gestion des incidents, …).

  • Au niveau des Administrateurs système et du personnel du service sécurité

    • Sécurisation des systèmes (PC, serveurs) au niveau de la configuration des navigateurs web, du cœur (Base de Registres) du système Microsoft, et utilisation d'outils spécifiques afin de gérer les contrôles ActiveX.

  • Au niveau des développeurs utilisant ce type de composant

    • Prise en compte des recommandations de programmation (recommandations Microsoft) afin d'éviter d'ouvrir des brèches en terme de sécurité sur les applications déveloopées.

  • Au niveau des utilisateurs finaux ayant la responsabilité de leur poste

    • Sécurisation de postes.

Les annexes du document proposent divers contacts pour reporter un incident (Certs) ou un problème de conception (Microsoft) ainsi qu'une liste des différentes vulnérabilités liées aux contrôles ActiveX.

Conclusion

Le document élaboré lors du workshop du CERT/CC présente des bases intéressantes concernant la problématique des codes mobiles et en particulier des contrôles ActiveX. Il offre des éléments de réflexions et des recommandations techniques significatifs afin d'incorporer cette dernière dans la politique de sécurité de l'entreprise.

Il est ainsi important de retenir que les contrôles ActiveX sont les concurrents directs des applets Java dans le sens où il sont utilisés dans les mêmes buts que ces dernières à travers les applications web. Ils se révèlent cependant plus dangereux que les applets car ils peuvent permettre l'exécution n'importe quelle commande sur le système à la différence des applets Java qui s'exécutent dans un environnement restreint (sûr).

Pour plus d'information

Document du CERT/CC : http://www.cert.org/reports/activeX_report.pdf