作者:SRI International 来源:Hotnets '23 论文题目:PROSPER: Extracting Protocol Specifications Using Large Language Models 论文链接:https://conferences.sigcomm.org/hotnets/2023/papers/hotnets23_sharma.pdf 内容整理:王柯喻
本文探讨了大型语言模型(LLM)(特别是 GPT-3.5-turbo)的应用,以从 Internet 请求评论(RFC)文档中提取规范并自动理解网络协议。LLM在理解医学和法律等专业领域文本上已经有了长足应用,本文研究了它们在自动理解 RFC 方面的潜力。该团队开发了一个从RFC中提取图工件的工具-- RuminMiner。然后将提取的工件与自然语言文本耦合,使用 GPT-turbo 3.5(chatGPT)提取协议自动机,并给出提取结果。
网络协议是设备和系统之间通信的基础,但通常复杂多样,使得手动分析和实施耗时且容易出错。而其中一种分析理解方式即为使用 RFC 文档,所以 RFC 文档的理解需要具有高效性与准确性,同时 RFC 中的自动协议理解的应用领域也较为广泛,如攻击合成和协议安全分析,网络故障排除和代码去膨胀等等。同时这个项目也具有一定的挑战性包括:
先前应用 NLP 技术来自动网络协议理解的工作(例如,WHYPER 和 DASE)使用语义解析从手册页、文档和源代码中提取信息。其他工作如 Veritas 和 Prospex 分析网络跟踪消息以自动生成协议自动机。前者提取概率协议状态机(PPSM),而后者使用网络消息聚类。
图1 PROSPER总述
在 RFC 的选择过程中,需要考虑各种重要网络协议的代表性。初步的过滤过程包括三个阶段:
RFC 是不遵循严格设计或模板的复杂文档;因此RFC清理过程特别具有挑战性。本文制定了以下清理RFC的一般规则:
为了遵守 GPT3.5turbo 的最大上下文长度。清理后的RFC 被分割成500行的块,这些块包含纯文本和文本图形。在所有RFC(包括上面选择的代表性 RFC)中,一行中的最大字符数为82。因此,每个块最多由41万个字符组成。
使用 LLM 从两个不同的角度来处理提取的协议信息:从协议定义中自动提取 FSM,以及理解RFC中定义的控制消息的结构,这些信息对于流量分析,入侵检测等各种网络问题都很有价值。
图2 RFC协议理解伪算法
本文从三个方面对该系统进行了评估:effectiveness , generalizability and coverage enrichment
图3 示例生成的FSM图
下表显示了分别使用贪婪优化提示和 APE 工程提示的提取FSM任务的结果。
表1 提取FSM的结果
而在 DCCP 中的误判是由于拥塞控制符 CCID2 与 CCID3 被报告为系统状态。在拥塞控制协商阶段,change L/change R 会引起客户端侧的 CCID 过程的改变,因此可以解释成状态改变(CCID协商图理有)。同时可以看出于基于 APE 的提示工程在 TCP,BGP和PPTP RFC 上的性能更好,但它确实引入了更多的误报。
表2 RFCNPL与Prosper的对比结果
对比了 RFCNPL 与 Prosper 的结果,可以明显看出用工件提取器与LLM的结合带来的优势。