这是一篇硕士毕业论文。看题目,“通过协议状态 fuzzing 推断 SSH 状态机”。

那么问题来了:

  1. 怎么实现的状态协议 fuzzing;
  • 没找到细节
  1. 怎样推断 SSH 状态机的;
  • L* 算法
  1. 怎样构造 SSH 状态机的。
  • 先看概要,作者认为如果 RFC 标准作者将参考状态机加入标准中,大家的实现就不会太模糊了。

  • 看看第一章,“对正确形成的消息的顺序进行模糊测试,通过将 SUT 响应返回到现成的学习算法来推断状态机”。

    • SUT 是什么?看一下参考论文 Protocol state fuzzing of TLS implementations,SUT 是 System Under Test,也就是被测系统。
    • 推断出状态机后人工审计漏洞
    • 论文中的提问:协议状态模糊测试可以用来揭示 SSH 服务器中的不兼容性或缺陷吗?RFC 中应该以什么方式描述状态相关信息?
    • 后文:
      • 第二章介绍 SSH
      • 第三章介绍 Mealy 状态机以及推断状态机的学习算法和技术
      • 第四章讨论实验
      • 第五章分析和总结状态机与 RFC 的关系
      • 第六章总结

先看第六章

  • 通过协议 fuzzing 推断 SSH 状态机
  • PowerShell 和 CiscoSSH 不支持多个通道(5.3 节)

再看看第三章

  • 简单总结
    • 3.1 节讲状态机推理的不同方法
    • 3.2 节讲 Mealy 状态机的属性
    • 3.3 节讲 L* 算法

接着看第四章

  • 系统构造
    • 学习器学习返回的状态
    • 映射器构造程序状态
    • SUT 是被测程序
  • 简单来说他们修改了 paramiko,更改了 paramiko 的状态机实现作为映射器
  • 学习器就算 L* 算法咯
  • SUT 是现实中的六种 SSH 客户端,看起来是黑盒 Fuzz
    • 问题来了,Fuzz 思想在哪
      • 没找到
  • 4.3节,字母表相当于程序状态

第五章是推断出来的状态机