CN115658542B - 一种代码密码算法类型识别与参数误用检测方法与系统 - Google Patents
一种代码密码算法类型识别与参数误用检测方法与系统 Download PDFInfo
- Publication number
- CN115658542B CN115658542B CN202211408890.0A CN202211408890A CN115658542B CN 115658542 B CN115658542 B CN 115658542B CN 202211408890 A CN202211408890 A CN 202211408890A CN 115658542 B CN115658542 B CN 115658542B
- Authority
- CN
- China
- Prior art keywords
- code
- risk
- information
- execution
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种代码密码算法类型识别与参数误用检测方法与系统,涉及安全检测技术领域,通过风险等级评估对代码进行风险等级标签标记,根据代码语义信息、风险等级进行引用执行信息确定和标签标记,基于风险标签和引用执行标签分别在风险代码库和规则代码库对代码信息进行遍历比对获得风险比对结果和规则比对结果,根据两类比对结果锁定代码异常区域,当代码异常区域满足异常设定要求时,生成异常标记。解决现有技术中存在对代码进行合规性和风险检测时,无效检测情形占据大量算力并导致检测时间浪费,导致对代码进行检测评估的效率较低的技术问题。达到准确高效的对风险代码进行识别,避免代码漏洞修复不及时引起系统安全故障的技术效果。
Description
技术领域
本发明涉及安全检测技术领域,具体涉及一种代码密码算法类型识别与参数误用检测方法与系统。
背景技术
随着计算机技术的发展,提高用户生产生活便捷性的各类服务程序层出不穷,而在手工编写或开源代码引入进行服务程序编写过程中,如若对于代码漏洞不及时进行检测以及修复,那么在代码运行过程中,代码漏洞在受到黑客攻击时,可能容易导致用户资料泄露甚至造成用户账户损失。
目前常见的代码漏洞检测方法为进行全域代码漏洞扫描,对于扫描所获漏洞进行定位以及修复处理。现有技术中存在对代码进行合规性和风险检测时,无效检测情形占据大量算力并导致检测时间浪费,导致对代码进行检测评估的效率较低的技术问题。
发明内容
本申请提供了一种代码密码算法类型识别与参数误用检测方法与系统,用于针对解决现有技术中存在对代码进行合规性和风险检测时,无效检测情形占据大量算力并导致检测时间浪费,导致对代码进行检测评估的效率较低的技术问题。
鉴于上述问题,本申请提供了一种代码密码算法类型识别与参数误用检测方法与系统。
本申请的第一个方面,提供了一种代码密码算法类型识别与参数误用检测方法,所述方法包括:对代码信息进行语义分析,获得代码语义信息;基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,并根据所述各代码风险等级对代码利用风险标签进行标记;根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记;获得代码数据库,其中,所述代码数据库包括风险代码库、规则代码库;基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果;基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果;根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记。
本申请的第二个方面,提供了一种代码密码算法类型识别与参数误用检测系统,所述系统包括:代码语义分析模块,用于对代码信息进行语义分析,获得代码语义信息;风险等级评估模块,用于基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,并根据所述各代码风险等级对代码利用风险标签进行标记;引用执行采集单元,用于根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记;数据资料获得模块,用于获得代码数据库,其中,所述代码数据库包括风险代码库、规则代码库;风险比对执行模块,用于基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果;规则比对执行模块,用于基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果;异常标记执行模块,用于根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记。
本申请中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的方法通过对代码信息进行语义分析,获得代码语义信息,为后续进行代码风险识别提供比对参考基准信息,基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,并根据所述各代码风险等级对代码利用风险标签进行标记,为后续结合风险等级进行低风险代码筛除降低检测时间和系统算力浪费提供筛选参考,根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记;获得代码数据库,其中,所述代码数据库包括风险代码库、规则代码库;基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果;基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果;根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记。达到了准确高效的对风险代码进行识别,避免代码漏洞修复不及时引起系统安全故障的技术效果。
附图说明
图1为本申请提供的一种代码密码算法类型识别与参数误用检测方法流程示意图;
图2为本申请提供的一种代码密码算法类型识别与参数误用检测方法中确定代码风险等级的流程示意图;
图3为本申请提供的一种代码密码算法类型识别与参数误用检测方法中获得规则比对结果的流程示意图;
图4为本申请提供的一种代码密码算法类型识别与参数误用检测系统的结构示意图。
附图标记说明:代码语义分析模块11,风险等级评估模块12,引用执行采集单元13,数据资料获得模块14,风险比对执行模块15,规则比对执行模块16,异常标记执行模块17。
具体实施方式
本申请提供了一种代码密码算法类型识别与参数误用检测方法与系统,用于针对解决现有技术中存在对代码进行合规性和风险检测时,无效检测情形占据大量算力并导致检测时间浪费,导致对代码进行检测评估的效率较低的技术问题。
针对上述技术问题,本申请提供的技术方案总体思路如下:
对代码进行语义分析获得代码实际表达的执行内容,基于执行内容进行风险等级评估以及确定是否有函数信息、智能合约被引入代码中,基于风险代码数据库以及规则代码数据库对代码是否存在风险,是否存在编写规则错误进行比对确定,基于风险代码比对结果以及规则代码比对结果进行代码风险定位。实现了准确高效的对风险代码进行识别和精准定位。
实施例一
如图1所示,本申请提供了一种代码密码算法类型识别与参数误用检测方法,所述方法包括:
S100:对代码信息进行语义分析,获得代码语义信息;
进一步的,所述对代码信息进行语义分析,获得代码语义信息,本申请提供的方法步骤S100还包括:
S110:将所述代码信息输入语义分析模型,获得所述代码语义信息,其中,所述语义分析模型为通过训练集进行深度学习的神经网络模型。
具体而言,所述代码为程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。不同代码含有不同的代码信息。
所述代码语义信息为所述代码实际表达的执行内容,所述代码语义信息满足实施代码风险等级评估的原始信息要求。
所述语义分析模型为通过训练集进行深度学习的神经网络模型,在本实施例中对于所述语义分析模型的训练集选择以及训练方法和模型输出准确度不作任何限制,在具体模型训练过程中可根据实际需求进行训练集采集以及训练方法设置。
在本实施例中,为提高进行代码检测分析时的准确度,首先对代码信息进行分析处理,获取代码实际表达的执行内容,具体的,通过对代码信息进行语义分析从而获取代码语义信息,基于代码语义信息实现获得代码实际表达的执行内容。本实施例对于进行代码信息语义分析的方法不做限制,优选的,采用语义分析模型进行代码语义信息的获取,将所述代码信息作为输入数据输入所述语义分析模型,在模型输出端获取所述代码语义信息。
本实施例通过对代码信息进行语义分析,实现获知代码实际表达的执行内容,便于后续进行代码风险等级评估,同时采用语义分析模型提高获得的代码语义信息的准确度,间接提高了对代码进行风险评估,获得的代码风险等级的准确度。
S200:基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,并根据所述各代码风险等级对代码利用风险标签进行标记;
进一步的,如图2所示,基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,本申请提供的方法步骤S200还包括:
S210:根据所述代码语义信息,确定代码执行功能;
S220:根据所述代码执行功能按照执行功能的影响性及攻击记录信息,进行风险等级评估,获得代码执行风险评估信息;
S230:基于所述代码语义信息、所述代码执行功能,判断是否包含函数信息、智能合约信息;
S240:当包含所述函数信息、所述智能合约信息时,确定引用风险评估信息;
S250:将所述代码执行风险评估信息与所述引用风险评估信息作为风险评估因子进行综合分析,确定所述各代码风险等级。
具体而言,在本实施例中,在基于代码信息获得代码语义信息后,基于所述代码语义信息确定代码实际表达的执行内容,即确定所述代码执行功能。
所述影响性根据所述代码执行功能对应的代码受到黑客攻击后对于完整执行功能的影响程度进行确定。所述攻击记录信息为通过遍历大数据获得与所述代码具有一致性或代码执行功能具有一致性的代码历史遭受侵入性程序攻击的记录数据。
应理解的,完整的一个代码由多个具有关联关系的执行步骤组成,每一执行步骤基于代码片段执行部分功能,在具有计算识别功能的执行步骤中,通过插入函数信息或智能合约信息实现复杂运算处理或合约处理。
在本实施例中,对所述代码执行功能进行执行步骤拆分,获得多个执行步骤,获取每一执行步骤所具备的执行功能,基于所述执行功能进行执行步骤的影响性分析,结合大数据进行执行步骤的攻击记录信息的获取。获得每一执行步骤的影响性和攻击记录信息,综合执行步骤的影响性及攻击记录信息,进行风险等级评估,获得代码执行风险评估信息,所述代码执行风险评估信息反映了所述代码在动态运行过程中的安全状况。
基于所述代码语义信息、所述代码执行功能,判断所述代码中是否存在执行步骤包含函数信息、智能合约信息,当所述代码的部分执行步骤中包含所述函数信息、所述智能合约信息时,根据含有所述函数信息和所述智能合约信息的步骤数量进行所述引用风险评估信息的确定,当所述代码中引入的函数信息和智能合约越多时,所述代码遭遇外界侵入代码攻击造成的信息泄露甚至资产流失的风险越高。
将所述代码执行风险评估信息与所述引用风险评估信息作为风险评估因子进行综合分析,确定所述各代码风险等级,本实施例对于进行风险评估因子综合分析的方法不做限制,可基于本领域技术人员进行权重分析权重赋值结合加权计算进行各代码风险等级。
本实施例通过对代码动态运行过程中的代码执行风险进行评估,结合代码中智能合约与函数信息的引入情况进行引用风险评估,达到了从代码构成以及动态运行两方面进行代码风险评估,提高代码风险评估的准确性和全面性的技术效果。
S300:根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记;
进一步的,根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记,本申请提供的方法步骤S300还包括:
S310:根据各代码风险等级进行所述风险评估因子提取,确定是否包含所述函数信息和/或智能合约信息;
S320:当包含了所述函数信息和/或智能合约信息时,将所述函数信息、智能合约信息作为所述引用执行信息。
具体而言,在常规代码中,所述风险评估因子包括代码执行风险评估信息与引用风险评估信息两种,上述两种风险评估因子在代码执行及代码构成两方面反映了代码的安全性状况。
为提高对代码分析结果利用率,避免对代码进行重复分析处理造成的检测时间及算力资源浪费,在本实施例中,将在步骤S200获得的各代码风险等级进行所述风险评估因子的提取,根据提取出的所述风险评估因子,确定其中是否包含所述函数信息和/或智能合约信息;
当包含了所述函数信息和/或智能合约信息时,将所述函数信息、智能合约信息作为所述引用执行信息,并将所述引用执行信息利用引用执行标签进行标记。
本实施例通过对各代码风险等级进行风险评估因子分析提取并反推确定所述代码中是否包含函数信息和/或智能合约信息,并将函数信息和/或智能合约信息作为引用执行信息进行标签标记,达到了避免为获取函数信息和/或智能合约信息而对原代码进行重复分析处理,实现降低代码分析对于检测系统的算力资源浪费的技术效果。
S400:获得代码数据库,其中,所述代码数据库包括风险代码库、规则代码库;
具体而言,所述风险代码库为根据大数据以及程序员历史经验生成的存在代码漏洞容易受到外界代码入侵攻击的完整代码字节、代码字符、以及组合后形成代码安全漏洞的代码字节组合。所述风险代码库随着代码攻击记录信息的增加而不断扩大。
所述规则代码库为程序员进行代码编写时的标准代码格式规则,即按照所述代码规则库内的编写规则进行代码编写,所获代码受开发工具支持运行。所述规则代码库随着代码规则的更新而不断扩大。
所述风险代码库与所述规则代码库构成所述代码数据库。
S500:基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果;
进一步的,基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果,本申请提供的方法步骤S500还包括:
S510:根据所述风险代码库,按照完整风险代码、风险代码组合、风险代码特征的顺序构建多层遍历对照结构式;
S520:获得风险设定阈值,基于所述风险设定阈值对所述风险标签进行筛选,确定白名单标签、黑名单标签,其中,所述白名单标签为风险标签对应的风险等级小于所述风险设定阈值的风险标签,所述黑名单标签为风险标签对应的风险等级大于等于所述风险设定阈值的风险标签;
S530:根据所述黑名单标签确定待检测代码信息;
S540:根据所述待检测代码信息、所述引用执行标签,分别利用所述完整风险代码、风险代码组合、风险代码特征的遍历对照结构式进行遍历比对;
S550:利用所述完整风险代码遍历对照结构式进行遍历得到的结果作为第一遍历结果,利用所述风险代码组合遍历对照结构式进行遍历得到的结果作为第二遍历结果,所述风险代码特征遍历对照结构式进行遍历得到的结果作为第三遍历结果,所述第一遍历结果、第二遍历结果、第三遍历结果构成所述风险比对结果。
具体而言,在本实施例中所述完整风险代码为全段代码字节与历史漏洞代码字节吻合的情况,所述风险代码组合为代码中部分代码执行步骤相互配合形成代码漏洞的情况,所述风险代码特征为当代码字节中出现某些字符或图标时,存在代码漏洞风险的情况,在出现诉搜狐风险代码特征时,需要结合代码编写规则机箱内合规性分析,判断所述风险代码特征是否真实存在代码漏洞。
所述白名单标签为风险标签对应的风险等级小于所述风险设定阈值的风险标签,所述黑名单标签为风险标签对应的风险等级大于等于所述风险设定阈值的风险标签。
根据历史代码漏洞事故或程序员经验进行所述风险设定阈值的确定,基于所述风险设定阈值对所述风险标签进行筛选,确定白名单标签、黑名单标签,根据所述黑名单标签确定待检测代码信息。
根据所述风险代码库,按照完整风险代码、风险代码组合、风险代码特征的顺序构建多层遍历对照结构式,根据所述待检测代码信息、所述引用执行标签,分别利用所述完整风险代码、风险代码组合、风险代码特征的遍历对照结构式进行遍历比对,利用所述完整风险代码遍历对照结构式进行遍历得到的结果作为第一遍历结果,利用所述风险代码组合遍历对照结构式进行遍历得到的结果作为第二遍历结果,所述风险代码特征遍历对照结构式进行遍历得到的结果作为第三遍历结果,所述第一遍历结果、第二遍历结果、第三遍历结果构成所述风险比对结果。
所述第一遍历结果为代码全字节是否存在安全漏洞的遍历结果,所述第二遍历结果为代码分段组合字节是否存在安全漏洞的遍历结果,所述第三遍历结果为代码字符图标是否存在安全漏洞的遍历结果。
本实施例通过设置风险设定阈值进行风险标签筛选,避免对代码全局进行比对造成检测系统算力浪费,基于按照完整风险代码、风险代码组合、风险代码特征的顺序构建多层遍历对照结构式,对满足风险设定阈值的风险标签对应代码进行多重精细度的代码检测,避免遗漏微小代码漏洞以及组合式代码漏洞,提高代码检测的精确度。
S600:基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果;
进一步的,如图3所示,基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果,本申请提供的方法步骤S600还包括:
S610:根据所述风险标签、所述引用执行标签,确定待检测引用执行信息;
S620:根据所述规则代码库,确定代码格式规则、合约逻辑信息;
S630:根据所述代码格式规则对所述检测代码信息、待检测引用执行信息进行代码规则遍历比对,确定代码规则遍历结果;
S640:根据所述待检测引用执行信息,获得引用函数连接代码信息,利用所述代码格式规则对所述引用函数连接代码信息进行遍历比对,确定引用连接代码遍历结果;
S650:根据所述合约逻辑信息对引用执行标签中包含风险合约的代码进行遍历比对,确定智能合约遍历结果,将所述代码规则遍历结果、所述引用连接代码遍历结果、所述智能合约遍历结果作为所述规则比对结果。
进一步的,利用所述代码格式规则对所述引用函数连接代码信息进行遍历比对,之前,本申请提供的方法步骤S640还包括:
S641:将所述引用函数连接代码信息进行语义分析,获得函数连接语义信息;
S642:基于所述代码格式规则、所述函数连接语义信息对所述引用函数连接代码信息进行代码特征提取,获得代码特征信息集;
S643:根据所述代码特征信息集进行特征降维处理,获得降维特征;
S644:基于所述降维特征对所述引用函数连接代码信息进行降维。
具体而言,在本实施例中,基于所述风险标签用于进行代码风险等级标记,所述引用执行标签用于进行引用执行信息标记,根据所述风险标签、所述引用执行标签,确定标记有引用执行标签的代码中含有待检测引用执行信息的代码。
根据所述规则代码库,确定可被开发工具识别运行的代码格式规则、合约逻辑信息,根据所述代码格式规则对所述检测代码信息、待检测引用执行信息进行代码规则遍历比对,确定代码规则遍历结果,根据所述代码规则遍历结果可获得含有所述待检测引用执行信息的代码中不符合规则代码库代码编写规则的代码。
根据所述待检测引用执行信息,获得引用函数连接代码信息,所述引用函数连接代码信息包括在当前接受检测的本段代码信息以及其他代码中辅助进行本段代码引入的函数信息、智能合约运行相关的代码信息。
利用所述代码格式规则对所述引用函数连接代码信息进行遍历比对,确定引用连接代码遍历结果,根据所述合约逻辑信息对引用执行标签中包含风险合约的代码进行遍历比对,确定智能合约遍历结果,将所述代码规则遍历结果、所述引用连接代码遍历结果、所述智能合约遍历结果作为所述规则比对结果。
本实施例在利用所述代码格式规则对所述引用函数连接代码信息进行遍历比对之前,为提高对所述引用函数连接代码执行代码规则遍历比对结果的准确性,将所述引用函数连接代码信息进行语义分析,获得表示所述引用函数连接代码执行内容的函数连接语义信息;基于所述代码格式规则、所述函数连接语义信息对所述引用函数连接代码信息进行代码特征提取,获得代码特征信息集;根据所述代码特征信息集进行特征降维处理,获得降维特征,基于所述降维特征对所述引用函数连接代码信息进行降维,将引用的复杂代码降低为简单的代码语言,基于降维后的简单代码语言,利用所述代码格式规则进行遍历比对。
本实施例通过对引入函数信息和/或智能合约的代码进行代码格式规则检测,并获取与引入当前代码的函数信息和/或智能合约在代码执行过程中具有相关性引用函数连接代码信息,并对引用函数连接代码信息在进行降维处理降低代码复杂度后执行代码格式规则检测,达到了对于存在代码格式规则风险的待检测代码以及相关代码进行全面检测的技术效果。
S700:根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记。
进一步的,根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记,本申请提供的方法步骤S700还包括:
S710:当所述风险比对结果中所述第一遍历结果或第二遍历结果为是,直接生成异常标记;
S720:当所述风险比对结果中所述第一遍历结果和第二遍历结果为否、第三遍历结果为是,且所述规则比对结果中包含任意结果为是时,则生成异常标记。
具体而言,应理解的,根据步骤S500可知,所述第一遍历结果为代码全字节是否存在安全漏洞的遍历结果,所述第二遍历结果为代码分段组合字节是否存在安全漏洞的遍历结果,所述第三遍历结果为代码字符图标是否存在安全漏洞的遍历结果。
因而在获得所述第一遍历结果和/或第二遍历结果为“是”时,表明待检测代码存在代码全字节或部分字节段落存在代码异常,当所述风险比对结果中所述第一遍历结果或第二遍历结果为是,直接生成异常标记。
当所述第一遍历结果和/或第二遍历结果为“否”,第三遍历结果为“是”时,则表示待检测代码中存在可能为风险代码的字符,此时需要根据所述比对结果进行交叉验证,证明风险代码字符真是构成代码异常,因而当所述规则比对结果中包含任意结果为是时,生成异常标记。
本实施例通过分析完整风险代码、风险代码组合、风险代码特征三者构建的比对结构式所获遍历结果,达到了获得较为准确的代码检测结果,便于程序员进行异常代码维护的技术效果。
本实施例通过对代码信息进行语义分析,获得代码语义信息,为后续进行代码风险识别提供比对参考基准信息,基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,并根据所述各代码风险等级对代码利用风险标签进行标记,为后续结合风险等级进行低风险代码筛除降低检测时间和系统算力浪费提供筛选参考,根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记;获得代码数据库,其中,所述代码数据库包括风险代码库、规则代码库;基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果;基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果;根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记。达到了准确高效的对风险代码进行识别,避免代码漏洞修复不及时引起系统安全故障的技术效果。
实施例二
基于与前述实施例中一种代码密码算法类型识别与参数误用检测方法相同的发明构思,如图4所示,本申请提供了一种代码密码算法类型识别与参数误用检测系统,其中,所述系统包括:
代码语义分析模块11,用于对代码信息进行语义分析,获得代码语义信息;
风险等级评估模块12,用于基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,并根据所述各代码风险等级对代码利用风险标签进行标记;
引用执行采集单元13,用于根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记;
数据资料获得模块14,用于获得代码数据库,其中,所述代码数据库包括风险代码库、规则代码库;
风险比对执行模块15,用于基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果;
规则比对执行模块16,用于基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果;
异常标记执行模块17,用于根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记。
进一步的,所述代码语义分析模块11还包括:
语义分析执行单元,用于将所述代码信息输入语义分析模型,获得所述代码语义信息,其中,所述语义分析模型为通过训练集进行深度学习的神经网络模型。
进一步的,所述风险等级评估模块12还包括:
代码功能确定单元,用于根据所述代码语义信息,确定代码执行功能;
风险评估分析单元,用于根据所述代码执行功能按照执行功能的影响性及攻击记录信息,进行风险等级评估,获得代码执行风险评估信息;
语义识别判断单元,用于基于所述代码语义信息、所述代码执行功能,判断是否包含函数信息、智能合约信息;
判断结果执行单元,用于当包含所述函数信息、所述智能合约信息时,确定引用风险评估信息;
风险等级确定单元,用于将所述代码执行风险评估信息与所述引用风险评估信息作为风险评估因子进行综合分析,确定所述各代码风险等级。
进一步的,所述引用执行采集单元13还包括:
评估因子提取单元,用于根据各代码风险等级进行所述风险评估因子提取,确定是否包含所述函数信息和/或智能合约信息;
评估因子应用单元,用于当包含了所述函数信息和/或智能合约信息时,将所述函数信息、智能合约信息作为所述引用执行信息。
进一步的,所述风险比对执行模块15还包括:
结构式构建单元,用于根据所述风险代码库,按照完整风险代码、风险代码组合、风险代码特征的顺序构建多层遍历对照结构式;
风险标签筛选单元,用于获得风险设定阈值,基于所述风险设定阈值对所述风险标签进行筛选,确定白名单标签、黑名单标签,其中,所述白名单标签为风险标签对应的风险等级小于所述风险设定阈值的风险标签,所述黑名单标签为风险标签对应的风险等级大于等于所述风险设定阈值的风险标签;
待检测代码获得单元,用于根据所述黑名单标签确定待检测代码信息;
遍历比对执行单元,用于根据所述待检测代码信息、所述引用执行标签,分别利用所述完整风险代码、风险代码组合、风险代码特征的遍历对照结构式进行遍历比对;
比对结果获得单元,用于利用所述完整风险代码遍历对照结构式进行遍历得到的结果作为第一遍历结果,利用所述风险代码组合遍历对照结构式进行遍历得到的结果作为第二遍历结果,所述风险代码特征遍历对照结构式进行遍历得到的结果作为第三遍历结果,所述第一遍历结果、第二遍历结果、第三遍历结果构成所述风险比对结果。
进一步的,所述规则比对执行模块16还包括:
标签分析确定单元,用于根据所述风险标签、所述引用执行标签,确定待检测引用执行信息;
规则代码库分析单元,用于根据所述规则代码库,确定代码格式规则、合约逻辑信息;
遍历结果确定单元,用于根据所述代码格式规则对所述检测代码信息、待检测引用执行信息进行代码规则遍历比对,确定代码规则遍历结果;
遍历比对生成单元,用于根据所述待检测引用执行信息,获得引用函数连接代码信息,利用所述代码格式规则对所述引用函数连接代码信息进行遍历比对,确定引用连接代码遍历结果;
综合结果获得单元,用于根据所述合约逻辑信息对引用执行标签中包含风险合约的代码进行遍历比对,确定智能合约遍历结果,将所述代码规则遍历结果、所述引用连接代码遍历结果、所述智能合约遍历结果作为所述规则比对结果。
进一步的,所述异常标记执行模块17还包括:
异常标记分析单元,用于当所述风险比对结果中所述第一遍历结果或第二遍历结果为是,直接生成异常标记;
异常标记执行单元,用于当所述风险比对结果中所述第一遍历结果和第二遍历结果为否、第三遍历结果为是,且所述规则比对结果中包含任意结果为是时,则生成异常标记。
进一步的,所述遍历比对生成单元还包括:
语义分析应用单元,用于将所述引用函数连接代码信息进行语义分析,获得函数连接语义信息;
特征提取执行单元,用于基于所述代码格式规则、所述函数连接语义信息对所述引用函数连接代码信息进行代码特征提取,获得代码特征信息集;
特征降维获得单元,用于根据所述代码特征信息集进行特征降维处理,获得降维特征;
特征降维执行单元,基于所述降维特征对所述引用函数连接代码信息进行降维。
综上所述的任意一项方法或者步骤可作为计算机指令或程序存储在各种不限类型的计算机存储器中,通过各种不限类型的计算机处理器识别计算机指令或程序,进而实现上述任一项方法或者步骤。
基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作的任何改进和修饰,皆应落入本发明的专利保护范围。
Claims (7)
1.一种代码密码算法类型识别与参数误用检测方法,其特征在于,所述方法包括:
对代码信息进行语义分析,获得代码语义信息;
基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,并根据所述各代码风险等级对代码利用风险标签进行标记;
根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记;
获得代码数据库,其中,所述代码数据库包括风险代码库、规则代码库;
基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果;
基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果;
根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记;
其中,基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,包括:
根据所述代码语义信息,确定代码执行功能;
根据所述代码执行功能按照执行功能的影响性及攻击记录信息,进行风险等级评估,获得代码执行风险评估信息;
基于所述代码语义信息、所述代码执行功能,判断是否包含函数信息、智能合约信息;
当包含所述函数信息、所述智能合约信息时,确定引用风险评估信息;
将所述代码执行风险评估信息与所述引用风险评估信息作为风险评估因子进行综合分析,确定所述各代码风险等级;
其中,根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记,包括:
根据各代码风险等级进行所述风险评估因子提取,确定是否包含所述函数信息和/或智能合约信息;
当包含了所述函数信息和/或智能合约信息时,将所述函数信息、智能合约信息作为所述引用执行信息。
2.如权利要求1所述的方法,其特征在于,所述对代码信息进行语义分析,获得代码语义信息,包括:
将所述代码信息输入语义分析模型,获得所述代码语义信息,其中,所述语义分析模型为通过训练集进行深度学习的神经网络模型。
3.如权利要求1所述的方法,其特征在于,基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果,包括:
根据所述风险代码库,按照完整风险代码、风险代码组合、风险代码特征的顺序构建多层遍历对照结构式;
获得风险设定阈值,基于所述风险设定阈值对所述风险标签进行筛选,确定白名单标签、黑名单标签,其中,所述白名单标签为风险标签对应的风险等级小于所述风险设定阈值的风险标签,所述黑名单标签为风险标签对应的风险等级大于等于所述风险设定阈值的风险标签;
根据所述黑名单标签确定待检测代码信息;
根据所述待检测代码信息、所述引用执行标签,分别利用所述完整风险代码、风险代码组合、风险代码特征的遍历对照结构式进行遍历比对;
利用所述完整风险代码遍历对照结构式进行遍历得到的结果作为第一遍历结果,利用所述风险代码组合遍历对照结构式进行遍历得到的结果作为第二遍历结果,所述风险代码特征遍历对照结构式进行遍历得到的结果作为第三遍历结果,所述第一遍历结果、第二遍历结果、第三遍历结果构成所述风险比对结果。
4.如权利要求3所述的方法,其特征在于,基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果,包括:
根据所述风险标签、所述引用执行标签,确定待检测引用执行信息;
根据所述规则代码库,确定代码格式规则、合约逻辑信息;
根据所述代码格式规则对所述检测代码信息、待检测引用执行信息进行代码规则遍历比对,确定代码规则遍历结果;
根据所述待检测引用执行信息,获得引用函数连接代码信息,利用所述代码格式规则对所述引用函数连接代码信息进行遍历比对,确定引用连接代码遍历结果;
根据所述合约逻辑信息对引用执行标签中包含风险合约的代码进行遍历比对,确定智能合约遍历结果,将所述代码规则遍历结果、所述引用连接代码遍历结果、所述智能合约遍历结果作为所述规则比对结果。
5.如权利要求4所述的方法,其特征在于,根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记,包括:
当所述风险比对结果中所述第一遍历结果或第二遍历结果为是,直接生成异常标记;
当所述风险比对结果中所述第一遍历结果和第二遍历结果为否、第三遍历结果为是,且所述规则比对结果中包含任意结果为是时,则生成异常标记。
6.如权利要求4所述的方法,其特征在于,利用所述代码格式规则对所述引用函数连接代码信息进行遍历比对,之前包括:
将所述引用函数连接代码信息进行语义分析,获得函数连接语义信息;
基于所述代码格式规则、所述函数连接语义信息对所述引用函数连接代码信息进行代码特征提取,获得代码特征信息集;
根据所述代码特征信息集进行特征降维处理,获得降维特征;
基于所述降维特征对所述引用函数连接代码信息进行降维。
7.一种代码密码算法类型识别与参数误用检测系统,其特征在于,所述系统包括:
代码语义分析模块,用于对代码信息进行语义分析,获得代码语义信息;
风险等级评估模块,用于基于所述代码语义信息对代码进行风险等级评估,确定各代码风险等级,并根据所述各代码风险等级对代码利用风险标签进行标记;
引用执行采集单元,用于根据所述代码语义信息、各代码风险等级,确定引用执行信息,将所述引用执行信息利用引用执行标签进行标记;
数据资料获得模块,用于获得代码数据库,其中,所述代码数据库包括风险代码库、规则代码库;
风险比对执行模块,用于基于所述风险标签、所述引用执行标签,根据所述风险代码库对代码信息进行遍历比对,获得风险比对结果;
规则比对执行模块,用于基于所述风险标签、所述引用执行标签,根据所述规则代码库对代码信息进行遍历比对,获得规则比对结果;
异常标记执行模块,用于根据所述风险比对结果、所述规则比对结果锁定代码异常区域,当所述代码异常区域满足异常设定要求时,生成异常标记;
所述风险等级评估模块还包括:
代码功能确定单元,用于根据所述代码语义信息,确定代码执行功能;
风险评估分析单元,用于根据所述代码执行功能按照执行功能的影响性及攻击记录信息,进行风险等级评估,获得代码执行风险评估信息;
语义识别判断单元,用于基于所述代码语义信息、所述代码执行功能,判断是否包含函数信息、智能合约信息;
判断结果执行单元,用于当包含所述函数信息、所述智能合约信息时,确定引用风险评估信息;
风险等级确定单元,用于将所述代码执行风险评估信息与所述引用风险评估信息作为风险评估因子进行综合分析,确定所述各代码风险等级;
所述引用执行采集单元还包括:
评估因子提取单元,用于根据各代码风险等级进行所述风险评估因子提取,确定是否包含所述函数信息和/或智能合约信息;
评估因子应用单元,用于当包含了所述函数信息和/或智能合约信息时,将所述函数信息、智能合约信息作为所述引用执行信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211408890.0A CN115658542B (zh) | 2022-11-11 | 2022-11-11 | 一种代码密码算法类型识别与参数误用检测方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211408890.0A CN115658542B (zh) | 2022-11-11 | 2022-11-11 | 一种代码密码算法类型识别与参数误用检测方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115658542A CN115658542A (zh) | 2023-01-31 |
CN115658542B true CN115658542B (zh) | 2023-09-19 |
Family
ID=85021517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211408890.0A Active CN115658542B (zh) | 2022-11-11 | 2022-11-11 | 一种代码密码算法类型识别与参数误用检测方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115658542B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116070250B (zh) * | 2023-03-07 | 2023-06-23 | 卓望数码技术(深圳)有限公司 | 一种安卓系统应用程序的密码算法测评方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372301A (zh) * | 2016-08-29 | 2017-02-01 | 西电通用电气自动化有限公司 | 智能变电站配置文件可视化及配置一致性检测方法和系统 |
CN107526625B (zh) * | 2017-07-18 | 2020-08-21 | 杭州趣链科技有限公司 | 一种基于字节码检查的Java智能合约安全检测方法 |
WO2021037196A1 (zh) * | 2019-08-28 | 2021-03-04 | 杭州趣链科技有限公司 | 智能合约代码漏洞检测方法、装置、计算机设备和存储介质 |
CN108205493B (zh) * | 2016-12-20 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 一种代码检测方法、终端、服务器及系统 |
WO2021146988A1 (en) * | 2020-01-22 | 2021-07-29 | Shanghai Wormholes Tech Ltd. | Method and apparatus for protecting smart contracts against attacks |
CN114065222A (zh) * | 2021-11-24 | 2022-02-18 | 安天科技集团股份有限公司 | 源代码风险分析方法、装置、电子设备及存储介质 |
CN114297654A (zh) * | 2021-12-31 | 2022-04-08 | 北京工业大学 | 一种源代码层级的智能合约漏洞检测方法及系统 |
WO2022134588A1 (zh) * | 2020-12-21 | 2022-06-30 | 深圳壹账通智能科技有限公司 | 信息审核分类模型的构建方法和信息审核方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9940581B2 (en) * | 2013-11-20 | 2018-04-10 | International Business Machines Corporation | Ontology-aided business rule extraction using machine learning |
-
2022
- 2022-11-11 CN CN202211408890.0A patent/CN115658542B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372301A (zh) * | 2016-08-29 | 2017-02-01 | 西电通用电气自动化有限公司 | 智能变电站配置文件可视化及配置一致性检测方法和系统 |
CN108205493B (zh) * | 2016-12-20 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 一种代码检测方法、终端、服务器及系统 |
CN107526625B (zh) * | 2017-07-18 | 2020-08-21 | 杭州趣链科技有限公司 | 一种基于字节码检查的Java智能合约安全检测方法 |
WO2021037196A1 (zh) * | 2019-08-28 | 2021-03-04 | 杭州趣链科技有限公司 | 智能合约代码漏洞检测方法、装置、计算机设备和存储介质 |
WO2021146988A1 (en) * | 2020-01-22 | 2021-07-29 | Shanghai Wormholes Tech Ltd. | Method and apparatus for protecting smart contracts against attacks |
WO2022134588A1 (zh) * | 2020-12-21 | 2022-06-30 | 深圳壹账通智能科技有限公司 | 信息审核分类模型的构建方法和信息审核方法 |
CN114065222A (zh) * | 2021-11-24 | 2022-02-18 | 安天科技集团股份有限公司 | 源代码风险分析方法、装置、电子设备及存储介质 |
CN114297654A (zh) * | 2021-12-31 | 2022-04-08 | 北京工业大学 | 一种源代码层级的智能合约漏洞检测方法及系统 |
Non-Patent Citations (2)
Title |
---|
Fast Bug Detection Algorithm for Identifying Potential Vulnerabilities in Juliet Test Cases;Richard Amankwah 等;《 2020 IEEE 8th International Conference on Smart City and Informatization》;89-94 * |
基于静态程序分析的Python文档缺陷检测方法;梁思宇;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-215 * |
Also Published As
Publication number | Publication date |
---|---|
CN115658542A (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Deeplv: Suggesting log levels using ordinal based neural networks | |
CN113656805B (zh) | 一种面向多源漏洞信息的事件图谱自动构建方法及系统 | |
CN111368303B (zh) | 一种PowerShell恶意脚本的检测方法及装置 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN115658542B (zh) | 一种代码密码算法类型识别与参数误用检测方法与系统 | |
CN112148602B (zh) | 一种基于历史优化特征智能学习的源代码安全分析方法 | |
CN113609008B (zh) | 测试结果分析方法、装置和电子设备 | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
Lei et al. | Feature-fl: Feature-based fault localization | |
CN111177731A (zh) | 一种基于人工神经网络的软件源代码漏洞检测方法 | |
CN113742205A (zh) | 一种基于人机协同的代码漏洞智能检测方法 | |
CN117873839A (zh) | 复杂算力系统的故障检测方法、装置、设备和存储介质 | |
CN112464237A (zh) | 一种静态代码安全诊断方法及装置 | |
CN113778852A (zh) | 一种基于正则表达式的代码分析方法 | |
Le et al. | DSM: a specification mining tool using recurrent neural network based language model | |
CN116305131B (zh) | 脚本静态去混淆方法及系统 | |
CN117608889A (zh) | 基于日志语义的异常检测方法以及相关设备 | |
CN113343051B (zh) | 一种异常sql检测模型构建方法及检测方法 | |
Gupta et al. | Android smells detection using ML algorithms with static code metrics | |
CN114546836A (zh) | 基于下推自动机引导的公共组件库自动化测试方法及装置 | |
CN116383834B (zh) | 针对源码漏洞检测工具异常的检测方法以及相关设备 | |
CN117234429B (zh) | 一种存储芯片的写入擦除速度分析方法及装置 | |
US20240045955A1 (en) | Identifying security events in programming code for logging | |
CN116305173B (zh) | 一种整数漏洞查找方法、装置、计算机设备和存储介质 | |
CN118171284B (zh) | 基于补丁及并发行为模式分析的内核数据竞争检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |