模糊测试
计算机科学
协议(科学)
国家(计算机科学)
实施
反向地址解析协议
服务器
编码(集合论)
计算机网络
序列(生物学)
程序设计语言
理论计算机科学
操作系统
Internet协议套件
软件
集合(抽象数据类型)
互联网
生物
医学
病理
替代医学
遗传学
作者
Van-Thuan Pham,Marcel Böhme,Abhik Roychoudhury
标识
DOI:10.1109/icst46399.2020.00062
摘要
Server fuzzing is difficult. Unlike simple command-line tools, servers feature a massive state space that can be traversed effectively only with well-defined sequences of input messages. Valid sequences are specified in a protocol. In this paper, we present AFLNET, the first greybox fuzzer for protocol implementations. Unlike existing protocol fuzzers, AFLNET takes a mutational approach and uses state-feedback to guide the fuzzing process. AFLNET is seeded with a corpus of recorded message exchanges between the server and an actual client. No protocol specification or message grammars are required. AFLNET acts as a client and replays variations of the original sequence of messages sent to the server and retains those variations that were effective at increasing the coverage of the code or state space. To identify the server states that are exercised by a message sequence, AFLNET uses the server's response codes. From this feedback, AFLNET identifies progressive regions in the state space, and systematically steers towards such regions. The case studies with AFLNET on two popular protocol implementations demonstrate a substantial performance boost over the state-of the-art. AFLNET discovered two new CVEs which are classified as critical (CVSS score CRITICAL 9.8).
科研通智能强力驱动
Strongly Powered by AbleSci AI