Controlled Model Deformation

Reliable and secure system design require an increasing number of methods, algorithms, and tools for automatic manipulation, where some aspects of the semantics of the modified code is not necessarily preserved. In contrast to program transformations, we call these techniques program deformations. Relevant examples include program obfuscation, watermarking, repairing, diversifying and in ultimate analysis, automatic program synthesis. In this paper we propose a mathematical foundation and a practical methodology for the systematic design of model deformations. The idea is that the controlled deformation of a system is a change in the way a possibly abstract interpreter observes the resulting behavior. We prove that model deformation can be specified and controlled by making models complete with respect to some fixed abstractions. The resulting theory provides new practical methodologies and algorithms for

[1]  Cormac Flanagan,et al.  Thread-Modular Model Checking , 2003, SPIN.

[2]  Amir Pnueli,et al.  On the synthesis of a reactive module , 1989, POPL '89.

[3]  Roberto Giacobazzi,et al.  Making abstract interpretations complete , 2000, JACM.

[4]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[5]  Patrick Cousot,et al.  Systematic design of program transformation frameworks by abstract interpretation , 2002, POPL '02.

[6]  Christian S. Collberg,et al.  Software watermarking: models and dynamic embeddings , 1999, POPL '99.

[7]  Roberto Giacobazzi,et al.  Transforming Abstract Interpretations by Abstract Interpretation , 2008, SAS.

[8]  Eran Yahav,et al.  Abstraction-guided synthesis of synchronization , 2010, POPL.

[9]  Stephan Merz,et al.  Model Checking , 2000 .

[10]  Don S. Batory Program Refactoring, Program Synthesis, and Model-Driven Development , 2007, CC.

[11]  Andreas Podelski,et al.  Thread-Modular Counterexample-Guided Abstraction Refinement , 2010, SAS.

[12]  Francesco Ranzato,et al.  Strong Preservation as Completeness in Abstract Interpretation , 2004, ESOP.

[13]  Douglas C. Schmidt,et al.  Model-Driven Engineering , 2006 .

[14]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[15]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[16]  Helmut Veith,et al.  Counterexample-guided abstraction refinement for symbolic model checking , 2003, JACM.

[17]  Patrick Cousot,et al.  A constructive characterization of the lattices of all retractions, pre-closure, quasi-closure and closure operators on a complete lattice , 1979 .

[18]  Patrick Cousot,et al.  An abstract interpretation-based framework for software watermarking , 2004, POPL.

[19]  Andreas Podelski,et al.  Thread-Modular Verification Is Cartesian Abstract Interpretation , 2006, ICTAC.

[20]  Francesco Logozzo,et al.  Refining Abstract Interpretation-Based Static Analyses with Hints , 2009, APLAS.

[21]  Roberto Giacobazzi,et al.  Incompleteness, Counterexamples, and Refinements in Abstract Model-Checking , 2001, SAS.