(19)中华 人民共和国 国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210299498.0
(22)申请日 2022.03.25
(71)申请人 北京长亭未来科技有限公司
地址 100024 北京市海淀区学清路768创意
产业园D座0 5
(72)发明人 陈靖远 李昌志 蒋倩 张嘉欢
(74)专利代理 机构 深圳睿臻知识产权代理事务
所(普通合伙) 44684
代理人 张海燕
(51)Int.Cl.
H04L 9/32(2006.01)
H04L 67/02(2022.01)
G06F 16/903(2019.01)
G06F 40/253(2020.01)
(54)发明名称
一种Webshell的骨架刻 画及检测方法、 装置
与设备
(57)摘要
本发明实施例提供了一种Webshell的骨架
刻画及检测方法、 装置与设备, 通过对已知
Webshell进行词法解析, 并对其进行合理泛化,
刻画出已知Webshell的骨 架, 据此构建Websh ell
骨架数据库; 以相同的方式刻画待检测代码的骨
架, 在已构建的Websh ell骨架数据库中查询是否
存在匹配的骨架, 从而判断待检测代码是否为
Webshell。 本发明实施例使Websh ell检测高效且
准确, 同时具有极强的适应性和扩展性, 可以对
多种语言编写的代码进行检测, 且在真实的检测
环境能够达 到较为理想的检测效果。
权利要求书3页 说明书9页 附图1页
CN 114422148 A
2022.04.29
CN 114422148 A
1.一种Webshel l的骨架刻画及检测方法, 其特 征在于, 所述方法包括:
将已知的Webshel l文件解析为第一To ken序列;
将所述第一To ken序列进行骨架刻画得到第二To ken序列;
将所述第二To ken序列进行泛化得到第三To ken序列;
根据所述第三To ken序列签名的第一摘要值, 构建Webshel l骨架数据库;
提取待检测代码的骨架并基于所述Webshell骨架数据库判断待检测代码是否为
Webshell。
2.如权利要求1所述的一种Webshell的骨架刻画及检测方法, 其特征在于, 将已知的
Webshell文件解析为对应的第一To ken序列, 包括:
定义BaseToken结构体, 所述BaseToken结构体包括: string类型的Name和Text、 int类
型的Type;
定义BaseTo ken类型的to kens数组, 所述to kens数组用于保存解析完成的To ken序列;
根据已知的Webshell文件, 创建一个输入字符流, 将对应的词法分析器指定给该输入
字符流;
创建一个词法 符号流, 并将所述词法 符号流指定给对应的词法分析器;
通过词法分析器将字符流分解成若干词法 符号对象;
获取词法 符号流中所有的To ken到先前定义的to kens数组中, 形成第一To ken序列。
3.如权利 要求2所述的一种Webshell的骨架刻画及检测方法, 其特征在于, 将所述第一
Token序列进行骨架刻画得到第二To ken序列, 包括:
从所述第一To ken序列中对Webshel l意义无实质性影响的第一To ken进行过滤;
抽取所述第一To ken序列中的关键函数作为第一 Webshell骨架关键节点;
从所述第一To ken序列中抽取 具有关键意 义的符号作为第二 Webshell骨架关键节点;
由过滤后的所述第一Token序列, 利用所述第一Webshell骨架关键节点和第二
Webshell骨架关键节点形成所述第二To ken序列。
4.如权利 要求3所述的一种Webshell的骨架刻画及检测方法, 其特征在于, 将所述第二
Token序列进行泛化得到第三To ken序列, 包括:
对未被抽取的非骨架节点的第二Token对应泛化为IDENTIFIER、 STRINGLITERAL、
INTEGERLITERAL;
其中, 所述第二Token包括: 所述第二Token序列中的非骨架节点的变量、 类名、 函数、 字
符串、 数字 。
5.如权利 要求4所述的一种Webshell的骨架刻画及检测方法, 其特征在于, 根据所述第
三Token序列签名的第一摘要值, 构建Webshel l骨架数据库, 包括:
将所述第三Token序列中泛化为IDENTIFIER、 STRINGLITERAL、 INTEGERLITERAL的非骨
架节点分别记为第一泛化 点、 第二泛化 点、 第三泛化 点;
以IDE_x、 STR_y、 INT_z形式分别对所述第一泛化点、 所述第二泛化点、 所述第三泛化点
进行标记, 作为与所述Webshell文件对应的Webshell签名, 其中, x、 y、 z为整型数字, 表 示泛
化点类型的序号;
计算所述 Webshell签名的第一Hash值, 并将所述第一Hash值作为第一摘要值;
利用所述第一摘要值建立所述Webshell的索引并进行存储, 以供后续检测以及查询使权 利 要 求 书 1/3 页
2
CN 114422148 A
2用, 完成对所述 Webshell骨架数据库的构建。
6.如权利 要求5中所述的一种Webshell的骨架刻画及检测方法, 其特征在于, 提取待检
测代码的骨架并基于所述 Webshell骨架数据库判断待检测代码是否为 Webshell, 包括:
检查所述待检测代码是否经 过编码或混淆;
若所述待检测代码经过编码或混淆, 则对所述待检测代码进行解码或还原; 提取解码
或还原后的待检测代码的Webshel l骨架并泛化;
若所述待检测代码未经过编码或混淆, 则直接提取所述待检测代码的Webshell骨架并
泛化;
在已构建的Webshell骨架数据库 中查询是否存在与所述待检测代码匹配的Webshell
骨架;
若已构建的Webshell骨架数据库中存在与所述待检测代码匹配的Webshell骨架, 则所
述待检测代码为 Webshell;
若已构建的Webshell骨架数据库中不存在与所述待检测代码匹配的Webshell骨架, 则
所述待检测代码不 为Webshell。
7.如权利 要求6所述的一种Webshell的骨架刻画及检测方法, 其特征在于, 提取解码或
还原后的待检测代码的Webshell骨架并泛化, 或直接提取所述待检测代码的Webshell骨架
并泛化, 包括:
将解码或还原后的待检测代码解析为第四Token序列, 或直接将待检测代码解析为第
四Token序列;
从所述第四To ken序列中对Webshel l意义无实质性影响的第三To ken进行过滤;
抽取所述第四To ken序列中的关键函数作为第三 Webshell骨架关键节点;
从所述第四To ken序列中抽取 具有关键意 义的符号作为第四Webshel l骨架关键节点;
由过滤后的所述第四Token序列, 利用所述第三Webshell骨架关键节点和所述第四
Webshell骨架关键节点形成第五To ken序列;
对未被抽取的非骨架节点的第四Token对应泛化为IDENTIFIER、 STRINGLITERAL、
INTEGERLITERAL, 得到第六To ken序列;
其中, 所述第四Token包括: 所述第二Token序列中的非骨架节点的变量、 类名、 函数、 字
符串、 数字 。
8.如权利 要求7所述的一种Webshell的骨架刻画及检测方法, 其特征在于, 在已构 建的
Webshell骨架数据库中查询是否存在与所述待检测代码匹配的Webshel l骨架, 包括:
将所述第六Token序列中泛化为IDENTIFIER、 STRINGLITERAL、 INTEGERLITERAL的非骨
架节点分别记为第四泛化 点、 第五泛化 点、 第六泛化 点;
以IDE_x、 STR_y、 INT_z形式分别对所述第四泛化点、 所述第五泛化点、 所述第六泛化点
进行标记, 作为待检测代码签名, 其中, x、 y、 z为整型 数字, 表示泛化 点类型的序号;
计算所述待检测代码签名的第二Hash值, 并将所述第二Hash值作为第二摘要值;
在已构建的Webshell骨架数据库中, 查询是否存在与第二摘要值匹配的所述第一摘要
值;
若存在与第二摘要值匹配的所述第一摘要值, 则在已构 建的Webshell骨架数据库中存
在与所述待检测代码匹配的Webshel l骨架;权 利 要 求 书 2/3 页
3
CN 114422148 A
3
专利 一种Webshell的骨架刻画及检测方法、装置与设备
安全报告 >
其他 >
文档预览
中文文档
14 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思考人生 于 2024-02-07 20:40:28上传分享