论文部分内容阅读
未知协议是指协议格式规范等相关信息资料不公开的通信协议。出于保密性需求的考虑,目前越来越多的通信过程选择制定和采用未知协议进行信息数据的传输。但由于未知协议在实现和实际应用过程中可能存在各种类型的安全威胁,且在实际网络环境中,目前的网络安全设备多基于已知的协议报文格式进行检测和防护,导致未知协议在实际通信应用过程中面临着极大的安全威胁。因此,对未知协议进行脆弱性检测研究具有十分重要的现实意义和研究价值。符号执行技术是一种重要的程序分析技术,其具有自动化程度高、指令代码覆盖范围大、分析结果更加精细和准确等特点,目前已被广泛的应用于软件测试、漏洞挖掘等领域。基于此,论文研究并提出将符号执行技术应用于未知协议的脆弱性检测过程。论文所做的研究工作主要包括:1)针对未知协议输入报文格式集合解析的问题,提出了基于动态符号执行技术的输入报文格式解析方法,实现了对未知协议输入报文格式、协议域信息结构等内容的有效提取;2)针对未知协议状态机分析的问题,提出了基于协议会话路径执行树的协议状态机分析方法,通过分析协议会话过程的路径约束关系,以树结构中父子节点之间的逻辑关系表征协议会话状态之间的迁移过程,有效实现了对未知协议状态机信息的分析和构建。3)针对协议脆弱性检测阶段模糊测试用例生成的问题,提出了基于符号表达式的模糊测试用例生成策略,通过解析符号执行引擎收集的符号化映射关系来构造和生成脆弱性检测所需的模糊测试用例,有效提高了测试用例的有效性及针对性。4)基于所做的研究和提出的方法,论文以开源框架Angr和SPIKE为基础,设计并实现了方法的原型系统ASPtest,并设计实验测试验证了方法的有效性和ASPtest系统的可用性。实验阶段,论文对公开协议FTP和SMTP在假设无先验知识的情况下进行了测试和分析,成功解析出FTP协议和SMTP协议的报文格式结构及状态机信息,并检测到两者存在的缓冲区溢出漏洞。此外,论文还对SDBot远控木马的通信协议进行了实验分析,成功解析出协议格式结构并检测到其存在的缓冲区溢出漏洞。