• Proj THUDBFuzz Paper Reading: AutoFuzz: Automated Network Protocol Fuzzing Framework


    Abstract

    AutoFuzz: smart, man-in-the-middle, sme-deterministic network protocol fuzzing framework.
    方法:

    1. 建立客户端-服务器之间的交流FSA
    2. 学习消息语法,语法中包含域和简单类型信息(learns individual message syntax, including fields and probable types)
    3. 使用FSA引导来fuzz客户端或者服务器

    实验:
    对多个FTP实现进行了Fuzzing

    1. Intro

    P1: 网络协议带来严重安全问题
    P2:
    dumb fuzzer: 对目标的通讯协议没有任何先验知识,随机发送输入,例如ProxyFuzz。缺点:效率较低
    smart fuzzer: 明白协议的状态机,消息语法和能够填入的域的类型。缺点:需要人力改编
    P3: Previous Work
    2:Network Protocol Analysis Using Bioinformatics Algorithms
    4:Prospex: Protocol Specification Extraction
    5: A Model-based Approach to Security Flaw Detection of Network Protocol Implementation
    5能够通过对协议实现的了解,从历史会话中合成抽象行为模型(给定许多network traces,算法会构建加上最小化生成一个FSA)。其主要特点是消极合成+削减部分FSA状态。(passive synthesis + partial FSA reduction)。FSA的建构关键是abstraction function,abstraction function能够将类似的信息映射到某个特殊的抽象表示上。测试人员需要提供两个函数,一个将输入映射为输入结构体,另一个将输出映射为输出结构体。
    4则是通过自动抽取协议规范来建构FSA和信息类型的。
    这几项研究都没有公开源码以供后来者研究。

    P4:
    AutoFuzz用户端服务端都能做,但是本文将其局限在服务端。
    步骤:

    1. 通过历史会话,抽取网络协议规范
    2. 使用5相同的方法构建FSA
    3. 使用2相同的方法获取消息中域的类型

    本文提出新概念: GMS(Generic Message Sequence),Fuzzing functions能够在GMS上进行操作,这样就无需像5一样提供protocal specific fuzzing functions。
    cluster则是相似的GMS的集合。

    2. Framework Overview

    2.1 主要组件

    1. GUI: 允许用户控制fuzzer行为
    2. Proxy Server: 记录修改application level traffic
    3. 协议标准Extractor: 抽取网络协议状态
    4. Fuzzing Engine: 包括确定性和随机性两个阶段。确定性将预先编写好的数据放入GMS,不确定性的随机略过静态或者变量相关的数据域,在FSA上做随机transitions,在GMS上注入随机数据。

    3. Generic Message Sequence Construction

    1. 使用聚类技术将类似的(intput或者output)messages聚合起来
    2. 在每个cluster上使用sequence aligment algo
    3. 为每个cluster生成GMS
    4. 将协议FSA中每个transition都和对应的GMS联系起来。

    4. Fuzzing Algo

    AutoFuzz中有一些已经定义好的可以后期拓展的fuzzing functions。

  • 相关阅读:
    【单调队列】POJ2823-Sliding Window
    【单调队列】广告印刷
    反射复习笔记01
    redis 笔记01 简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表
    mybatis 复习笔记02
    mybatis 复习笔记01
    Mongodb 笔记02 创建、更新和删除文档
    NIO复习03
    Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB
    NIO复习02
  • 原文地址:https://www.cnblogs.com/xuesu/p/15255287.html
Copyright © 2020-2023  润新知