A family of experiments to assess the effectiveness and efficiency of source code obfuscation techniques

被引:58
作者
Ceccato, Mariano [1 ]
Di Penta, Massimiliano [2 ]
Falcarin, Paolo [3 ]
Ricca, Filippo [4 ]
Torchiano, Marco [5 ]
Tonella, Paolo [1 ]
机构
[1] Fdn Bruno Kessler, Cit, Trento, Italy
[2] Univ Sannio, Dept Engn, Benevento, Italy
[3] Univ E London, Sch Architecture Comp & Engn, London E15 4LZ, England
[4] Univ Genoa, DIBRIS, Genoa, Italy
[5] Politecn Torino, Turin, Italy
关键词
Empirical studies; Software obfuscation; Program comprehension;
D O I
10.1007/s10664-013-9248-x
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Context: code obfuscation is intended to obstruct code understanding and, eventually, to delay malicious code changes and ultimately render it uneconomical. Although code understanding cannot be completely impeded, code obfuscation makes it more laborious and troublesome, so as to discourage or retard code tampering. Despite the extensive adoption of obfuscation, its assessment has been addressed indirectly either by using internal metrics or taking the point of view of code analysis, e.g., considering the associated computational complexity. To the best of our knowledge, there is no publicly available user study that measures the cost of understanding obfuscated code from the point of view of a human attacker. Aim: this paper experimentally assesses the impact of code obfuscation on the capability of human subjects to understand and change source code. In particular, it considers code protected with two well-known code obfuscation techniques, i.e., identifier renaming and opaque predicates. Method: We have conducted a family of five controlled experiments, involving undergraduate and graduate students from four Universities. During the experiments, subjects had to perform comprehension or attack tasks on decompiled clients of two Java network-based applications, either obfuscated using one of the two techniques, or not. To assess and compare the obfuscation techniques, we measured the correctness and the efficiency of the performed task. Results: -at least for the tasks we considered-simpler techniques (i.e., identifier renaming) prove to be more effective than more complex ones (i.e., opaque predicates) in impeding subjects to complete attack tasks.
引用
收藏
页码:1040 / 1074
页数:35
相关论文
共 34 条
[1]  
Anckaert B, 2007, QOP'07: PROCEEDINGS OF THE 2007 ACM WORKSHOP ON QUALITY OF PROTECTION, P15
[2]  
Baker R.D., 1995, Randomization Tests
[3]  
Ceccato M, 2009, EFFECTIVENESS SOURCE
[4]  
Ceccato M, 2007, SEVENTH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, P27
[5]   The Effectiveness of Source Code Obfuscation: an Experimental Assessment [J].
Ceccato, Mariano ;
Di Penta, Massimiliano ;
Nagra, Jasvir ;
Falcarin, Paolo ;
Ricca, Filippo ;
Torchiano, Marco ;
Tonella, Paolo .
ICPC: 2009 IEEE 17TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, 2009, :178-+
[6]  
Chang H, 2002, ACM WORKSH SEC PRIV
[7]  
Cohen J., 1988, Statistical power analysis for the behavioral sciences, VSecond
[8]  
Collberg C., 1998, Conference Record of POPL '98: 25th ACM SIGPLAN-SIGACT. Symposium on Principles of Programming Languages, P184, DOI 10.1145/268946.268962
[9]  
Collberg C, 2009, SUREPTITIOUS SOFTWAR
[10]  
Collberg C., 1997, A Taxonomy of Obfuscating Transformations