Program Transformation for Non-interference Verification on Programs with Pointers
Résumé
Novel approaches for dynamic information flow monitoring are promising since they enable permissive (accepting a large subset of executions) yet sound (rejecting all insecure executions) enforcement of non-interference. In this paper, we present a dynamic information flow monitor for a language supporting pointers. Our flow-sensitive monitor relies on prior static analysis in order to soundly enforce non-interference. We also propose a program transformation that preserves the behavior of initial programs and soundly inlines our security monitor. This program transformation enables both dynamic and static verification of non-interference.
De nouvelles techniques pour le suivi dynamique de flux d'information sont prometteuses en cela qu'elles acceptent plus d'exécution que des techniques purement statiques tout en restant sûres d'utilisation (elles rejettent toute exécution qui ne vérifierait pas la propriété de non-interférence). Dans ce rapport nous présentons un moniteur dynamique de flux d'information pour un langage supportant des pointeurs. Notre moniteur est sensible aux flots de données et se base sur une analyse statique préalable afin d'assurer de manière correcte la propriété de non-interférence. Nous proposons par ailleurs une transformation de programme qui préserve la sémantique du programme initial, tout en tissant le moniteur de suivi de flux au sein du programme transformé. Ce programme transformé peut être soit exécuté, le moniteur garantissant alors le respect de la propriété de non-interférence durant l'exécution, ou bien encore être analysé statiquement à son tour pour s'assurer que toutes ses exécutions préservent cette même propriété.
Origine | Fichiers produits par l'(les) auteur(s) |
---|