APP下载

基于协议状态机遍历的模糊测试优化方法

2020-02-18张洪泽周胜利冯文博

计算机工程与应用 2020年4期

张洪泽,洪 征,周胜利,冯文博

1.中国人民解放军陆军工程大学 指挥控制工程学院,南京210000

2.浙江警察学院 计算机与信息技术系,杭州310000

1 引言

协议漏洞挖掘是保证网络通信安全的重要手段。模糊测试是目前最常用的协议漏洞挖掘方法,它通过向协议实体输入变异的报文,监控协议实体的运行状况,分析协议实体发生的异常,从而发现潜在的安全漏洞。模糊测试具有自动化程度高、发现的漏洞实际可用等优点[1]。

根据输入报文相互之间是否存在关联关系,网络通信协议可分为无状态协议(Stateless Protocol)和有状态协议(Stateful Protocol)两类[2]。无状态协议是指报文发送方输出的各个报文之间没有关联性,例如ICMP协议的每个请求报文各自独立,相互之间没有关联关系。而对于有状态协议,协议实体会记录所接收到的报文信息,在处理报文后可能会出现协议状态的变化,例如FTP协议与SMTP协议都属于有状态协议。相比于无状态协议模糊测试,对有状态协议进行模糊测试更复杂。因为当测试用例与协议实体状态不匹配时,测试用例会被直接丢弃,为了保证测试用例尽可能被协议实体接受,测试时需要依赖协议的状态模型,根据协议实体所处的协议状态输入测试用例[3]。

网络通信协议的模糊测试最早可追溯到1999年芬兰Oulu大学研发的网络协议安全测试软件PROTOS[4]。PROTOS发现了不少的协议实体程序的安全漏洞,但是它不是通用的测试框架,软件灵活性较差,应用范围狭窄。2002年,Aitel开发了一款通用协议测试框架工具SPIKE[5]。……

登录APP查看全文