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 条
  • [41] Incremental Program Obfuscation
    Garg, Sanjam
    Pandey, Omkant
    ADVANCES IN CRYPTOLOGY - CRYPTO 2017, PART II, 2017, 10402 : 193 - 223
  • [42] Automatic Program Repair Using Formal Verification and Expression Templates
    Nguyen, Thanh-Toan
    Ta, Quang-Trung
    Chin, Wei-Ngan
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2019, 2019, 11388 : 70 - 91
  • [43] Floats and Ropes: A Case Study for Formal Numerical Program Verification
    Boldo, Sylvie
    AUTOMATA, LANGUAGES AND PROGRAMMING, PT II, PROCEEDINGS, 2009, 5556 : 91 - 102
  • [44] Towards Formal Verification of Orchestration Computations Using the K Framework
    AlTurki, Musab A.
    Alzuhaibi, Omar
    FM 2015: FORMAL METHODS, 2015, 9109 : 40 - 56
  • [45] Towards a Formal Approach for the Verification of SCA/BPEL Software Architectures
    Taoufik, Sakka Rouis
    Tahar, Bhiri Mohamed
    Layth, Sliman
    Mourad, Kmimech
    2017 8TH INTERNATIONAL CONFERENCE ON INFORMATION, INTELLIGENCE, SYSTEMS & APPLICATIONS (IISA), 2017, : 487 - 492
  • [46] Towards Formal Verification of Adaptive Cruise Controller using SpaceEx
    Mishra, Ambuj
    Roy, Subir K.
    2016 INTERNATIONAL CONFERENCE ON VLSI SYSTEMS, ARCHITECTURES, TECHNOLOGY AND APPLICATIONS (VLSI-SATA), 2016,
  • [47] Towards formal verification of UML diagrams based on graph transformation
    Zhao, Y
    Fan, YS
    Bai, XM
    Wang, Y
    Cai, H
    Ding, W
    PROCEEDINGS OF THE IEEE INTERNATIONAL CONFERENCE ON E-COMMERCE TECHNOLOGY FOR DYNAMIC E-BUSINESS, 2004, : 180 - 187
  • [48] Towards the formal verification of lower system layers in automotive systems
    Beyer, S
    Böhm, P
    Knapp, S
    Gerke, M
    Leinenbach, D
    Hillebrand, M
    Paul, WJ
    der Rieden, TI
    2005 IEEE International Conference on Computer Design: VLSI in Computers & Processors, Proceedings, 2005, : 317 - 324
  • [49] Formal Verification of a Descent Guidance Control Program of a Lunar Lander
    Zhao, Hengjun
    Yang, Mengfei
    Zhan, Naijun
    Gu, Bin
    Zou, Liang
    Chen, Yao
    FM 2014: FORMAL METHODS, 2014, 8442 : 733 - 748
  • [50] Towards Formal Verification of Business Process using a Graphical Specification
    El Hichami, Outman
    El Mohajir, Badr Eddine
    Al Achhab, Mohammed
    Berrada, Ismail
    Oucheikh, Rachid
    2014 THIRD IEEE INTERNATIONAL COLLOQUIUM IN INFORMATION SCIENCE AND TECHNOLOGY (CIST'14), 2014, : 12 - 17