[发明专利]一种基于消息字段分隔符识别的网络协议逆向分析方法在审
申请号: | 201710894554.4 | 申请日: | 2017-09-28 |
公开(公告)号: | CN107707540A | 公开(公告)日: | 2018-02-16 |
发明(设计)人: | 闫佳;苏璞睿;杨轶;和亮;聂楚江;贾相堃 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/26 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙)11200 | 代理人: | 余长江 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 消息 字段 分隔 识别 网络 协议 逆向 分析 方法 | ||
技术领域
本发明属于网络安全技术领域,尤其涉及一种采用二进制软件基于消息字段分隔符识别的网络协议逆向分析方法。
背景技术
随着社会的不断发展和进步,互联网在社会各个领域的应用越来越广泛,其中,作为互联网主机和服务器之间进行网络通信基本规范的网络协议,扮演着越来越重要角色。网络协议及其实现的分析逐渐成为软件安全分析的重要领域之一,尤其是在网络痕迹提取、网络审计管理、网络攻击检测等领域得到广泛应用,对网络协议的逆向分析技术提出了更高的要求。
工业界和学术界纷纷投入到协议自动化逆向方法的研究,并取得了大量成果,其分析方法主要以流量分析方法为主,即截获客户端和服务端之间的通信流量,通过各种聚类分析方法提取协议消息中相似的语法结构和有意义的关键字。代表性工作包括Protocol Informatics项目提出的字节序列匹配和对齐的字段切分方法,RolePlay和ScriptGen等工作也是在网络地址、字节和Cookie等特征字段识别的基础上进行字节级的序列匹配方法实现消息格式恢复,微软的Cui WeiDong等提出的基于消息内二进制和字符串排列模式的聚类分析方法,大多数方法都在某种程度上使用了Needleman-Wunsch算法进行序列对齐和匹配。
尽管基于流量的协议逆向分析方法在应用于实际协议分析中有一定效果,但仍由于该方法只能针对有限的流量数据进行分析,面临着以下难以解决的问题:
(1)该方法往往将消息中的个别特征字符串识别为类型关键字,导致同一类型的不同协议消息划分为不同类型,并将错误传导到后续分析中,严重影响消息格式恢复的精确度;
(2)有限的流量数据无法对协议消息中字段长度和字段间关系进行精确界定,往往存在较大误差,无法满足实际协议分析对逆向工程的需求。
发明内容
本发明的目的在于提出一种基于消息字段分隔符识别的网络协议逆向分析方法,通过动态污点传播技术定位协议消息分隔符和分隔符作用范围,实现协议逆向的字段分隔和字段关系划分,提高网络协议逆向分析效率。
为达到上述目的,本发明采用如下技术方案:
一种基于消息字段分隔符识别的网络协议逆向分析方法,其步骤包括:
1)在可控软件动态执行环境下,令网络协议对应的目标软件执行网络接收函数,获取缓冲区数据,并记录所有的执行指令序列;
2)将所述缓冲区数据标记为污点,并根据所述执行指令序列进行字节级的多标签污点传播,获取污点的指令记录序列;
3)从所述指令记录序列中提取比较指令,该比较指令包含两个操作数,一带有污点标签,另一为单字节或双字节常数,将为常数的操作数视为潜在分隔符;
4)统计每个潜在分隔符对应的全部污点标签,获得污点标签集合,对每个污点标签集合中的污点标签进行排序,得到对应潜在分隔符的作用域,如果作用域的序列连续且长度大于2,则所述潜在分隔符视为分隔符;
5)基于所诉分隔符对所述缓冲区数据进行字段划分,并基于其作用域提取字段关系,实现网络协议的逆向分析。
进一步地,所述可控软件动态执行环境基于用户态(Pintool,Valgrind等工具)、内核驱动或者虚拟机(Qemu)技术实现。
进一步地,所述网络接受函数在Windows系统上为recv、recvfrom、WSARecv、WSARecvFrom、NtFileDeviceIoControl。
进一步地,所述多标签污点传播的步骤包括污点标记、污点传播计算和污点相关信息提取。
进一步地,所述污点标记的方法是:将特定内存地址标记为原始污点标签,设置与被分析进程内存空间相同的影子内存,以记录该特定内存地址的污点状态信息,该污点状态信息包括内存地址是否为污点、污点来自哪个原始污点标签。
进一步地,所述污点传播计算的方法是:遍历所述执行指令序列,从所述影子内存中获取指令操作数的污点状态,如果其源操作数为污点,则标记其目的操作数为污点并记录污点标签,否则清除其目的操作数的污点标记,按照指令的操作语义更新每条指令的影子内存的污点状态。
进一步地,所述污点相关信息提取方法是在污点传播过程中或完成后依据特定的应用需求提取污点相关的指令信息。
进一步地,所述常数的单字节值为0至255。
进一步地,所述作用域的序列连续是指污点标签对应的缓冲区数据的字符是连续的,如一分隔符的污点标签集合为{3,4,5,6},分别对应缓冲区数据的第3到第6个字节,四个字节是连续的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710894554.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:无人机的光伏温差发电装置及其无人机
- 下一篇:一种新型太阳能发电设备