[发明专利]一种基于自然语言理解函数原型发现内存破坏漏洞的方法在审
申请号: | 201911083435.6 | 申请日: | 2019-11-07 |
公开(公告)号: | CN112783755A | 公开(公告)日: | 2021-05-11 |
发明(设计)人: | 王健强;杨文博;束骏亮;李卷孺;张媛媛 | 申请(专利权)人: | 上海蜚语信息科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海宏京知识产权代理事务所(普通合伙) 31297 | 代理人: | 周高 |
地址: | 201516 上海市金山*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 自然语言 理解 函数 原型 发现 内存 破坏 漏洞 方法 | ||
本发明提供一种基于自然语言理解函数原型发现内存破坏漏洞的方法,涉及软件安全领域,所述方法包括步骤一:提取源代码中的函数原型,作为待比较函数原型;步骤二:提取注释中的语料生成一个自适应语料库;步骤三:使用自适应语料库对待比较函数原型进行函数原型分割,将待比较函数原型分割成为一组单词或者短语;步骤四:选取已知函数语义的函数原型作为参考函数原型,通过参考函数原型对待比较函数原型类型进行判断;步骤五:用函数匹配列表中的匹配信息标记待检测的源代码,并将函数漏洞规则作为符号执行的输入检测内存破坏型漏洞。通过提取源代码中的内存管理函数来降低静态源代码漏洞检测中产生的漏报。
技术领域
本发明涉及软件安全领域,特别是涉及一种基于自然语言理解函数原型发现内存破坏漏洞的方法。
背景技术
内存破坏型漏洞的产生很大一部分原因是因为软件开发人员不正确的管理动态内存。管理动态内存通常包括比较复杂的内存管理逻辑,因此软件开发人员通常使用内存管理函数来进行动态内存管理。但是,不正确的使用内存管理函数会导致内存破坏性型漏洞的产生(例如,在释放完内存后,立马使用这块内存,重复地释放同一块内存),在静态源代码漏洞检测中,检测内存破坏型漏洞的方法包括:模式匹配、符号执行、指针分析等。有效地在源代码静态检测阶段发现源代码中可能存在的内存破坏型漏洞能够减少软件发布版本的漏洞,能够提升软件安全性,防止软件被恶意用户所利用。
现有的静态源代码漏洞检测中,检测内存破坏型漏洞的方法仅仅考虑由于C/C++等标准库内存管理函数,例如:malloc(memory allocation,动态内存分配)等标准库内存管理函数使用不当所带来的内存破坏型漏洞。但是,在实际软件开发过程中,软件开发人员除了会使用标准库内存管理函数,还会使用第三方库内存管理函数,在这种情况下,现有的静态源代码漏洞检测中依然仅仅依赖标准库的内存管理函数是不够的,在实际静态源代码漏洞检测中会产生漏报。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于自然语言理解函数原型发现内存破坏漏洞的方法,通过提取源代码中的内存管理函数来降低静态源代码漏洞检测中产生的漏报。
本发明提供一种基于自然语言理解函数原型发现内存破坏漏洞的方法,所述方法包括以下步骤:
步骤一:在源代码进入预处理阶段,对源代码进行特征抓取,提取源代码中的函数原型,作为待比较函数原型;
步骤二:对源代码注释进行特征抓取,提取注释中的语料生成一个自适应语料库;
步骤三:在语义提取阶段,使用自适应语料库对待比较函数原型进行函数原型分割,将待比较函数原型分割成为一组单词或者短语;
步骤四:选取已知函数语义的函数原型作为参考函数原型,分割生成一个语境语料库,使用语境语料库比较待比较函数原型和参考函数原型,使用选取的参考函数原型的返回值类型、参数类型对待比较函数原型类型进行判断,如果类型相同,则待比较函数原型对应的函数是内存管理函数,如果返回类型不同,则该带比较函数原型对应的函数不是内存管理函数;
步骤五:若函数原型对应的函数是内存管理函数,则将对应的函数列入函数匹配列表,用函数匹配列表中的匹配信息标记待检测的源代码,并且将已知函数漏洞规则作为符号执行的输入检测内存破坏型漏洞,最后输出相应的检测报告。
于本发明的一实施例中,所述自适应语料库中还包括有微软开发者手册函数列表和谷歌网络词语的语料。
于本发明的一实施例中,所述语境语料库与编程语料强相关。
于本发明的一实施例中,所述参考函数原型为一个或者多个。
于本发明的一实施例中,采用余弦相似度计算方法对参考函数原型的和待比较函数原型进行类型判断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海蜚语信息科技有限公司,未经上海蜚语信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911083435.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种单排摆放的悬挂电能表
- 下一篇:冰箱