Self-composition is a logical formulation of non-interference, a high-level security property that guarantees the absence of illicit information leakages through executing programs. In order to capture program executions, self-composition has been expressed in Hoare or modal logic, and has been proved (or refuted) by using theorem provers. These approaches require considerable user interaction, and verification expertise. This paper presents an automated technique to prove self-composition. We reformulate the idea of self-composition into comparing pairs of symbolic paths of the same program; the symbolic paths are given by Symbolic Execution. The result of our analysis is a logical formula expressing self-composition in first-order theories, which can be solved by off-the-shelf Satisfiability Modulo Theories solvers.
@InProceedings{phan:OASIcs.ICCSW.2013.95, author = {Phan, Quoc-Sang}, title = {{Self-composition by Symbolic Execution}}, booktitle = {2013 Imperial College Computing Student Workshop}, pages = {95--102}, series = {Open Access Series in Informatics (OASIcs)}, ISBN = {978-3-939897-63-7}, ISSN = {2190-6807}, year = {2013}, volume = {35}, editor = {Jones, Andrew V. and Ng, Nicholas}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.ICCSW.2013.95}, URN = {urn:nbn:de:0030-drops-42770}, doi = {10.4230/OASIcs.ICCSW.2013.95}, annote = {Keywords: Information Flow, Symbolic Execution, Satisfiability Modulo Theories} }
Feedback for Dagstuhl Publishing