ReFormat:加密消息的自动逆向工程
1. 引言
协议逆向工程在众多安全应用领域有着巨大的潜力,因此近年来受到了广泛关注。例如,基于网络的防火墙或过滤器需要了解协议规范,才能理解特定网络通信会话的上下文;未知协议的模糊测试也可以利用这些知识,更高效地生成有趣的输入,从而改进测试过程。
传统的协议逆向工程大多是手动进行的,既耗时又容易出错。为了改善这种情况,人们开发了许多系统来实现自动协议逆向工程。其中,Protocol Informatics项目和Discoverer采用基于网络的方法,利用生物信息学中用于模式发现的序列比对算法,从大量网络跟踪数据中定位字段边界。而Polyglot、Wondracek等人的工作、AutoFormat、Tupni和Prospex等系统则采用基于程序的方法来找出消息格式。尽管这些系统在很多方面存在差异,但它们都基于一个相同的见解:程序解析和处理消息的方式揭示了消息格式的丰富信息。
然而,这些系统都存在一个主要的共同局限,即无法分析加密消息。基于网络的方法无法识别加密消息的格式,因为收集到的网络跟踪数据是密文形式,这完全破坏了消息字段的边界,在网络数据包层面不太可能呈现出任何共同模式。现有的基于程序的方法也无法对加密消息实现其目标,因为我们试图发现格式的不是输入消息,而是运行时生成的解密消息。不幸的是,现有的基于程序的方法都无法准确定位包含解密后明文消息的运行时内存缓冲区。
为了解决这个问题,我们提出了ReFormat,这是一个基于程序的系统,能够准确识别包含解密消息的运行时缓冲区。我们的方法基于这样的观察:加密输入消息通常会经历两个主要处理阶段:消息解密和正常协议处理。用于解密加密消息的指令与处理正常未加密协议消息的指令有显著
超级会员免费看
订阅专栏 解锁全文
731

被折叠的 条评论
为什么被折叠?



