Malware authors often use cryptographic tools such as XOR encryption and block ciphers like AES to obfuscate part of the malware to evade detection. Use of cryptography may give the impression that these obfuscation techniques have some provable guarantees of success. In this paper, we take a closer look at the use of cryptographic tools to obfuscate malware. We first find that most techniques are easy to defeat (in principle), since the decryption algorithm and the key is shipped within the program. In order to clearly define an obfuscation technique's potential to evade detection we propose a principled definition of malware obfuscation, and then categorize instances of malware obfuscation that use cryptographic tools into those which evade detection and those which are detectable. We find that schemes that are hard to de-obfuscate necessarily rely on a construct based on environmental keying. We also show that cryptographic notions of obfuscation, e.g., indistinghuishability and virtual black box obfuscation, may not guarantee evasion detection under our model. However, they can be used in conjunction with environmental keying to produce hard to de-obfuscate versions of programs.
翻译:恶意软件作者常常使用诸如XOR加密、块密码(如AES)等密码工具来混淆部分恶意软件以逃避检测。使用加密技术可能会给人留下这些混淆技术具有某些可证明的成功保障的印象。在本文中,我们着眼于使用密码工具混淆恶意软件的实践。我们首先发现,由于解密算法和密钥已经随程序一同运送,大部分技术在原则上都很容易被破解。为了明确定义混淆技术的潜在成功保障,我们提出了一个有原则的恶意软件混淆定义,并将使用密码工具混淆恶意软件的实例分为那些可以逃避检测和那些可以被检测出来的类别。我们发现,难以被重构的计划一定依赖环境键构造。我们还表明,密码混淆概念(如不可分辨性和虚拟黑盒混淆)在我们的模型下不能保证逃离检测。然而,它们可以与环境键组合使用,以生成难以被重构的程序版本。