基于有限状态机的TLS指纹信息识别方法及系统

未命名 08-07 阅读:143 评论:0

基于有限状态机的tls指纹信息识别方法及系统
技术领域
1.本发明涉及网络安全技术领域,尤其涉及一种基于有限状态机的tls指纹信息识别方法及系统。


背景技术:

2.随着网络安全观念深入人心,tls已经成为互联网中使用最为广泛的安全协议,并逐渐成为构建网络安全系统的关键基础。现有网络协议识别方法主要包括基于传输层端口、基于有效载荷和基于统计学特征等网络协议识别方法。基于传输层端口的识别方法根据端口分配规则(即iana规范)进行协议识别;基于有效载荷的识别方法利用协议解析和模式匹配等技术进行协议识别;基于统计学特征的识别方法依据网络流的统计特征,利用机器学习等方法进行协议识别。然而,上述方法均只能识别出网络数据包所属的协议类别,无法进一步得到细粒度的协议信息。
3.例如,公开号为cn113037746b的中国专利公开了一种客户端指纹提取、身份识别和网络安全检测的方法及装置,上述客户端指纹提取的方法包括:接收客户端的网页访问请求;根据上述网页访问请求确定上述客户端的tls指纹;对上述tls指纹进行特征提取,以得到上述tls指纹的特征集;以及基于simhash算法对上述tls指纹的特征集进行降维处理,以得到用于表征上述客户端的网络身份的目标指纹。该实施例还提供了一种电子设备、计算机可读存储介质和计算机程序产品。该专利就是只能识别出网络数据包所属的协议类别,无法进一步得到细粒度的协议信息,也无法对tls漏洞进行检测。
4.因此,本发明希望通过改进提取步骤和识别步骤来进一步得到细粒度的协议信息,从而为实现tls漏洞检测、代码套壳检测等功能提供基础。
5.此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于申请人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。


技术实现要素:

6.针对现有技术之不足,本发明提供了一种基于有限状态机的tls指纹信息识别系统,其至少包括:
7.模型推演模块,用于基于消息映射模块发送的映射信息推演目标tls实现的状态机模型;
8.指纹提取模块,用于解析所述状态机模型并提取目标tls实现的多级指纹;
9.版本识别模块,用于验证所述多针指纹的有效性和/或识别未知tls实现的版本信息。
10.本发明通过推演tls实现的状态机模型,并在此基础上引入多级指纹提取算法,识别tls实现的类型和版本信息,解决了现有网络协议识别方法无法识别细粒度协议信息的
问题。相比于现有技术,本发明的识别协议信息粒度更细,能够精准得出被测tls服务端的具体软件名和版本号,并且在对于现有基于数据包负载的tls指纹提取方面,本发明用于指纹匹配所发送的数据包更少,更具有隐蔽性。
11.优选地,所述模型推演模块与状态机模型库建立连接,
12.所述模型推演模块基于所述模型验证单元中的等价查询算法来验证推演的状态机模型是否表征了目标tls实现的完整行为;若验证成功,则将推演的状态机模型存储至状态机模型库,若验证失败,则将反例信息反馈至模型学习单元以指导重新推演模型,直至验证成功。
13.优选地,所述模型推演模块至少包括模型学习单元和模型验证单元,所述模型学习单元用于根据状态机学习算法推演目标tls实现的状态机模型;所述模型验证单元用于判断推演的状态机模型是否表征了目标tls实现的完整行为。
14.优选地,所述指纹提取模块至少包括:模型解析单元,用于提取状态机模型的特征并进行聚类处理;模型对比单元,用于将不同类别状态机模型进行对比分析,得到第一范围内的至少一种指纹信息;指纹提取单元,用于计算每种类别状态机与所存储的状态机对比结果的交集,得到第二范围的指纹信息。
15.优选地,在存在一部分状态机模型无指纹信息的情况下,指纹提取单元过滤掉已发现指纹的状态机模型并且向所述模型对比单元反馈重新对比指令,否则,指纹提取单元输出所有指纹。
16.优选地,所述指纹提取模块包括指纹更新单元,所述指纹更新单元更新指纹的步骤至少包括:计算目标tls实现的指纹;根据所述指纹信息所处层级,更新所述层级下已有的所有指纹;分别将所述层级下已有指纹对应的状态机模型与目标tls实现的状态机模型进行对比,获得各个状态机模型与目标tls实现状态机的对比结果;将各个状态机模型的指纹与对比结果取交集,作为更新后的指纹。
17.当发现新的tls状态机模型指纹时,已有的多级指纹只需要经所述指纹更新单元进行增量更新,而无需重新计算,保证了系统的可扩展性。
18.优选地,所述版本识别模块至少包括指纹匹配单元和指纹验证单元。所述指纹匹配单元用于根据多级指纹识别未知tls协议实现的版本信息;所述指纹验证单元用于验证多级指纹的有效性。
19.优选地,所述系统还包括多级指纹池,多级指纹池用于维护已知的tls实现的多级指纹数据,同时响应于所述版本识别模块发送的指纹请求信息,向所述版本识别模块发送与目标tls实现对应的多级指纹信息。
20.本发明还提供一种基于有限状态机的tls指纹信息识别方法,所述方法至少包括:基于消息映射模块发送的映射信息推演目标tls实现的状态机模型;解析所述状态机模型并提取目标tls实现的多级指纹;验证所述多针指纹的有效性和/或识别未知tls实现的版本信息。
21.优选地,所述方法还包括:计算目标tls实现的指纹;根据所述指纹信息所处层级,更新所述层级下已有的所有指纹;分别将所述层级下已有指纹对应的状态机模型与目标tls实现的状态机模型进行对比,获得各个状态机模型与目标tls实现状态机的对比结果;将各个状态机模型的指纹与对比结果取交集,作为更新后的指纹。
22.本发明提供的基于有限状态机的tls指纹提取与版本识别方法无需人工标注数据,所述模型推演模块、消息映射模块、指纹提取模块和版本识别模块均高度自动化,从而保证了系统的易用性。
附图说明
23.图1是本发明提供的一种优选实施方式的模型推演模块的结构示意图;
24.图2是本发明提供的一种优选实施方式的tls指纹相关信息识别系统中的指纹提取方法的方法流程图;
25.图3是本发明提供的一种优选实施方式的tls指纹相关信息识别系统的简化模块连接关系示意图。
26.附图标记列表
27.11:测试单元;12:黑盒系统;13:真实状态机;14:虚拟状态机;100:消息映射模块;101:消息映射单元;102:状态追踪单元;200:模型推演模块;201:模型学习单元;202:模型验证单元;300:版本识别模块;301:指纹匹配单元;302:指纹验证单元;400:状态机模型库;500:多级指纹池;600:指纹提取模块;601:模型解析单元;602:模型对比单元;603:指纹提取单元;604:指纹更新单元;700:已知的tls实现模块;800:未知的tls实现模块。
具体实施方式
28.下面结合附图进行详细说明。
29.针对现有技术之不足,本发明提供了一种基于有限状态机的tls指纹信息识别方法及系统。本发明还能够提供一种推演tls协议实现状态机的方法。
30.请发明人对以下术语补充说明。
31.tls:是一种安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。tls握手是指客户端和服务端交换的一系列数据包和消息的步骤,其涉及多个步骤。服务端只有在和客户端交换完成握手所需信息才可进行进一步的数据交换。
32.状态机模型库:用于存储模型推演模块(200)所学习到的状态机模型,以及向指纹提取模块(600)提供已学习到的tls状态机模型。
33.测试单元:用于学习状态机,并且将抽象信息转换成具体信息并且发送到待测黑盒系统。
34.黑盒系统:用于学习状态机并作为测试单元的学习对象。
35.真实状态机:属于黑盒系统12内部真实的状态机,用于控制黑盒系统12的行为逻辑。
36.虚拟状态机:是指模型学习单元201在执行状态机学习算法过程中输出的阶段性状态机。如果该阶段性状态机通过了模型验证单元202的一致性测试,则为模型推演模块200的最终输出。否则,模型验证单元202会向模型学习单元201提供一个反例信息,用于进一步优化该阶段性状态机。重复上述步骤,直至阶段性状态机通过模型验证单元的一致性测试。
37.有限状态机:有限状态机模型适合于描述网络协议的状态变迁特性,是最常用的形式化描述方式。有限状态机模型一般使用有向图表示,顶点表示状态,有向边表示状态迁
移。有向边上面标记输入和输出,是状态变迁的条件。
38.等价查询:目的是验证虚拟状态机14和真实状态机13是否相同。
39.成员查询:目的是通过提供抽象请求序列和观察抽象响应序列来构建虚拟状态机14。抽象请求序列:抽象请求序列本质上是协议消息的符号化,例如使用clienthello代表网络流量中type字段为clienthello的tls数据包。测试工具用于抽象字符和具体协议消息之间的相互转换。
40.现有技术中的tls指纹信息识别方法,一般采用基于协议数据包负载分析的方法,在指纹匹配的情况下具有粗细粒度的缺陷。现有技术采用基于深度学习的流量指纹特征提取,其需要收集大量的真实世界数据包,并且需要进行大量数据标注和数据训练工作。不仅如此,现有技术采用基于单个特征库进行指纹提取的方法,其提取的指纹信息冗杂过长。
41.如图3所示,本发明的基于有限状态机的tls指纹信息识别系统,其至少包括:模型推演模块200、指纹提取模块600和版本识别模块300。其中。模型推演模块200设置有能够与消息映射模块100以有线或无线的方式连接的第一信息传送端口。模型推演模块200设置有能够与状态机模型库400以有线或无线的方式连接的第二信息传送端口。
42.版本识别模块300设置有能够与消息映射模块100以有线或无线的方式连接的第三信息传送端口。版本识别模块300设置有能够与多级指纹池500以有线或无线的方式连接的第四信息传送端口。
43.指纹提取模块600设置有能够与状态机模型库400和多级指纹池500连接的至少一个第五信息传送端口。
44.状态机模型库400和多级指纹池500是预先离线构建的,即在进行指纹识别之前应预先学习尽可能多的tls实现的状态机模型,以构建多级指纹池。状态机模型库400和多级指纹池500的质量直接关系指纹识别的效果。
45.如图3所示,消息映射模块100以有线或无线的方式分别与模型推演模块200和版本识别模块300建立连接。模型推演模块200与状态机模型库400以有线或无线的方式建立连接。版本识别模块300与多级指纹池500以有线或无线的方式建立连接。状态机模型库400和多级指纹池500分别与指纹提取模块600建立连接。
46.优选地,消息映射模块100还能够以有线或无线的方式与已知的tls实现模块700和未知的tls实现模块800分别建立连接。
47.已知的tls实现模块700是预先搭建好的虚拟tls环境的模块。通过和模型推演模块200进行交互,用于预先构建或者后期扩展更新状态机模型库400和多级指纹池500。例如tls实现模块700为存储有openssl、gnutls、jsse、mitls、mbedtls、nss等常见tls软件库的所有版本的服务器、处理器和/或专用集成芯片。
48.未知的tls实现模块800通常是真实环境中部署在网络服务器上的tls软件库模块。未知的tls实现模块800通过和版本识别模块300进行交互,识别其tls具体类型和版本。由于厂商通常会使用常见的tls软件库或者基于开源软件库开发自定义的tls实现,其中的协议状态机不会改变,所以可以利用本发明的方法进行指纹信息识别。
49.模型推演模块200、指纹提取模块600和版本识别模块300分别可以是能够运行对应程序的专用集成芯片或处理器。模型推演模块200为能够执行本发明的模型推演方法的专用集成芯片或处理器。版本识别模块300为能够执行本发明的版本识别方法的专用集成
芯片或处理器。指纹提取模块600为能够执行本发明的指纹提取方法的专用集成芯片或处理器。
50.优选地,模型推演模块200、指纹提取模块600和版本识别模块300还可以集成为一个专用集成芯片或处理器,该专用集成芯片或处理器能够执行本发明的模型推演方法、版本识别方法和指纹提取方法。
51.本发明还包括至少一个存储单元。该存储单元可以是具有存储功能的存储硬盘、磁介质、芯片、处理器等等。存储单元能够设置为包括存储状态机模型的状态机模型存储库400和存储多级指纹的多级指纹池500。
52.状态机模型库400和多级指纹池500能够设置于各自独立的存储单元,也可以设置于共同一个存储单元中。
53.模型推演模块200用于基于消息映射模块100发送的映射信息推演目标tls实现的状态机模型。模型推演模块200基于模型验证单元202中等价查询算法验证推演的状态机模型是否表征了目标tls实现的完整行为;若验证成功,则将推演的状态机模型存储至状态机模型库400,若验证失败,则将反例信息反馈至模型学习单元201以指导重新推演模型,直至验证成功。优选地,模型推演模块200至少包括模型学习单元201和模型验证单元202。模型学习单元201用于根据状态机学习算法推演目标tls实现的状态机模型。模型验证单元202用于判断推演的状态机模型是否表征了目标tls实现的完整行为。
54.其中,模型学习单元201通过观察目标tls实现的i/o行为学习其状态机模型。
55.如图3所示,消息映射模块100至少包括消息映射单元101和状态追踪单元102。
56.消息映射单元101用于根据当前状态信息将抽象字符消息或具体数据包映射为具体数据包或抽象字符消息。状态追踪单元102用于维护和目标tls实现交互过程中的状态信息。
57.具体地,消息映射单元101接收来自模型学习单元201提供的抽象字符消息,并基于tls协议规范文档,利用状态追踪单元102中存储的状态信息构造相应类型的tls数据包。或者消息映射单元101将从状态追踪单元102反馈得到的消息数据包转化为抽象字符消息。即101实现具体数据包与抽象字符消息的相互映射消息映射单元101还用于处理状态推演过程中可能出现的异常情况。异常情况例如是待测系统崩溃导致无响应或者网络连接已关闭。消息映射单元101将此类情况映射为相应的tls协议规范消息。
58.进一步的,状态追踪单元102负责维护与tls连接有关的状态信息,包括会话随机数、密钥材料、加密状态等,以及处理异常情况,包括超时未响应、连接断开无响应等。
59.具体地,状态追踪单元102其作用主要分为两个部分:一是基于tls协议规范为消息映射单元101提供当前协议流的状态信息,辅助构造tls数据包,确保数据包特定字段的数值能够反映目标系统的状态信息。二是解析来自目标系统的tls数据包,提取特定字段的关键信息。关键信息例如是密码套件,加密算法,警报代码等。
60.基于现有技术的多处缺陷,本发明提供的基于有限状态机的tls指纹信息识别方法及系统,设置有模型推演模块200。模型推演模块200基于协议软件库具有不同的交互逻辑,通过分析协议状态机来提取协议指纹,从而能够识别出协议软件库的细粒度信息,具有识别服务端协议实现版本更为精准的效果。
61.如图1所示,模型推演模块200推演tls协议实现状态机的方法至少包括:
62.s11:模型学习单元201基于状态机学习算法,通过测试单元11与目标协议实现交互。模型学习单元201基于主动学习算法根据预定义的输入输出字母表自动发送测试请求序列。该请求序列由一系列相关的抽象字符消息构成。
63.主动学习算法:现有的状态机学习算法主要分为主动学习和被动学习两种方式。主动学习通过主动向待测程序发送请求来获取构造状态机所需要的信息,而被动学习则是利用已有的数据集来构造状态机。与被动学习相比,主动学习能提供待测程序更完整的行为模型。常见的主动学习算法包括l*算法、ttt算法等。
64.其中,模型学习单元201采用的状态机学习技术基于开源模型学习框架的主动学习算法实现。主动学习算法定义了两种类型的查询来收集有关目标协议实现的信息:成员查询和等价查询。状态机学习算法要求能捕获目标tls实现的深层状态信息。深层状态信息可通过观察目标协议实现的i/o,结合白盒或灰盒分析方法进行识别。
65.优选地,模型学习单元201根据协议状态机学习算法生成测试请求序列,或者收集目标tls实现的网络流量轨迹。若选择主动学习算法,模型学习单元201根据预定义的输入输出字母表自动发送测试请求序列以进行状态机推演。
66.若选择被动学习算法,模型学习单元201利用预收集的网络数据包轨迹进行状态机推演。判断推演的状态机模型是否表征了目标tls实现的完整行为,若是则输出状态机模型,分别提取各个状态机模型的特征,并进行聚类处理;否则重新生成测试请求序列,继续进行下一轮迭代以修正状态机模型。
67.模型学习单元201利用基于黑盒系统12预定义的输入字母表的符号记录构建此类输入序列并在待测系统上执行。同时捕获黑盒系统12的输出更新主动学习算法的观察表,实现成员查询。在每次成员查询之后,需要检查观察表是否满足一致性和闭合性。若不满足,则构建新的输入序列继续进行成员查询;若满足,则生成一个虚拟状态机14并进行等价查询。
68.等价查询的实现依赖模型验证单元202中的一致性测试算法,例如w-method。如果该虚拟状态机14通过了模型验证单元202的一致性测试,则为模型推演模块200的最终输出。否则,模型验证单元202会向模型学习单元201提供一个反例信息,用于进一步优化该虚拟状态机14。重复上述步骤,直至虚拟状态机14通过模型验证单元202的一致性测试。
69.成员查询是状态机学习算法的核心,常见的状态机学习算法包括angluin l*算法和ttt算法。
70.与现有技术相比,本发明的模型推演模块的推演步骤具体的优势包括:基于协议软件库往往具有不同的交互逻辑,通过分析协议状态机来提取协议指纹,使得能识别出协议软件库的细粒度信息,具有识别服务端协议实现版本更为精准的效果。
71.s12:响应于模型学习单元201发出的测试请求序列信息,测试单元11向黑盒系统12发送具体请求序列信息。具体请求序列信息被测试单元11自动映射为抽象请求序列。抽象请求序列表示由主动学习算法生成的测试请求序列。具体请求序列要求数据包结构和各字段取值均合规。
72.s21:黑盒系统12向真实状态机14发送具体请求序列信息。真实状态机14基于该序列信息进行状态迁移,并且反馈输出信息序列。其中,黑盒系统12接收的输出信息序列并构造具体响应序列,返回至测试单元11。输出信息序列本质上是目标协议实针对特定消息序
列做出的响应。
73.s22:测试单元11向模型学习单元201发送自动映射具体响应序列以进行抽象响应,以供模型学习单元201推演目标tls实现的行为模型。自动映射抽象消息序列与具体数据包序列,要求与目标tls实现进行有状态交互。自动映射抽象消息序列包括跟踪密码材料和随机数,生成密钥,执行加密和异常情况处理等操作。
74.其中,抽象消息与具体消息的自动映射通过测试工具实现。测试工具基于开源的密钥协议软件库设计实现,负责将具体的网络数据包映射为系统能处理的抽象字母表,从而将模型学习算法与加解密算法相分离,有效解决了密码算法的复杂性和密码协议的状态性导致的系统性能受限和测试覆盖率较低的问题。
75.映射要求是双射,即每个可能的具体消息有且仅有一个抽象消息与之对应。
76.需要说明的是,将常用的tls协议消息进行抽象,能够有效解决状态机推演过程中发送大量无效消息引起效率低下的问题。tls协议常用消息的抽象输入输出字母表如表1所示.
77.表1:tls协议常用消息的抽象输入输出字母表
[0078][0079]
s31:模型验证单元202终止成员查询,结合多次成员查询更新主动学习算法的观察表生成虚拟状态机14。
[0080]
模型验证单元202判断并终止成员查询,生成虚拟状态机14需要满足两个条件,分别是:当前更新后的观察表满足完整性,即观察表中的每一个推断出来的状态是唯一确定的;当前更新后的观察表满足封闭性,即当前观察表中不会出现新的未知的状态。
[0081]
s32:模型验证单元202利用等价查询算法判断推演的虚拟状态机14是否能够表征目标黑盒系统12的完整行为。
[0082]
等价查询采用近似等价查询算法进行一致性检测,其原理是通过有限数量的测试查询将推演的虚拟状态机14与真实状态机13实现进行比较,如果发现差异则输出一个反例描述两者的差异,该反例用于更新观察表并进一步优化虚拟状态机14,否则认为推演的虚拟状态机14已经足够代表黑盒系统12的行为特征。
[0083]
指纹提取模块600用于解析状态机模型并提取目标tls实现的多级指纹。优选地,
指纹提取模块600至少包括:模型解析单元601,用于提取状态机模型的特征并进行聚类处理;模型对比单元602,用于将不同类别状态机模型进行对比分析,得到第一范围内的至少一种指纹信息,即第一范围指纹。指纹提取单元603,用于计算每种类别状态机与所存储的状态机两两对比结果的交集,得到第二范围的指纹信息,即第二范围指纹。优选地,模型对比单元602,用于将不同类别状态机模型进行两两对比分析。
[0084]
第一范围指纹:第一状态机a与第二状态机b相比所特有的通路,即第一状态机a中含有但第二状态机b中不含有的通路集合。
[0085]
第二范围指纹:第一状态机a与所有已知的其它状态机相比所特有的通路,即第一状态机a中含有但状态机模型库400中的其他状态机都不含有的通路集合。
[0086]
模型对比单元602用于将不同状态机模型进行两两对比分析以获得第一范围指纹。此种对比包含两个对象,分别是第一状态机a和第二状态机b。通过对是第一状态机a和第二状态机b进行遍历比较,最终得到仅在第一状态机a中包含但是第二状态机b中不包含的若干通路信息。这些通路信息的集合称为第一状态机a相对于第二状态机b的第一范围指纹。通过这个方法得出的第一状态机a相对于其他所有被测状态机的第一范围指纹集合被称为第一状态机a的第一范围指纹集合。
[0087]
指纹提取单元603用于计算状态机的第一范围指纹集合中的相同部分以获得第二范围指纹。以第一状态机a的第一范围指纹集合举例,集合中每个个体集合的相同部分为仅包含于第一状态机a而不包含于其余所有状态机的通路信息集合。该相同部分被称为第一状态机a的第二范围指纹。
[0088]
将状态机模型进行两两对比分析,其中比较分析的内容包括通路信息、节点属性、边属性。
[0089]
提取状态机模型的特征的步骤包括:
[0090]
将状态机解析为一种特殊的图结构,获得节点数和边数,以及节点属性和边属性。根据状态机的图结构信息识别起始节点与终止节点,或者人为指定起始节点与终止节点。根据起始节点和终止节点,结合图遍历算法,计算状态机的通路信息。聚类处理是将相同的状态机模型分配相同类别。
[0091]
优选地,在存在至少一个类别状态机模型无指纹信息的情况下,指纹提取单元603过滤掉已发现指纹的状态机模型并且向模型对比单元602反馈重新对比指令,否则,指纹提取单元603输出所有指纹。
[0092]
部分类别的状态机可能需要多次过滤迭代后才能获得指纹,将这种多次迭代后才提取的指纹称为多级指纹。将无需过滤迭代就能提取出来的指纹称为一级指纹,随后每迭代一次,指纹层级加一。
[0093]
优选地,指纹提取模块600包括指纹更新单元604。指纹更新单元604用于对多级指纹进行增量更新。
[0094]
指纹更新单元604更新指纹的步骤至少包括:计算目标tls实现的指纹;根据指纹信息所处层级,更新层级下已有的所有指纹;分别将层级下已有指纹对应的状态机模型与目标tls实现的状态机模型进行对比,获得各个状态机模型与目标tls实现状态机的两两对比结果;将各个状态机模型的指纹与两两对比结果取交集,作为更新后的指纹。
[0095]
当发现新的tls状态机模型指纹时,已有的多级指纹只需要经指纹更新单元进行
增量更新,而无需重新计算,保证了系统的可扩展性。
[0096]
优选地,如图2所示,本发明还提供一种多级指纹提取方法,包括以下步骤:
[0097]
s101:解析状态机模型进行特征聚类,此时层级为0。
[0098]
s102:基于特征提取第一范围指纹信息。
[0099]
s103:取第一范围指纹的交集计算第二范围指纹信息,
[0100]
s104:判断是否存在指纹模型,若存在指纹模型,则获得多级指纹。若不存在指纹模型,那么指纹层级加一,返回步骤s102。
[0101]
版本识别模块300用于验证多针指纹的有效性和/或识别未知tls实现的版本信息。
[0102]
优选地,版本识别模块300至少包括指纹匹配单元301和指纹验证单元302。指纹匹配单元301用于根据多级指纹识别未知tls协议实现的版本信息;指纹验证单元302用于验证多级指纹的有效性。
[0103]
与现有技术中的基于单个特征库进行指纹提取的方法相比,本发明的版本识别模块300和指纹提取模块60)采取基于多级指纹的提取机制,并且对于指纹信息进行聚类处理和对比分析,在识别未知tls软件库时能使用更少的数据包序列,尽可能减少对网络环境的影响,同时更具隐蔽性。
[0104]
优选地,指纹验证单元通过随机选择模拟一个真实世界下的tls实现来验证多级指纹是否能有效识别其版本信息。指纹验证单元会随机选择某个版本的tls实现,并自动配置部署为docker服务,然后根据多级指纹池进行指纹匹配,最后将匹配指纹的版本与docker服务的版本信息进行对比,如果相同则认为指纹有效。
[0105]
多级指纹池500用于维护已知的tls实现的多级指纹数据,同时响应于版本识别模块300发送的指纹请求信息,向版本识别模块300发送与目标tls实现对应的多级指纹信息。
[0106]
本发明通过推演tls实现的状态机模型,并在此基础上引入多级指纹提取算法,识别tls实现的类型和版本信息,解决了现有网络协议识别方法无法识别细粒度协议信息的问题。
[0107]
本发明还提供一种基于有限状态机的tls指纹信息识别方法,方法至少包括:基于消息映射模块100发送的映射信息推演目标tls实现的状态机模型;解析状态机模型并提取目标tls实现的多级指纹;验证多针指纹的有效性和/或识别未知tls实现的版本信息。
[0108]
识别未知tls协议实现版本信息的步骤包括:
[0109]
从一级指纹开始,发送指纹请求序列,观察待测协议实现的响应序列是否与指纹响应序列相同,若是则待测协议实现的类型版本与该指纹所属状态机类别的类型版本相同,否则验证下一条指纹;若所有一级指纹中未找到匹配项,则验证二级指纹中是否存在匹配项,以此类推,直至识别待测协议实现的版本信息。
[0110]
优选地,方法还包括:计算目标tls实现的指纹;根据指纹信息所处层级,更新层级下已有的所有指纹;分别将层级下已有指纹对应的状态机模型与目标tls实现的状态机模型进行对比,获得各个状态机模型与目标tls实现状态机的两两对比结果;将各个状态机模型的指纹与两两对比结果取交集,作为更新后的指纹。
[0111]
本发明提供的基于有限状态机的tls指纹提取与版本识别方法无需人工标注数据,模型推演模块、消息映射模块、指纹提取模块和版本识别模块均高度自动化,从而保证
了系统的易用性,指纹提取效率更高。
[0112]
从以上描述可知,本发明中的多级指纹方法,对状态机进行特征提取和聚类,进行两两分析对比找出状态机指纹,过滤已发现指纹的状态机模型反复迭代上述步骤,最终确定出所有类别状态机模型的指纹,实现细粒度版本识别。
[0113]
本发明对应用场景进行如下举例。
[0114]
现假定攻击者a想攻击某公司的网络服务器s。攻击者a若采用传统协议指纹方法需要进行遍历指纹库并且发送大量探测数据包来逐个匹配识别网络服务器s的协议类别,这十分容易被公司网络管理员发现和拦截。
[0115]
本发明的基于有限自动机的tls指纹识别系统使得a可以通过多级指纹池500只需发送极少的探测数据包即可知道网络服务器s的tls协议软件库和具体版本,效率更高且隐蔽性更强。进一步,攻击者a结合tls漏洞库和网络服务器s的版本信息,可对网络服务器s进行针对性攻击。
[0116]
而作为防御方,网络服务器s可以利用本发明的系统提取已部署的tls软件库的指纹信息,通过消除已部署的tls软件库的指纹或者结合网络防火墙对于符合指纹的数据包序列进行针对处理,提高系统安全性。
[0117]
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。本发明说明书包含多项发明构思,诸如“优选地”、“根据一个优选实施方式”或“可选地”均表示相应段落公开了一个独立的构思,申请人保留根据每项发明构思提出分案申请的权利。

技术特征:
1.一种基于有限状态机的tls指纹信息识别系统,其特征在于,其至少包括:模型推演模块(200),用于基于消息映射模块(100)发送的映射信息推演目标tls实现的状态机模型;指纹提取模块(600),用于解析所述状态机模型并提取目标tls实现的多级指纹;版本识别模块(300),用于验证所述多针指纹的有效性和/或识别未知tls实现的版本信息。2.根据权利要求1所述的基于有限状态机的tls指纹信息识别系统,其特征在于,所述模型推演模块(200)与状态机模型库(400)建立连接,所述模型推演模块(200)基于模型验证单元(202)中等价查询算法验证推演的状态机模型是否表征了目标tls实现的完整行为;若验证成功,则将推演的状态机模型存储至状态机模型库(400),若验证失败,则将反例信息反馈至模型学习单元(201)以指导重新推演模型,直至验证成功。3.根据权利要求1或2所述的基于有限状态机的tls指纹信息识别系统,其特征在于,所述模型推演模块(200)至少包括模型学习单元(201)和模型验证单元(202),所述模型学习单元(201)用于根据状态机学习算法推演目标tls实现的状态机模型;所述模型验证单元(202)用于判断推演的状态机模型是否表征了目标tls实现的完整行为。4.根据权利要求1~3任一项所述的基于有限状态机的tls指纹信息识别系统,其特征在于,所述指纹提取模块(600)至少包括:模型解析单元(601),用于提取状态机模型的特征并进行聚类处理;模型对比单元(602),用于将不同类别状态机模型进行对比分析,得到第一范围内的至少一种指纹信息;指纹提取单元(603),用于计算每种类别状态机与所存储的状态机对比结果的交集,得到第二范围的指纹信息。5.根据权利要求1~4任一项所述的基于有限状态机的tls指纹信息识别系统,其特征在于,在存在一部分状态机模型无指纹信息的情况下,指纹提取单元(603)过滤掉已发现指纹的状态机模型并且向所述模型对比单元(602)反馈重新对比指令,否则,指纹提取单元(603)输出所有指纹。6.根据权利要求1~5任一项所述的基于有限状态机的tls指纹信息识别系统,其特征在于,所述指纹提取模块(600)包括指纹更新单元(604),所述指纹更新单元(604)更新指纹的步骤至少包括:计算目标tls实现的指纹;根据所述指纹信息所处层级,更新所述层级下已有的所有指纹;分别将所述层级下与已有指纹对应的状态机模型与目标tls实现的状态机模型进行对比,获得各个状态机模型与目标tls实现状态机的对比结果;将各个状态机模型的指纹与对比结果取交集,作为更新后的指纹。7.根据权利要求1~6任一项所述的基于有限状态机的tls指纹信息识别系统,其特征在于,所述版本识别模块(300)至少包括指纹匹配单元(301)和指纹验证单元(302),所述指纹匹配单元(301)用于根据多级指纹识别未知tls协议实现的版本信息;
所述指纹验证单元(302)用于验证多级指纹的有效性。8.根据权利要求1~7任一项所述的基于有限状态机的tls指纹信息识别系统,其特征在于,所述系统还包括多级指纹池(500),所述多级指纹池(500)用于维护已知的tls实现的多级指纹数据,同时响应于所述版本识别模块(300)发送的指纹请求信息,向所述版本识别模块(300)发送与目标tls实现对应的多级指纹信息。9.一种基于有限状态机的tls指纹信息识别方法,其特征在于,所述方法至少包括:基于消息映射模块(100)发送的映射信息推演目标tls实现的状态机模型;解析所述状态机模型并提取目标tls实现的多级指纹;验证所述多针指纹的有效性和/或识别未知tls实现的版本信息。10.根据权利要求9所述的基于有限状态机的tls指纹信息识别方法,其特征在于,所述方法还包括:计算目标tls实现的指纹;根据所述指纹信息所处层级,更新所述层级下已有的所有指纹;分别将所述层级下已有指纹对应的状态机模型与目标tls实现的状态机模型进行对比,获得各个状态机模型与目标tls实现状态机的两两对比结果;将各个状态机模型的指纹与两两对比结果取交集,作为更新后的指纹。

技术总结
本发明涉及一种基于有限状态机的TLS指纹信息识别方法及系统所述系统其至少包括:模型推演模块(200),用于基于消息映射模块(100)发送的映射信息推演目标TLS实现的状态机模型;指纹提取模块(600),用于解析所述状态机模型并提取目标TLS实现的多级指纹;版本识别模块(300),用于验证所述多针指纹的有效性和/或识别未知TLS实现的版本信息。与其他网络协议识别系统相比,本发明能识别判断出TLS协议的具体实现类型和版本等细粒度信息,同时本发明的方法高度自动化,具备较好的可用性和可扩展性。性。性。


技术研发人员:袁斌 刘欢 任家俊 陈群锦明 邹德清 金海
受保护的技术使用者:华中科技大学
技术研发日:2023.04.07
技术公布日:2023/8/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐