(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210425749.5
(22)申请日 2022.04.21
(71)申请人 浙江工业大 学
地址 310014 浙江省杭州市下城区潮王路
18号
(72)发明人 吕明琪 何功勋 朱添田 陈铁明
(74)专利代理 机构 杭州求是专利事务所有限公
司 33200
专利代理师 忻明年
(51)Int.Cl.
G06F 21/56(2013.01)
G06F 40/284(2020.01)
G06F 40/289(2020.01)
G06F 40/30(2020.01)
(54)发明名称
一种基于API语义 解析的恶意软件检测方法
(57)摘要
本发明公开了一种基于API语义解析的恶意
软件检测方法, 包括基于API调用序列样本学习
得到每个API的表征向量, 将API名称分词为单词
并计算得到每个单词的表征向量; 基于API名称
和单词集合构建 以API和单词作为节点的API图
谱, 采用图卷积神经网络更新所有节 点的表征向
量; 获取API调用序列样本, 基于API图谱中各API
节点的表征向量将API调用序列 样本转化为表征
向量序列 样本, 利用标注后的表征向量序列 样本
训练LSTM网络得到识别模型; 对于待识别的实时
API调用序列, 利用API图谱转化为实时表征向量
序列, 将实时表征向量序列输入识别模型得到恶
意软件检测结果。 本发明有效提高对恶意软件的
检测能力。
权利要求书1页 说明书4页 附图2页
CN 114996700 A
2022.09.02
CN 114996700 A
1.一种基于API语义解析的恶意软件检测方法, 其特征在于, 所述基于API语义解析的
恶意软件检测方法, 包括:
步骤1、 基于API调用序列样本学习得到每个API的表征向量, 将API名称分词为单词集
合, 计算得到单词集 合中每个单词的表征向量;
步骤2、 基于API名称和单词集合构建以API和单词作为节点的API图谱, 采用图卷积神
经网络更新API图谱中API节点和单词节点的表征向量;
步骤3、 获取API调用序列样本, 基于API图谱中各API节点的表征向量将API调用序列样
本转化为表征向量序列样本, 利用标注后的表征向量序列样本训练LSTM网络得到识别模
型;
步骤4、 对于待识别的实时API调用序列, 利用所述API图谱转化为实时表征向量序列,
将实时表征向量序列输入所述识别模型 得到恶意软件检测结果。
2.如权利要求1所述的基于API语义解析的恶意软件检测方法, 其特征在于, 所述基于
API调用序列学习得到每 个API的表征向量, 包括:
对每个API设定一个唯一的标识符;
根据API调用序列得到对应的标识符序列, 组合若干标识符序列形成标识符序列集 合;
采用word2vec对标识符序列集 合进行学习, 得到每 个API的表征向量。
3.如权利 要求1所述的基于API语义解析的恶意软件检测方法, 其特征在于, 所述将API
名称分词为单词集 合, 包括:
基于骆驼命名法对每 个API名称进行分词;
将分词得到的所有单词进行汇总去重得到单词集 合。
4.如权利要求1所述的基于API语义解析的恶意软件检测方法, 其特征在于, 所述计算
得到单词集 合中每个单词的表征向量, 包括:
对所述单词集合中的已知英文单词采用预训练的word2vec英文单词词向量作为表征
向量, 对所述单词集 合中的未知单词则随机初始化表征向量。
5.如权利 要求1所述的基于API语义解析的恶意软件检测方法, 其特征在于, 所述API图
谱构建为图谱AG=(V,E,A), 其中V为节点集合, 包含所有API和单词; E为边集合, 包含所有
API与单词的关联, 包含在API名称中的单词与该API之间存在一条边; A为属性集合, API节
点的属性 为API的表征向量, 单词节点的属性 为单词的表征向量。权 利 要 求 书 1/1 页
2
CN 114996700 A
2一种基于API语 义解析的恶意软件检测方 法
技术领域
[0001]本发明属于机器学习与信息安全技术领域, 具体涉及一种基于API语义解析的恶
意软件检测方法。
背景技术
[0002]恶意软件指任何用于损害计算机、 服务器或计算机网络 的软件。 恶意软件包括病
毒、 蠕虫、 木马、 勒索软件等多种形式。 恶意软件是威胁个人、 企业、 国家信息安全的一个严
重问题。 与传统的网络威胁相比, 恶意软件具有变种多、 更新快、 隐蔽性高等特点。 因此, 如
何有效地检测恶意软件, 是信息安全领域的一个重要的研究主题。
[0003]现有的恶意软件检测方法主要分为静态检测和动 态检测两大类。 静态检测通过对
软件代码的特征和文件的结构进 行分析来实现检测。 静态检测的优势在于不需要实际运行
软件, 因此检测的代 价较小。 然而, 软件打包、 代码混淆等技术可以轻易 躲避静态检测。 动态
检测通过在沙箱(Sandbox)环 境中实际运行软件, 并通过分析其行为来 实现检测。 动态检测
的优势在于不受软件打包、 代码混淆等扰动的影响。
[0004]API调用是软件动态运行过程中最重要的行为, 因此分析AP I调用序列是实现恶意
软件动态检测的重要手段。 API调用序列分析的主要 方法包括序列模式挖掘(如最长公共子
序列挖掘)、 依赖图分析(如路径分析)、 时序模型(如LSTM)。 然而, 现有基于API调用序列分
析的恶意软件检测方法存在以下不足: 现有方法将API看成一个独立的个体, 仅考虑API调
用的顺序规律, 忽略了API本身内部的语义(一个API的名称往往由多个有意义的单词构成,
如CreateThrea d、 WriteProc essMemory, 这些单词能大致描 述API行为的潜在作用)。 忽略这
些语义会造成如下问题: 1)作用类似的两个API会被看成完全不同, 使 得检测模型的泛化能
力大大降低。 2)检测模型 无法处理未知的API。
发明内容
[0005]本发明的目的在于提供一种基于API语义解析的恶意软件检测方法, 提高恶意软
件检测能力。
[0006]为实现上述目的, 本发明所采取的技 术方案为:
[0007]一种基于AP I语义解析的恶意软件检测方法, 所述基于AP I语义解析的恶意软件检
测方法, 包括:
[0008]步骤1、 基于API调用序列样本学习得到每个API的表征向量, 将API名称分词为单
词集合, 计算得到单词集 合中每个单词的表征向量;
[0009]步骤2、 基于API名称和单词集合构建以API和单词作为节点的API图谱, 采用图卷
积神经网络更新API图谱中API节点和单词节点的表征向量;
[0010]步骤3、 获取API调用序列样本, 基于API图谱中各API节点的表 征向量将API调用序
列样本转化为表征向量序列样 本, 利用标注后的表征向量序列样 本训练LSTM网络得到识别
模型;说 明 书 1/4 页
3
CN 114996700 A
3
专利 一种基于API语义解析的恶意软件检测方法
文档预览
中文文档
8 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共8页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 17:44:38上传分享