Towards Formal Verification of Program Obfuscation

被引:1
|
作者
Lu, Weiyun [1 ]
Sistany, Bahman [2 ]
Felty, Amy [1 ,3 ]
Scott, Philip [1 ,3 ]
机构
[1] Univ Ottawa, Sch Elect Engn & Comp Sci, Ottawa, ON, Canada
[2] Cloakware Res Irdeto Canada, Ottawa, ON, Canada
[3] Univ Ottawa, Dept Math & Stat, Ottawa, ON, Canada
关键词
obfuscation; verification; security; correctness; Coq; proof;
D O I
10.1109/EuroSPW51379.2020.00091
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Code obfuscation involves transforming a program to a new version that performs the same computation but hides the functionality of the original code. An important property of such a transformation is that it preserves the behavior of the original program. In this paper, we lay the foundation for studying and reasoning about code obfuscating transformations, and show how the preservation of certain behaviours may be formally verified. To this end, we apply techniques of formal specification and verification using the Coq Proof Assistant. We use and extend an existing encoding of a simple imperative language in Coq along with an encoding of Hoare logic for reasoning about this language. We formulate what it means for a program's semantics to be preserved by an obfuscating transformation, and give formal machine-checked proofs that these behaviours or properties hold. We also define a lower-level block-structured language which is "wrapped around" our imperative language, allowing us to model certain flattening transformations and treat blocks of codes as objects in their own right.
引用
收藏
页码:635 / 644
页数:10
相关论文
共 50 条
  • [1] Formal Verification of a Program Obfuscation Based on Mixed Boolean-Arithmetic Expressions
    Blazy, Sandrine
    Hutin, Remi
    [J]. PROCEEDINGS OF THE 8TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS (CPP' 19), 2019, : 196 - 208
  • [2] Formal verification for C program
    Qian, Junyan
    Xu, Baowen
    [J]. INFORMATICA, 2007, 18 (02) : 289 - 304
  • [3] Assertion Recommendation for Formal Program Verification
    Wang, Cong
    He, Fei
    Song, Xiaoyu
    Jiang, Yu
    Gu, Ming
    Sun, Jiaguang
    [J]. 2017 IEEE 41ST ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE (COMPSAC), VOL 1, 2017, : 154 - 159
  • [4] Towards the Formal Verification of Optical Interconnects
    Afshar, Sanaz Khan
    Hasan, Osman
    Tahar, Sofiene
    [J]. 2014 IEEE 12TH INTERNATIONAL NEW CIRCUITS AND SYSTEMS CONFERENCE (NEWCAS), 2014, : 157 - 160
  • [5] Towards formal verification of analog designs
    Gupta, S
    Krogh, BH
    Rutenbar, RA
    [J]. ICCAD-2004: INTERNATIONAL CONFERENCE ON COMPUTER AIDED DESIGN, IEEE/ACM DIGEST OF TECHNICAL PAPERS, 2004, : 210 - 217
  • [6] Towards Formal Verification of Distributed Algorithms
    Bollig, Benedikt
    [J]. 2015 22ND INTERNATIONAL SYMPOSIUM ON TEMPORAL REPRESENTATION AND REASONING (TIME), 2015, : 3 - 3
  • [7] Towards formal verification on the system level
    Drechsler, R
    [J]. 15TH IEEE INTERNATIONAL WORKSHOP ON RAPID SYSTEM PROTOTYPING, PROCEEDINGS: SHORTENING THE PATH FROM SPECIFICATION TO PROTOTYPE, 2004, : 2 - 5
  • [8] Towards formal verification of TOOLBUS scripts
    Fokkink, Wan
    Klint, Paul
    Lisser, Bert
    Usenko, Yaroslav S.
    [J]. ALGEBRAIC METHODOLOGY AND SOFTWARE TECHNOLOGY, PROCEEDINGS, 2008, 5140 : 160 - 166
  • [9] Towards a Theory of Special-Purpose Program Obfuscation
    Asghar, Muhammad Rizwan
    Galbraith, Steven D.
    Lanzi, Andrea
    Russello, Giovanni
    Zobernig, Lukas
    [J]. 2020 IEEE 19TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS (TRUSTCOM 2020), 2020, : 394 - 401
  • [10] Towards parallel program verification
    He, Pei
    Kang, Lishan
    [J]. DCABES 2007 Proceedings, Vols I and II, 2007, : 14 - 18