一句话:提出语法感知的差分测试框架 SADT,通过树变异与测试用例共享提升 SSL/TLS 证书验证缺陷检测能力。
SSL/TLS 的安全性依赖于 X.509 证书的正确验证,因此需要检验 SSL/TLS 实现是否正确地校验证书。现有差分测试虽能发现语义缺陷,但存在测试用例语法难以保证、多样性不足的问题。本文提出 SADT,一个语法感知的差分测试框架,用于评估 SSL/TLS 实现中的证书验证过程。该方法首先采用基于树的变异策略,保证生成证书在语法上正确;随后在所有目标 SSL/TLS 实现之间共享有趣测试用例,以增加证书多样性。这样生成的证书更可能触发不同实现之间的行为差异,从而暴露潜在缺陷。
The security assurance of SSL/TLS critically depends on the correct validation of X.509 certificates. Therefore, it is important to check whether a certificate is correctly validated by the SSL/TLS implementations. Although differential testing has been proven to be effective in finding semantic bugs, it still suffers from the following limitations: (1) The syntax of test cases cannot be correctly guaranteed. (2) Current test cases are not diverse enough to cover more implementation behaviours. This paper tackles these problems by introducing SADT, a novel syntax-aware differential testing framework for evaluating the certificate validation process in SSL/TLS implementations. We first propose a tree-based mutation strategy to ensure that the generated certificates are syntactically correct, and then diversify the certificates by sharing interesting test cases among all target SSL/TLS implementations. Such generated certificates are more likely to trigger discrepancies among SSL/TLS implementations, which may indicate some potential bugs.