工具
PULSAR 协议学习研究原型
由 Hugo Gascon 等人开发的研究原型,可从记录下来的流量中学习未知网络协议的模型。它从 PCAP 记录中提取报文,将其嵌入为词元或 n-gram 向量,借助 PRISMA R 模块用矩阵分解进行聚类,再生成马尔可夫链状态模型,以及报文模板和把字段与先前报文关联起来的规则,输出为模型文件和 Graphviz 状态图。同一模型还驱动工具中的会话模拟器和有状态模糊测试器,详见作者 2015 年的 SecureComm 论文;本条目只介绍协议学习部分。
- 目标
- 协议
- 类别
- 协议分析工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅对象为 master 分支提交 3c61178(2022-06-07),也是最后一次推送;仓库没有发行版或标签,命令行工具自称 v0.1-dev。2021 年合并的社区贡献用 2to3 把代码从 Python 2 转换为 Python 3。仓库没有测试或 CI 配置。
- 学习过程以所研究协议的 PCAP 流量记录为输入,也可使用 Cuckoo 沙箱为所分析样本保存的抓包。仓库提交了一个示例模型 models/itunes-xbmc,附带用来学习该模型的约 3 MB iTunes–XBMC 抓包(itunes-xbmc.pcap,来自 2015 年的初始提交)及其 Derrick、Sally 和 Harry 中间文件;除此之外不附带其他目标数据。
- 按 INSTALL.md,用户需把 PRISMA R 模块克隆到 pulsar/modules,从 Konrad Rieck 的仓库构建 Derrick 和 Sally 这两个 C 工具,安装 R、Wireshark 的 mergecap 和 Graphviz,再用 pip 安装 pygraphviz、progressBar、NumPy 和 python-Levenshtein;文档只给出 CentOS 的安装命令。依赖均未固定版本;PRISMA 最后更新于 2018 年,Derrick 和 Sally 最后更新于 2019 年。
- README 让读者参阅 2015 年 SecureComm 论文了解方法,并引用一篇 2012 年 AISec 关于为网络蜜罐学习有状态模型的论文;其中报告的结果出自作者,本合集未复现。学到的模板和状态机只是统计近似,需要分析人员验证。
- 采用 BSD-3-Clause(Copyright 2014 Hugo Gascon);附带的 pulsar/core/sippy SIP 协议栈保留其自身的 GPL-2.0-or-later 声明。本次审阅未运行任何程序,本条目也不介绍模糊测试流程。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · hgascon/pulsar · 修订 3c61178
- INSTALL.md GitHub · hgascon/pulsar · 修订 3c61178
- LICENSE GitHub · hgascon/pulsar · 修订 3c61178
- pulsar.py GitHub · hgascon/pulsar · 修订 3c61178
- pulsar/core/model.py GitHub · hgascon/pulsar · 修订 3c61178
- pulsar/core/cluster_generator.R GitHub · hgascon/pulsar · 修订 3c61178
- pulsar/conf/model.conf GitHub · hgascon/pulsar · 修订 3c61178
- models/itunes-xbmc GitHub · hgascon/pulsar · 修订 3c61178
- pulsar/core/sippy/SipCSeq.py GitHub · hgascon/pulsar · 修订 3c61178
- https://hugogascon.com/publications/2015-securecomm.pdf
- https://doi.org/10.1007/978-3-319-28865-9_18
- README.md GitHub · tammok/PRISMA · 修订 a48624f