Jasper van Woudenberg, Cees-Bart Breunesse, Rajesh Velegalati, P. Yalla, Sergio Gonzalez
Differential fault analysis (DFA) is a cryptanalytic attack that uses corrupted cipher executions to extract secret/private keys. Traditionally applied in hardware-based systems, it is now being actively used in extracting keys from (whiteboxed) software cipher implementations. Extensive research is published which aims at increasing the efficiency of DFA on symmetric ciphers using fewer number of faulty cipher texts. However, such DFA attacks require manual analysis as a pre-processing step, a fixed guess at the fault model, and can be non-trivial to implement. Algebraic Fault Analysis (AFA) is a class of DFA which overcomes these difficulties by using a combination of algebraic cryptanalysis and DFA to retrieve the secret key. In this paper, we present a methodology which decreases the complexity of performing AFA, by using a symbolic execution engine on a software implementation of the cipher to create constraints which are then fed into a SAT solver. We test our proposed methodology against the AES and DES ciphers using different fault models, and show that under a given fault model, the keys can be extracted with as little as ~2 and ~5 faults respectively.
{"title":"Differential Fault Analysis Using Symbolic Execution","authors":"Jasper van Woudenberg, Cees-Bart Breunesse, Rajesh Velegalati, P. Yalla, Sergio Gonzalez","doi":"10.1145/3151137.3151141","DOIUrl":"https://doi.org/10.1145/3151137.3151141","url":null,"abstract":"Differential fault analysis (DFA) is a cryptanalytic attack that uses corrupted cipher executions to extract secret/private keys. Traditionally applied in hardware-based systems, it is now being actively used in extracting keys from (whiteboxed) software cipher implementations. Extensive research is published which aims at increasing the efficiency of DFA on symmetric ciphers using fewer number of faulty cipher texts. However, such DFA attacks require manual analysis as a pre-processing step, a fixed guess at the fault model, and can be non-trivial to implement. Algebraic Fault Analysis (AFA) is a class of DFA which overcomes these difficulties by using a combination of algebraic cryptanalysis and DFA to retrieve the secret key. In this paper, we present a methodology which decreases the complexity of performing AFA, by using a symbolic execution engine on a software implementation of the cipher to create constraints which are then fed into a SAT solver. We test our proposed methodology against the AES and DES ciphers using different fault models, and show that under a given fault model, the keys can be extracted with as little as ~2 and ~5 faults respectively.","PeriodicalId":68286,"journal":{"name":"中国安防产品信息","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2017-12-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87356245","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The objective of control flow obfuscation is to protect the program control flow from analysis. A technique called control flow flattening addresses static analysis by hiding edges between basic blocks in a program and introduces a dispatcher block that determines the execution order of the randomized blocks. In this paper we propose a novel flattening construction and lightweight dispatchers that do not impose high runtime performance impact on the program but still give good protection of the control flow against static analysis. We also present an attack model that allows us to quantitatively evaluate the protection the constructions give and compare against other suggestions from the literature. We have implemented our construction in the open source obfuscator OLLVM and present experimental results on overheads from different dispatcher implementations.
{"title":"Lightweight Dispatcher Constructions for Control Flow Flattening","authors":"Björn Johansson, Patrik Lantz, M. Liljenstam","doi":"10.1145/3151137.3151139","DOIUrl":"https://doi.org/10.1145/3151137.3151139","url":null,"abstract":"The objective of control flow obfuscation is to protect the program control flow from analysis. A technique called control flow flattening addresses static analysis by hiding edges between basic blocks in a program and introduces a dispatcher block that determines the execution order of the randomized blocks. In this paper we propose a novel flattening construction and lightweight dispatchers that do not impose high runtime performance impact on the program but still give good protection of the control flow against static analysis. We also present an attack model that allows us to quantitatively evaluate the protection the constructions give and compare against other suggestions from the literature. We have implemented our construction in the open source obfuscator OLLVM and present experimental results on overheads from different dispatcher implementations.","PeriodicalId":68286,"journal":{"name":"中国安防产品信息","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2017-12-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86163391","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Obfuscation is a software protection technique that aims to increase the difficulty and amount of resources required to understand programs from the perspective of a malicious end user. The order and number of obfuscating transformations is determined by an obfuscation executive and the optimal arrangement of transformation defines the phase ordering problem. In this paper, we report on a case study evaluation for determining the optimal phase ordering for an obfuscation executive. We analyze obfuscation effectiveness of variants generated by Tigress, a dynamic virtualizing obfuscator with four transformation types. We test the evaluation of multiple orderings against a symbolic virtual machine to determine the strengths and weaknesses of each combination. We use overhead (cost) and effectiveness as the tradeoff space to determine the best sequence and ordering of transformations within this context. Our results show that, ideally, applying control flow transformation, data encoding, abstract transforms, and then dynamic virtualization provides the highest effectiveness on average against symbolic execution attacks.
{"title":"Evaluating Optimal Phase Ordering in Obfuscation Executives","authors":"Will Holder, J. McDonald, T. Andel","doi":"10.1145/3151137.3151140","DOIUrl":"https://doi.org/10.1145/3151137.3151140","url":null,"abstract":"Obfuscation is a software protection technique that aims to increase the difficulty and amount of resources required to understand programs from the perspective of a malicious end user. The order and number of obfuscating transformations is determined by an obfuscation executive and the optimal arrangement of transformation defines the phase ordering problem. In this paper, we report on a case study evaluation for determining the optimal phase ordering for an obfuscation executive. We analyze obfuscation effectiveness of variants generated by Tigress, a dynamic virtualizing obfuscator with four transformation types. We test the evaluation of multiple orderings against a symbolic virtual machine to determine the strengths and weaknesses of each combination. We use overhead (cost) and effectiveness as the tradeoff space to determine the best sequence and ordering of transformations within this context. Our results show that, ideally, applying control flow transformation, data encoding, abstract transforms, and then dynamic virtualization provides the highest effectiveness on average against symbolic execution attacks.","PeriodicalId":68286,"journal":{"name":"中国安防产品信息","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2017-12-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73015511","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Niccolò Marastoni, Andrea Continella, Davide Quarta, S. Zanero, M. Preda
As shown in previous work, malware authors often reuse portions of code in the development of their samples. Especially in the mobile scenario, there exists a phenomena, called piggybacking, that describes the act of embedding malicious code inside benign apps. In this paper, we leverage such observations to analyze mobile malware by looking at its similarities. In practice, we propose a novel approach that identifies and extracts code similarities in mobile apps. Our approach is based on static analysis and works by computing the Control Flow Graph of each method and encoding it in a feature vector used to measure similarities. We implemented our approach in a tool, GroupDroid, able to group mobile apps together according to their code similarities. Armed with Group-Droid, we then analyzed modern mobile malware samples. Our experiments show that GroupDroid is able to correctly and accurately distinguish different malware variants, and to provide useful and detailed information about the similar portions of malicious code.
{"title":"GroupDroid: Automatically Grouping Mobile Malware by Extracting Code Similarities","authors":"Niccolò Marastoni, Andrea Continella, Davide Quarta, S. Zanero, M. Preda","doi":"10.1145/3151137.3151138","DOIUrl":"https://doi.org/10.1145/3151137.3151138","url":null,"abstract":"As shown in previous work, malware authors often reuse portions of code in the development of their samples. Especially in the mobile scenario, there exists a phenomena, called piggybacking, that describes the act of embedding malicious code inside benign apps. In this paper, we leverage such observations to analyze mobile malware by looking at its similarities. In practice, we propose a novel approach that identifies and extracts code similarities in mobile apps. Our approach is based on static analysis and works by computing the Control Flow Graph of each method and encoding it in a feature vector used to measure similarities. We implemented our approach in a tool, GroupDroid, able to group mobile apps together according to their code similarities. Armed with Group-Droid, we then analyzed modern mobile malware samples. Our experiments show that GroupDroid is able to correctly and accurately distinguish different malware variants, and to provide useful and detailed information about the similar portions of malicious code.","PeriodicalId":68286,"journal":{"name":"中国安防产品信息","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2017-12-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75690603","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Proceedings of the 7th Software Security, Protection, and Reverse Engineering / Software Security and Protection Workshop","authors":"J. McDonald, M. Preda, Natalia Stakhanova","doi":"10.1145/3151137","DOIUrl":"https://doi.org/10.1145/3151137","url":null,"abstract":"","PeriodicalId":68286,"journal":{"name":"中国安防产品信息","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2017-12-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89448266","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Modern cyber attacks are often conducted by distributing digital documents that contain malware. The approach detailed herein, which consists of a classifier that uses features derived from dynamic analysis of a document viewer as it renders the document in question, is capable of classifying the disposition of digital documents with greater than 98% accuracy even when its model is trained on just small amounts of data. To keep the classification model itself small and thereby to provide scalability, we employ an entity resolution strategy that merges syntactically disparate features that are thought to be semantically equivalent but vary due to programmatic randomness. Entity resolution enables construction of a comprehensive model of benign functionality using relatively few training documents, and the model does not improve significantly with additional training data.
{"title":"Fast Model Learning for the Detection of Malicious Digital Documents","authors":"Daniel Scofield, Craig Miles, Stephen Kuhn","doi":"10.1145/3151137.3151142","DOIUrl":"https://doi.org/10.1145/3151137.3151142","url":null,"abstract":"Modern cyber attacks are often conducted by distributing digital documents that contain malware. The approach detailed herein, which consists of a classifier that uses features derived from dynamic analysis of a document viewer as it renders the document in question, is capable of classifying the disposition of digital documents with greater than 98% accuracy even when its model is trained on just small amounts of data. To keep the classification model itself small and thereby to provide scalability, we employ an entity resolution strategy that merges syntactically disparate features that are thought to be semantically equivalent but vary due to programmatic randomness. Entity resolution enables construction of a comprehensive model of benign functionality using relatively few training documents, and the model does not improve significantly with additional training data.","PeriodicalId":68286,"journal":{"name":"中国安防产品信息","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2017-12-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87570422","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Malware applies lots of obfuscation techniques, which are often automatically generated by the use of packers. This paper presents a packer identification of packed code based on metadata signature, which is a frequency vector of occurrences of classified obfuscation techniques. First, BE-PUM (Binary Emulator for PUshdown Model generation) disassembles and generates the control flow graph of malware in an on-the-fly manner, using concolic testing. Second, obfuscation techniques in the generated control flow graph are detected based on the formal criteria of each obfuscation technique. Last, the used packer is identified with the chisquare test on the metadata signature of a packed code. The precision is evaluated with experiments on 12814 malware from VX heaven and Virusshare, in which 608 examples are detected inconsistent with commercial packer identification at PEiD, CFF Explore, and VirusTotal. We manually confirm that, except for 1 example, BE-PUM is correct. The only case that BE-PUM misunderstands is between MEW and FSG, which are quite similar packers and current BE-PUM extension does not support MEW.
恶意软件应用了许多混淆技术,这些技术通常是由使用打包程序自动生成的。本文提出了一种基于元数据签名的打包代码的打包识别方法,元数据签名是分类混淆技术出现的频率向量。首先,BE-PUM (Binary Emulator for PUshdown Model generation,下推模型生成二进制仿真器)利用集合测试,以动态方式对恶意软件的控制流图进行反汇编和生成。其次,根据每种混淆技术的形式化标准检测生成的控制流图中的混淆技术。最后,对打包代码的元数据签名进行chisquare测试,对所使用的封隔器进行识别。通过对来自VX天堂和Virusshare的12814个恶意软件进行实验来评估精度,其中检测到608个示例与PEiD, CFF Explore和VirusTotal的商业封隔器识别不一致。我们手工确认,除了1个例子外,BE-PUM都是正确的。BE-PUM误解的唯一情况是在MEW和FSG之间,它们是非常相似的包装器,并且当前的BE-PUM扩展不支持MEW。
{"title":"Packer identification based on metadata signature","authors":"Nguyen Minh Hai, Mizuhito Ogawa, Q. T. Tho","doi":"10.1145/3151137.3160687","DOIUrl":"https://doi.org/10.1145/3151137.3160687","url":null,"abstract":"Malware applies lots of obfuscation techniques, which are often automatically generated by the use of packers. This paper presents a packer identification of packed code based on metadata signature, which is a frequency vector of occurrences of classified obfuscation techniques. First, BE-PUM (Binary Emulator for PUshdown Model generation) disassembles and generates the control flow graph of malware in an on-the-fly manner, using concolic testing. Second, obfuscation techniques in the generated control flow graph are detected based on the formal criteria of each obfuscation technique. Last, the used packer is identified with the chisquare test on the metadata signature of a packed code. The precision is evaluated with experiments on 12814 malware from VX heaven and Virusshare, in which 608 examples are detected inconsistent with commercial packer identification at PEiD, CFF Explore, and VirusTotal. We manually confirm that, except for 1 example, BE-PUM is correct. The only case that BE-PUM misunderstands is between MEW and FSG, which are quite similar packers and current BE-PUM extension does not support MEW.","PeriodicalId":68286,"journal":{"name":"中国安防产品信息","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2017-12-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78663581","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}