Participants : Yves Deswarte, Mohamed Kaâniche, Rodolphe Ortalo Mots clés?
Les travaux concernant l'évaluation quantitative de la sécurité des systèmes informatiques ont été poursuivis. Ils visent à élaborer et mettre en oeuvre une méthode d'évaluation de l'effort nécessaire à un attaquant pour mettre en défaut la politique de sécurité d'un système. Le prototype existant a été étendu pour obtenir des résultats expérimentaux relatifs à un système de grande taille. Ces travaux sont également poursuivis en direction de la recherche d'un modèle formel pour la spécification d'une politique de sécurité qui vient compléter la méthode d'évaluation quantitative.
Globalement, notre approche est très différente des méthodes classiques d'évaluation de la sécurité qui reposent sur la vérification de la présence ou de l'absence de certaines caractéristiques fonctionnelles (authentification, droits d'accès, politique de sécurité, etc.) et de l'utilisation ou non de techniques de développement particulières (spécifications formelles, preuves, tests, etc.). Ces méthodes ont fourni la base de ``critères d'évaluation de la sécurité'' aux Etats-Unis (TCSEC : Trusted Computer System Evaluation Criteria), au Canada (The Canadian Trusted Computer Product Evaluation Criteria) et en Europe (ITSEC : Information Technology Security Evaluation Criteria). Mais ces méthodes ``classiques'' supposent une démarche incompatible avec les caractéristiques que l'on retrouve dans bon nombre de systèmes actuels : modification fréquente de la politique de sécurité, évolution rapide des configurations et des applications, ouverture sur des systèmes ou des utilisateurs inconnus, etc. En fait, dans de tels systèmes, les utilisateurs ne sont pas prêts, pour améliorer la sécurité, à renoncer aux facilités d'utilisation et de partage d'information.
Du fait de la plus grande liberté d'action laissée aux utilisateurs, la vision statique de la sécurité qu'offre l'analyse qualitative n'est que de peu d'utilité pour appréhender le niveau de sécurité opérationnelle. En revanche, l'évaluation quantitative de la sécurité doit permettre de surveiller l'évolution de la sécurité en fonction de l'évolution des configurations et des applications, et de mesurer les améliorations de sécurité qui pourraient être obtenues au prix de légères modifications de configuration ou d'utilisation. Elle offre également à l'administrateur des données pragmatiques pour sensibiliser les utilisateurs au problème de la sécurité et, si nécessaire, pour les convaincre de modifier leur configuration de travail.
L'approche adoptée s'apparente à celle de l'évaluation de la fiabilité d'un système complexe. Elle s'appuie donc sur une vision probabiliste de la sécurité, correspondant à la probabilité de satisfaire la politique de sécurité en fonction du temps. Dans cette analogie, l'effort moyen nécessaire à un attaquant pour mettre en défaut les objectifs de sécurité correspond au temps moyen avant la première défaillance (MTFF : Mean Time to the First Failure).
Il est important de noter que l'objectif de l'étude est de fournir une estimation de la capacité d'un système à résister à une attaque et non pas une estimation de la probabilité qu'il soit attaqué. Ceci nécessiterait en effet une modélisation de la population d'attaquants et de leur comportement, ce qui semble à l'heure actuelle assez difficile. Au contraire, notre étude ne s'intéresse qu'au système et à ses utilisateurs, toutes choses pour lesquelles nous disposons de données tangibles permettant de confronter hypothèses de travail et expériences.
Notre démarche repose sur une modélisation des vulnérabilités du système informatique sous forme d'un graphe des privilèges. Le graphe des privilèges est un modèle formel dans lequel les noeuds représentent des ensembles de droits (ou privilèges), et les arcs des transferts de privilèges. Ces transferts peuvent être licites (un utilisateur ayant les privilèges B fait confiance à celui ayant les privilèges A), ou implicites (B est un sous-ensemble de A), ou encore illicites (le transfert est une attaque élémentaire). Un poids peut être affecté à chaque transfert, selon la difficulté et/ou le temps nécessaire pour un attaquant pour exploiter la méthode correspondant au transfert élémentaire de privilèges. Ce graphe peut être analysé pour identifier les possibilités de mettre en défaut les objectifs de sécurité du système. En effet, à partir de la politique de sécurité, il est possible d'identifier les attaquants potentiels, internes ou externes, et les cibles potentielles (ensembles de privilèges sensibles). La politique de sécurité peut être mise en défaut s'il existe au moins un chemin depuis l'ensemble des privilèges d'un attaquant jusqu'à une cible.
A partir de ce graphe pondéré, il est possible d'évaluer la sécurité comme étant la difficulté pour les attaquants potentiels d'atteindre les cibles potentielles. La logique du processus d'attaque est modélisée dans notre méthode par une transformation du graphe des privilèges en réseau de Petri stochastique généralisé. L'évaluation quantitative s'appuie alors sur l'exploitation numérique du MTFF calculable à partir de ce réseau.
Le graphe des privilèges peut être généré automatiquement, par exemple à l'aide d'un outil permettant d'analyser automatiquement la configuration d'un système Unix pour en déterminer les vulnérabilités. De même, une description formelle des objectifs de sécurité permet d'identifier les cibles et les attaquants potentiels. Le prototype d'outil logiciel enchainant les différentes phases de l'évaluation (développé en 1994) a été profondément modifié pour améliorer les performances de calcul en tenant compte des caractéristiques très particulières des réseaux de Petri utilisés. La collecte des données et l'évaluation quantitative de la sécurité ont pu ainsi être menées pendant une longue période sur un système informatique d'une centaine de machines et de plusieurs centaines d'utilisateurs.
Les travaux ont été poursuivis dans la perspective de définir un formalisme de spécification d'une politique de sécurité plus précis et plus expressif que celui utilisé dans le prototype actuel. L'évaluation quantitative permet en effet de tenir compte compte globalement des faiblesses d'un système, mais ces résultats sont relatifs à des objectifs de protection précis. Ceux-ci déterminent en effet les ensembles d'attaquants et de cibles pour lesquels l'évaluation doit être effectuée. L'utilisation d'un langage formel pour spécifier ces objectifs de sécurité permet, d'une part d'offrir des possibilités de vérification, d'autre part d'intégrer la politique de sécurité dans la mise en oeuvre automatique du prototype d'évaluation. Par ailleurs, le langage de description des objectifs de sécurité comme des règles permettant de modifier l'état de protection du système (schéma d'autorisation) ne doit pas enfermer cette spécification dans un cadre restrictif et doit pouvoir tolérer la présence de vulnérabilités (éventuellement en contradiction avec la politique de sécurité) afin de préserver tous les atouts de notre approche.
Nous avons donc étudié les possibilités d'utiliser dans le domaine de la spécification de la sécurité une logique non-classique, la logique modale, et plus particulièrement une de ses branches (historiquement consacrée à l'étude de la formalisation du droit), la logique déontique. L'intérét principal de ce formalisme est de faire coexister dans un même langage logique les propositions usuelles de la logique des prédicats et la notion plus riche de nécessité (et son dual, la possibilité) susceptible de capter une sémantique d'obligation (ou de droit) sans entrer en conflit avec la description d'autres propriétés du système. Ce formalisme semble particulièrement adapté pour l'écriture formelle d'une politique de sécurité, son expressivité permet en effet de combiner des opérateurs exprimant des contraintes extrèmement fortes sur l'univers décrit (représentant les objectifs de sécurité) et la description plus traditionnelle du fonctionnement et des propriétés d'un état de protection réel (et éventuellement imparfait du point de vue des objectifs de sécurité). Outre la possibilité de confronter cet état de protection aux objectifs de sécurité et d'en tirer les conséquences, on a également la possibilité de raisonner directement sur la structure de la politique de sécurité qui, elle-même, peut révéler des incohérences subtiles ou des propriétés non-désirées, le tout dans un même formalisme logique.
L'utilisation de ce langage permet donc de disposer d'un outil puissant pour spécifier et vérifier la politique de sécurité d'un système abstrait. Il nous permet également de définir précisément les objectifs de protection pour lesquels l'évaluation quantitative doit être conduite. Par ailleurs, on peut aussi envisager d'utiliser cette méthode pour élaborer une politique de sécurité dans d'autres contextes que celui d'un système informatique.