We look at the use of cryptography to obfuscate malware. Most surveys on malware obfuscation only discuss simple encryption techniques (e.g., XOR encryption), which are easy to defeat (in principle), since the decryption algorithm and the key is shipped within the program. This SoK proposes a principled definition of malware obfuscation, and categorises instances of malware obfuscation that use cryptographic tools into those which evade detection and those which are detectable. The SoK first examines easily detectable schemes such as string encryption, class encryption and XOR encoding, found in most obfuscated malware. It then details schemes that can be shown to be hard to break, such as the use of environmental keying. We also analyse formal cryptographic obfuscation, i.e., the notions of indistinguishability and virtual black box obfuscation, from the lens of our proposed model on malware obfuscation.
翻译:我们研究了使用加密法来混淆恶意软件的问题。 大多数关于恶意软件混淆的调查只是讨论简单的加密技术(例如XOR加密),这些技术很容易(原则上)失败,因为解密算法和钥匙是在程序内装运的。这个 SoK 提出了一个关于恶意软件混淆的原则性定义,并将使用加密工具来混淆恶意软件的错误软件混淆实例分为逃避探测的和可探测的。 SoK 首先检查了在最模糊的恶意软件中发现的容易探测的字符串加密、类加密和XOR编码等方案。然后,它详细介绍了可以证明难以破碎的方案,例如环境钥匙的使用。我们还从我们关于恶意软件混淆的模式的透镜中分析了正式的加密模糊概念,即易分解和虚拟黑盒模糊的概念。