这是一篇硕士毕业论文。看题目,“通过协议状态 fuzzing 推断 SSH 状态机”。
那么问题来了:
- 怎么实现的状态协议 fuzzing;
- 没找到细节
- 怎样推断 SSH 状态机的;
- L* 算法
- 怎样构造 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 思想在哪
- 没找到
- 问题来了,Fuzz 思想在哪
- 4.3节,字母表相当于程序状态
第五章是推断出来的状态机