The Impact of Control Flow Obfuscation Technique on Software Protection Against Human Attacks

Author(s):  
Mohammed H. BinShamlan ◽  
Mohammed A. Bamatraf ◽  
Adnan A. Zain
Author(s):  
Subhadeep Banik ◽  
Andrey Bogdanov ◽  
Takanori Isobe ◽  
Martin Jepsen

Whitebox cryptography aims to ensure the security of cryptographic algorithms in the whitebox model where the adversary has full access to the execution environment. To attain security in this setting is a challenging problem: Indeed, all published whitebox implementations of standard symmetric-key algorithms such as AES to date have been practically broken. However, as far as we know, no whitebox implementation in real-world products has suffered from a key recovery attack. This is due to the fact that commercial products deploy additional software protection mechanisms on top of the whitebox implementation. This makes practical attacks much less feasible in real-world applications. There are numerous software protection mechanisms which protect against standard whitebox attacks. One such technique is control flow obfuscation which randomizes the order of table lookups for each execution of the whitebox encryption module. Another technique is randomizing the locations of the various Look up tables (LUTs) in the memory address space. In this paper we investigate the effectiveness of these countermeasures against two attack paradigms. The first known as Differential Computational Analysis (DCA) attack was developed by Bos, Hubain, Michiels and Teuwen in CHES 2016. The attack passively collects software execution traces for several plaintext encryptions and uses the collected data to perform an analysis similar to the well known differential power attacks (DPA) to recover the secret key. Since the software execution traces contain time demarcated physical addresses of memory locations being read/written into, they essentially leak the values of the inputs to the various LUTs accessed during the whitebox encryption operation, which as it turns out leaks sufficient information to perform the power attack. We found that if in addition to control flow obfuscation, one were to randomize the locations of the LUTs in the memory, then it is very difficult to perform the DCA on the resultant system using such table inputs and extract the secret key in reasonable time. As an alternative, we investigate the version of the DCA attack which uses the outputs of the tables instead of the inputs to mount the power analysis attack. This modified DCA is able to extract the secret key from the flow obfuscated and location randomized versions of several whitebox binaries available in crypto literature. We develop another attack called the Zero Difference Enumeration (ZDE) attack. The attack records software traces for several pairs of strategically selected plaintexts and performs a simple statistical test on the effective difference of the traces to extract the secret key. We show that ZDE is able to recover the keys of whitebox systems. Finally we propose a new countermeasure for protecting whitebox binaries based on insertion of random delays which aims to make both the ZDE and DCA attackspractically difficult by adding random noise in the information leaked to the attacker.


2021 ◽  
Author(s):  
Mojtaba Moradi ◽  
Michael R Konopczynski

Abstract Matrix acidizing is a common but complex stimulation treatment that could significantly improve production/injection rate, particularly in carbonate reservoirs. However, the desired improvement in all zones of the well by such operation may not be achieved due to existing and/or developing reservoir heterogeneity. This paper describes how a new flow control device (FCD) previously used to control water injection in long horizontal wells can also be used to improve the conformance of acid stimulation in carbonate reservoirs. Acid stimulation of a carbonate reservoir is a positive feedback process. Acid preferentially takes the least resistant path, an area with higher permeability or low skin. Once acid reacts with the formation, the injectivity in that zone increases, resulting in further preferential injection in the stimulated zone. Over-treating a high permeability zone results in poor distribution of acid to low permeability zones. Mechanical, chemical or foam diversions have been used to improve stimulation conformance along the wellbore, however, they may fail in carbonate reservoirs with natural fractures where fracture injectivity dominates the stimulation process. A new FCD has been developed to autonomously control flow and provide mechanical diversion during matrix stimulation. Once a predefined upper limit flowrate is reached at a zone, the valve autonomously closes. This eliminates the impact of thief zone on acid injection conformance and maintains a prescribed acid distribution. Like other FCDs, this device is installed in several compartments in the wells. The device has two operating conditions, one, as a passive outflow control valve, and two, as a barrier when the flow rate through the valve exceeds a designed limit, analogous to an electrical circuit breaker. Once a zone has been sufficiently stimulated by the acid and the injection rate in that zone exceeds the device trip point, the device in that zone closes and restricts further stimulation. Acid can then flow to and stimulate other zones This process can be repeated later in well life to re-stimulate zones. This performance enables the operators to minimise the impacts of high permeability zones on the acid conformance and to autonomously react to a dynamic change in reservoirs properties, specifically the growth of wormholes. The device can be installed as part of lower completions in both injection and production wells. It can be retrofitted in existing completions or be used in a retrievable completion. This technology allows repeat stimulation of carbonate reservoirs, providing mechanical diversion without the need for coiled tubing or other complex intervention. This paper will briefly present an overview of the device performance, flow loop testing and some results from numerical modelling. The paper also discusses the completion design workflow in carbonates reservoirs.


2001 ◽  
Vol 8 (54) ◽  
Author(s):  
Daniel Damian ◽  
Olivier Danvy

We show that a non-duplicating transformation into continuation-passing style (CPS) has no effect on control-flow analysis, a positive effect on binding-time analysis for traditional partial evaluation, and no effect on binding-time analysis for continuation-based partial evaluation: a monovariant control-flow analysis yields equivalent results on a direct-style program and on its CPS counterpart, a monovariant binding-time analysis yields less precise results on a direct-style program than on its CPS counterpart, and an enhanced monovariant binding-time analysis yields equivalent results on a direct-style program and on its CPS counterpart. Our proof technique amounts to constructing the CPS counterpart of flow information and of binding times.<br /> <br />Our results formalize and confirm a folklore theorem about traditional binding-time analysis, namely that CPS has a positive effect on binding times. What may be more surprising is that the benefit does not arise from a standard refinement of program analysis, as, for instance, duplicating continuations.<br /> <br />The present study is symptomatic of an unsettling property of program analyses: their quality is unpredictably vulnerable to syntactic accidents in source programs, i.e., to the way these programs are written. More reliable program analyses require a better understanding of the effect of syntactic change.


2011 ◽  
Vol 63-64 ◽  
pp. 789-794
Author(s):  
Da Hai Jin ◽  
Yun Zhan Gong ◽  
Zhao Hong Yang ◽  
Qing Xiao ◽  
Chuan Chang Liu

Control flow graph plays an important role in software static testing based on defect patterns, while the impact of runtime exception on control flow graph is not negligible. After the runtime exception control flow graph and exception pattern Finite State Machine were defined, an algorithm for fault detection in the presence of runtime exception was proposed. Basing on FSM for exception pattern, the feasible states and its condition are iterated along the node of control flow graph, while the abnormal status, which can throw a runtime exception, will be added into control flow graph as an edge automatically. Thus the static testing method can detect more defects by the control flow graph constructed dynamically. The experiment results show that, the static testing method in the presence of runtime exception can decrease defect false negative significantly.


2017 ◽  
Vol 14 (11) ◽  
pp. 247-259 ◽  
Author(s):  
Yong Peng ◽  
Guanyu Su ◽  
Bin Tian ◽  
Maohua Sun ◽  
Qi Li

Sign in / Sign up

Export Citation Format

Share Document