机器学习框架的风险检测方法、装置、设备及存储介质
文献发布时间:2023-06-19 19:37:02
技术领域
本发明涉及信息安全技术领域,尤其涉及一种机器学习框架的风险检测方法、装置、设备及存储介质。
背景技术
近年来,国外厂商发布了一系列云端机器学习框架,如Tensorflow、PyTorch以及MXNet等,该云端机器学习框架在工业界和学术界均得到了广泛的应用,故掀起了一股机器学习框架的自研热潮,包括国内的较多知名厂商也纷纷加入,但是无论是国外还是国内厂商,在研发过程中关注更多的是机器学习框架的功能、性能以及面向开发者的易用性,从而导致对机器学习框架本身实现层面的安全性缺乏充分考虑,随之而来的就是机器学习框架及其依赖组件暴露出较大的漏洞,因此,如何快速、高效地检测机器学习框架所蕴含的风险是当前的首要任务,而目前对机器学习框架检测的常用技术方案是依赖于该方面专家的经验,但是人工检测少量的机器学习框架还行,一旦数量增加,导致检测过程中难免出现或多或少的错误,造成检测的准确性大大降低。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种机器学习框架的风险检测方法、装置、设备及存储介质,旨在解决现有技术检测机器学习框架风险的准确性较低,造成风险对网络空间的威胁性增加的技术问题。
为实现上述目的,本发明提供了一种机器学习框架的风险检测方法,所述方法包括以下步骤:
获取机器学习框架的源码信息;
根据所述源码信息生成计算型算子库;
根据所述计算型算子库生成算子测试模板库;
根据预设测试策略和所述算子测试模板库构建目标测试用例;
通过所述目标测试用例对所述机器学习框架进行风险检测。
可选地,所述根据所述源码信息生成计算型算子库,包括:
根据预设静态分析策略、预设文档解析策略以及所述源码信息确定计算型算子;
基于所述计算型算子生成计算型算子库。
可选地,所述根据预设静态分析策略、预设文档解析策略以及所述源码信息确定计算型算子,包括:
根据预设静态分析策略对所述源码信息进行分析,得到第一计算型算子信息;
根据预设文档解析策略对目标算子文档进行解析,得到第二计算型算子信息;
基于所述第一计算型算子信息和第二计算型算子信息生成计算型算子。
可选地,所述根据预设静态分析策略对所述源码信息进行分析,得到第一计算型算子信息,包括:
根据预设静态分析策略对所述源码信息进行检测,得到算子源码信息;
提取所述算子源码信息的算子实际操作和计算复杂度;
根据所述算子实际操作和计算复杂度生成第一计算型算子信息。
可选地,所述根据所述计算型算子库生成算子测试模板库,包括:
对所述计算型算子库中的计算型算子进行实时执行,得到执行报错信息和覆盖率信息;
根据所述执行报错信息和覆盖率信息得到对应的模板修正内容;
基于所述模板修正内容生成算子测试模板库。
可选地,所述根据所述变异参数和变异临界值执行通过所述目标测试用例对所述机器学习框架进行风险检测的步骤之后,还包括:
对风险检测结果进行实时监测,得到异常执行信息;
基于所述异常执行信息确定安全风险信息。
可选地,所述基于所述异常执行信息确定安全风险信息之后,还包括:
对所述安全风险信息进行分类;
对不同类别的安全风险信息进行评估,得到风险危害等级;
根据风险危险等级依次对所述安全风险信息对应的漏洞进行修复。
此外,为实现上述目的,本发明还提出一种机器学习框架的风险检测装置,所述机器学习框架的风险检测装置包括:
获取模块,用于获取机器学习框架的源码信息;
生成模块,用于根据所述源码信息生成计算型算子库;
所述生成模块,还用于根据所述计算型算子库生成算子测试模板库;
构建模块,用于根据预设测试策略和所述算子测试模板库构建目标测试用例;
检测模块,用于通过所述目标测试用例对所述机器学习框架进行风险检测。
此外,为实现上述目的,本发明还提出一种机器学习框架的风险检测设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的机器学习框架的风险检测程序,所述机器学习框架的风险检测程序配置为实现如上文所述的机器学习框架的风险检测方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有机器学习框架的风险检测程序,所述机器学习框架的风险检测程序被处理器执行时实现如上文所述的机器学习框架的风险检测方法的步骤。
本发明通过获取机器学习框架的源码信息;根据所述源码信息生成计算型算子库;根据所述计算型算子库生成算子测试模板库;根据预设测试策略和所述算子测试模板库构建目标测试用例;通过所述目标测试用例对所述机器学习框架进行风险检测;由于本发明是通过机器学习框架的源码信息生成计算型算子库,并根据计算型算子生成的算子测试模板库与预设测试策略构建的目标测试用户对机器学习框架进行风险检测,相较于现有技术通过依赖专家经验检测机器学习框架的风险,能够有效提高检测机器学习框架风险的准确性,进而降低风险对于网络空间的威胁。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的机器学习框架的风险检测设备的结构示意图;
图2为本发明机器学习框架的风险检测方法第一实施例的流程示意图;
图3为本发明机器学习框架的风险检测方法第二实施例的流程示意图;
图4为本发明机器学习框架的风险检测方法第三实施例的流程示意图;
图5为本发明机器学习框架的风险检测装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的机器学习框架的风险检测设备结构示意图。
如图1所示,该机器学习框架的风险检测设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对机器学习框架的风险检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及机器学习框架的风险检测程序。
在图1所示的机器学习框架的风险检测设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明机器学习框架的风险检测设备中的处理器1001、存储器1005可以设置在机器学习框架的风险检测设备中,所述机器学习框架的风险检测设备通过处理器1001调用存储器1005中存储的机器学习框架的风险检测程序,并执行本发明实施例提供的机器学习框架的风险检测方法。
本发明实施例提供了一种机器学习框架的风险检测方法,参照图2,图2为本发明机器学习框架的风险检测方法第一实施例的流程示意图。
本实施例中,所述机器学习框架的风险检测方法包括以下步骤:
步骤S10,获取机器学习框架的源码信息。
需要说明的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的计算服务设备,例如手机、平板电脑、个人电脑等;也可以是具有相同或相似功能的机器学习框架的风险检测设备。本实施例及下述各实施例将以机器学习框架的风险检测设备为例进行说明。
可以理解的是,所述源码信息指的是构建机器学习框架所使用源码的信息,该源码的类别包括C语音、C++、Java、Python以及PHP等,不同的机器学习框所使用的编程语音的类别不同,为了机器学习框架的实用性和构建效率,在构建的过程中最好是使用同一类型代码,以便于后期机器学习框架的维护和升级。
应当理解的是,该机器学习框架可以为Tensorflow、PyTorch、Oneflow、MXNet以及Caffe等框架,还可以为其他框架,本实施例对此不作限制,不同的机器学习框架的注重点不同,例如,Tensorflow更注重通用性、Pytorch更注重易用性以及Oneflow更注重性能。
在具体实现中,风险检测设备在确定需要检测的机器学习框架后,根据该机器学习框架得到构建该框架的源码信息。
步骤S20,根据所述源码信息生成计算型算子库;
可以理解的是,在得到机器学习框架的源码信息后,根据该源码信息确定该机器学习框架中的算子,算子指的是执行操作的基本单元,而机器学习框架针对算子存在不同的分类,主要将算子分为功能性算子和计算型算子,而功能性算子又分为文件操作类算子、网络通信类算子以及数据解析类算子,计算型算子指的是在机器学习模型进行训练或推理时对输入的数据进行计算的算子,并且通过计算型算子的计算结果在计算图中流动,该计算结果即为下一个计算型算子的输入。
应当理解的是,计算型算子库指的是由各计算型算子所生成的数据库,该计算型算子库存储着机器学习框架中所有的计算型算子,具体是在确定机器学习框架中的计算型算子后,将该计算型算子依次存储至数据库中,以生成对应的计算型算子库。
步骤S30,根据所述计算型算子库生成算子测试模板库。
可以理解的是,在得到计算型算子库后,通过持续尝试执行计算型算子库中的计算型算子,在执行的过程中,计算型算子对输入的数据进行计算,会出现执行报错信息和覆盖率信息,根据该执行报错信息和覆盖率信息所反馈的模板修正内容生成算子测试模板库,通过上述方式生成算子测试模板库,能够有效提高校验计算型算子库的准确度,以及能够及时补充计算型算子参数间的约束条件。
应当理解的是,算子测试模板库指的是测试算子的模板数据库,该算子测试模板库中存储着测试算子的不同模板,以及包含算子调用方法、算子参数类型以及算子参数间的约束条件等内容,通过算子测试模板库能够实现对算子进行多维度的测试,从而能够有效提高算子计算的安全性。
步骤S40,根据预设测试策略和所述算子测试模板库构建目标测试用例。
应当理解的是,预设测试策略指的是测试某一特定对象的策略,该测试策略可以为模糊测试策略,也可以其他测试策略,本实施例对此不作限制,以模糊测试策略为例进行说明,模糊测试策略为一种通过向目标对象提供非预期的输入并监视异常结果从而发现风险的策略。
可以理解的是,在得到算子测试模板库中,通过预设测试策略从算子测试模板库选取相适应的算子测试模板,并通过选取的算子测试模板与预设测试策略构建目标测试用例。
进一步地,为了有效提高构建目标测试用例的全面性,步骤S40,包括:选取所述算子测试模板库中的异常算子数据;根据所述预设测试策略和所述异常算子数据构建目标测试用例。
应当理解的是,异常算子数据指的是畸形数据,该畸形数据具有随机性和非预期性,将该异常算子数据从算子测试模板库中选取出来,并通过预设测试策略与异常算子数据构建目标测试用例。
步骤S50,通过所述目标测试用例对所述机器学习框架进行风险检测。
可以理解的是,在得到目标测试用例后,通过机器学习框架的函数接口将目标测试用例进行注入至机器学习框架,在注入完成后,即实现对机器学习框架的风险检测,在风险检测前,还需从资源池调度对应的检测资源。
进一步地,为了有效提高检测机器学习框架风险的准确性,步骤S50之前,还包括:获取机器学习框架的属性信息和计算型算子的变异参数;根据所述属性信息确定变异临界值;根据所述变异参数和变异临界值执行通过所述目标测试用例对所述机器学习框架进行风险检测的步骤。
应当理解的是,属性信息指的是机器学习框架所特有的属性信息,该属性信息可以为机器学习框架的自身参数,也可以其他属性信息,本实施例对此不作限制,变异临界值指的是计算型算子的参数在进行变异时优先使用的临界值,变异参数指的是计算型算子所参加变异的参数,在确定变异参数和变异临界值后,通过目标测试用例对机器学习框架进行风险检测。
进一步地,为了更加快速、准确地确定机器学习框架的风险信息,步骤S50之后,还包括:对风险检测结果进行实时监测,得到异常执行信息;基于所述异常执行信息确定安全风险信息。
可以理解的是,风险结果指的是通过目标测试用例对机器学习框架进行风险检测的结果,异常执行信息指的是实例化目标测试用例的过程中出现异常的执行信息,通过该异常执行信息即可确定机器学习框架所存在的安全风险信息。
进一步地,为了有效提高安全漏洞的修复效率,所述基于所述异常执行信息确定安全风险信息之后,还包括:对所述安全风险信息进行分类;对不同类别的安全风险信息进行评估,得到风险危害等级;根据风险危险等级依次对所述安全风险信息对应的漏洞进行修复。
应当理解的是,在得到机器学习框架的安全风险信息后,由于安全风险信息的类别不同,在评估前,需要将安全风险信息进行分类,该安全风险信息的类别包括内存访问越界、空指针引用、整型溢出以及浮点数异常等,在分类完成后,评估不同类别的安全风险信息,即可得到风险危害等级,例如,内存访问越界为第一级别、空指针引用为第二级别以及整型溢出和浮点数异常为第三级别,通过风险危害等级确定安全风险信息对应漏洞的修复紧急程度,即通过风险危险等级依次修复安全风险信息对应的漏洞,并将该安全风险信息上传至对应的安全日志库。
进一步地,为了有效提高得到安全风险信息的准确性,所述对所述安全风险信息进行分类之前,还包括:根据所述安全风险信息得到机器学习框架的崩溃信息;基于所述崩溃信息生成对应的内存转储文件;根据所述内存转储文件执行对所述安全风险信息进行分类的步骤。
可以理解的是,崩溃信息指的是机器学习框架在训练和推理时出现崩溃的信息,在崩溃的瞬间,会生成内存转储文件,内存转储文件也被称作虚拟内存,通过该内存转储文件所存储的崩溃信息即可执行对安全风险信息的分类。
本实施例通过获取机器学习框架的源码信息;根据所述源码信息生成计算型算子库;根据所述计算型算子库生成算子测试模板库;根据预设测试策略和所述算子测试模板库构建目标测试用例;通过所述目标测试用例对所述机器学习框架进行风险检测;由于本实施例是通过机器学习框架的源码信息生成计算型算子库,并根据计算型算子生成的算子测试模板库与预设测试策略构建的目标测试用户对机器学习框架进行风险检测,相较于现有技术通过依赖专家经验检测机器学习框架的风险,能够有效提高检测机器学习框架风险的准确性,进而降低风险对于网络空间的威胁。
参考图3,图3为本发明机器学习框架的风险检测方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S20,包括:
步骤S201,根据预设静态分析策略、预设文档解析策略以及所述源码信息确定计算型算子。
可以理解的是,预设静态分析策略指的是静态分析源码信息的策略,预设文档解析策略指的是分析官方文档的策略,通过预设静态分析策略获取源码信息中的部分计算型算子,通过预设文档解析策略获取源码信息中的另外一部分计算型算子。
进一步地,为了有效提高得到计算型算子的准确性,步骤S201,包括:根据预设静态分析策略对所述源码信息进行分析,得到第一计算型算子信息;根据预设文档解析策略对目标算子文档进行解析,得到第二计算型算子信息;基于所述第一计算型算子信息和第二计算型算子信息生成计算型算子。
应当理解的是,第一计算型算子信息指的是通过预设静态分析策略分析源码信息得到的计算型算子信息,第二计算型算子信息指的是通过预设文档解析官方文档得到的计算型算子信息,由于通过预设静态分析策略得到计算型算子信息的耗时较长,而通过预设文档解析策略得到的计算型算子的数量较少,通过结合预设静态分析策略和预设文档解析策略能够快速、全面地得到计算型算子。
进一步地,为了有效提高得到第一计算型算子信息,所述根据预设静态分析策略对所述源码信息进行分析,得到第一计算型算子信息,包括:根据预设静态分析策略对所述源码信息进行检测,得到算子源码信息;提取所述算子源码信息的算子实际操作和计算复杂度;根据所述算子实际操作和计算复杂度生成第一计算型算子信息。
可以理解的是,算子源码信息指的是源码信息中有关算子的源码信息,具体是通过预设静态分析策略对源码信息分析得到的,算子实际操作指的是算子对输入数据进行计算的实际操作,而计算复杂度指的是计算过程的复杂程度,计算过程中的阶次与计算复杂度呈正相关,通过算子实际操作和计算复杂度即可生成第一计算型算子信息,同时,还会分析源码信息中针对计算型算子的参数的约束条件。
进一步地,为了有效提高选取计算型算子操作和计算型算子复杂度的效率,所述根据所述算子实际操作和计算复杂度生成第一计算型算子信息,包括:获取计算型算子信息的标识信息;根据所述标识信息在所述算子实际操作和计算复杂度中选取计算型算子操作和计算型算子复杂度;根据所述计算型算子操作和计算型算子复杂度生成第一计算型算子信息。
应当理解的是,标识信息指的是能够唯一识别计算型算子的标识信息,通过该标识信息在算子实际操作和计算复杂度选取与计算型算子相关的计算型算子操作和计算型算子复杂度,并根据计算型算子操作和计算型算子复杂度生成第一计算型算子信息。
步骤S202,基于所述计算型算子生成计算型算子库。
应当理解的是,在得到计算型算子后,基于该计算型算子即可生成对应的计算型算子库,例如,计算型算子包括A、B以及C,此时的计算型算子库中的算子即为A、B以及C。
本实施例通过根据预设静态分析策略、预设文档解析策略以及所述源码信息确定计算型算子;基于所述计算型算子生成计算型算子库;由于本实施例是通过预设静态分析策略分析源码信息以及预设文档解析策略解析官方文档,根据预设静态分析策略与预设文档解析策略的结合确定计算型算子,基于该计算型算子生成计算型算子库,从而能够更加全面地得到计算型算子库。
参考图4,图4为本发明机器学习框架的风险检测方法第三实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S30,包括:
步骤S301,对所述计算型算子库中的计算型算子进行实时执行,得到执行报错信息和覆盖率信息。
可以理解的是,执行报错信息指的是执行计算型算子库时所出现的报错信息,覆盖率信息指的是计算型算子执行路径到达预设位置与总执行路径之间的比率信息,例如,计算型算子库总执行路径D,执行路径到达预设位置有E,则覆盖率为E/D*100,此时还有D-E个执行路径未达到预设位置。
步骤S302,根据所述执行报错信息和覆盖率信息得到对应的模板修正内容。
应当理解的是,模板修正内容指的是修正算子测试模板库的内容,该模板修正内容可以为计算型算子参数间的约束条件,也可以为其他内容参数,本实施例对此不作限制,通过执行报错信息和覆盖率信息反馈对应的模板修正内容。
进一步地,为了有效提高得到模板修正内容的准确性,步骤S302,包括:对所述覆盖率信息进行分析,根据分析结果确定计算型算子的执行路径;判断所述执行路径的位置是否达到预设位置;若是,则根据所述执行报错信息和覆盖率信息得到对应的模板修正内容。
可以理解的是,通过分析覆盖率信息确定计算型算子的执行路径,由于计算型算子在执行的过程中可能会达到包含漏洞的代码位置和复杂计算的代码位置,如果能够到达预设位置,则根据执行报错信息和覆盖率信息反馈对应的模板修正内容。
步骤S303,基于所述模板修正内容生成算子测试模板库。
应当理解的是,根据模板修正内容确定在执行计算型算子时,可以达到收敛状态,此时根据模板修正内容生成的算子测试模板库更加精确。
本实施例通过对所述计算型算子库中的计算型算子进行实时执行,得到执行报错信息和覆盖率信息;根据所述执行报错信息和覆盖率信息得到对应的模板修正内容;基于所述模板修正内容生成算子测试模板库;由于本实施例是通过实时执行计算型算子库,得到计算型算子的执行报错信息和覆盖率信息,并根据执行报错信息和覆盖率信息反馈的模板修正内容生成算子测试模板库,从而能够有效提高生成算子测试模板库的精确度。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有机器学习框架的风险检测程序,所述机器学习框架的风险检测程序被处理器执行时实现如上文所述的机器学习框架的风险检测方法的步骤。
图5为本发明机器学习框架的风险检测装置第一实施例的结构框图。
如图5所示,本发明实施例提出的机器学习框架的风险检测装置包括:
获取模块10,用于获取机器学习框架的源码信息。
生成模块20,用于根据所述源码信息生成计算型算子库。
所述生成模块20,还用于根据所述计算型算子库生成算子测试模板库。
构建模块30,用于根据预设测试策略和所述算子测试模板库构建目标测试用例。
检测模块40,用于通过所述目标测试用例对所述机器学习框架进行风险检测。
本实施例通过获取机器学习框架的源码信息;根据所述源码信息生成计算型算子库;根据所述计算型算子库生成算子测试模板库;根据预设测试策略和所述算子测试模板库构建目标测试用例;通过所述目标测试用例对所述机器学习框架进行风险检测;由于本实施例是通过机器学习框架的源码信息生成计算型算子库,并根据计算型算子生成的算子测试模板库与预设测试策略构建的目标测试用户对机器学习框架进行风险检测,相较于现有技术通过依赖专家经验检测机器学习框架的风险,能够有效提高检测机器学习框架风险的准确性,进而降低风险对于网络空间的威胁。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的机器学习框架的风险检测方法,此处不再赘述。
在一实施例中,所述生成模块20,还用于根据预设静态分析策略、预设文档解析策略以及所述源码信息确定计算型算子;基于所述计算型算子生成计算型算子库。
在一实施例中,所述生成模块20,还用于根据预设静态分析策略对所述源码信息进行分析,得到第一计算型算子信息;根据预设文档解析策略对目标算子文档进行解析,得到第二计算型算子信息;基于所述第一计算型算子信息和第二计算型算子信息生成计算型算子。
在一实施例中,所述生成模块20,还用于根据预设静态分析策略对所述源码信息进行检测,得到算子源码信息;提取所述算子源码信息的算子实际操作和计算复杂度;根据所述算子实际操作和计算复杂度生成第一计算型算子信息。
在一实施例中,所述生成模块20,还用于获取计算型算子信息的标识信息;根据所述标识信息在所述算子实际操作和计算复杂度中选取计算型算子操作和计算型算子复杂度;根据所述计算型算子操作和计算型算子复杂度生成第一计算型算子信息。
在一实施例中,所述生成模块20,还用于对所述计算型算子库中的计算型算子进行实时执行,得到执行报错信息和覆盖率信息;根据所述执行报错信息和覆盖率信息得到对应的模板修正内容;基于所述模板修正内容生成算子测试模板库。
在一实施例中,所述生成模块20,还用于对所述覆盖率信息进行分析,根据分析结果确定计算型算子的执行路径;判断所述执行路径的位置是否达到预设位置;若是,则根据所述执行报错信息和覆盖率信息得到对应的模板修正内容。
在一实施例中,所述构建模块30,还用于选取所述算子测试模板库中的异常算子数据;根据所述预设测试策略和所述异常算子数据构建目标测试用例。
在一实施例中,所述检测模块40,还用于获取机器学习框架的属性信息和计算型算子的变异参数;根据所述属性信息确定变异临界值;根据所述变异参数和变异临界值执行通过所述目标测试用例对所述机器学习框架进行风险检测的步骤。
在一实施例中,所述检测模块40,还用于对风险检测结果进行实时监测,得到异常执行信息;基于所述异常执行信息确定安全风险信息。
在一实施例中,所述检测模块40,还用于对所述安全风险信息进行分类;对不同类别的安全风险信息进行评估,得到风险危害等级;根据风险危险等级依次对所述安全风险信息对应的漏洞进行修复。
在一实施例中,所述检测模块40,还用于根据所述安全风险信息得到机器学习框架的崩溃信息;基于所述崩溃信息生成对应的内存转储文件;根据所述内存转储文件执行对所述安全风险信息进行分类的步骤。
本发明机器学习框架的风险检测装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
本发明公开了A1,一种机器学习框架的风险检测方法,所述机器学习框架的风险检测方法包括以下步骤:
获取机器学习框架的源码信息;
根据所述源码信息生成计算型算子库;
根据所述计算型算子库生成算子测试模板库;
根据预设测试策略和所述算子测试模板库构建目标测试用例;
通过所述目标测试用例对所述机器学习框架进行风险检测。
A2、如A1所述的机器学习框架的风险检测方法,所述根据所述源码信息生成计算型算子库,包括:
根据预设静态分析策略、预设文档解析策略以及所述源码信息确定计算型算子;
基于所述计算型算子生成计算型算子库。
A3、如A2所述的机器学习框架的风险检测方法,所述根据预设静态分析策略、预设文档解析策略以及所述源码信息确定计算型算子,包括:
根据预设静态分析策略对所述源码信息进行分析,得到第一计算型算子信息;
根据预设文档解析策略对目标算子文档进行解析,得到第二计算型算子信息;
基于所述第一计算型算子信息和第二计算型算子信息生成计算型算子。
A4、如A3所述的机器学习框架的风险检测方法,所述根据预设静态分析策略对所述源码信息进行分析,得到第一计算型算子信息,包括:
根据预设静态分析策略对所述源码信息进行检测,得到算子源码信息;
提取所述算子源码信息的算子实际操作和计算复杂度;
根据所述算子实际操作和计算复杂度生成第一计算型算子信息。
A5、如A4所述的机器学习框架的风险检测方法,所述根据所述算子实际操作和计算复杂度生成第一计算型算子信息,包括:
获取计算型算子信息的标识信息;
根据所述标识信息在所述算子实际操作和计算复杂度中选取计算型算子操作和计算型算子复杂度;
根据所述计算型算子操作和计算型算子复杂度生成第一计算型算子信息。
A6、如A1所述的机器学习框架的风险检测方法,所述根据所述计算型算子库生成算子测试模板库,包括:
对所述计算型算子库中的计算型算子进行实时执行,得到执行报错信息和覆盖率信息;
根据所述执行报错信息和覆盖率信息得到对应的模板修正内容;
基于所述模板修正内容生成算子测试模板库。
A7、如A6所述的机器学习框架的风险检测方法,所述根据所述执行报错信息和覆盖率信息得到对应的模板修正内容,包括:
对所述覆盖率信息进行分析,根据分析结果确定计算型算子的执行路径;
判断所述执行路径的位置是否达到预设位置;
若是,则根据所述执行报错信息和覆盖率信息得到对应的模板修正内容。
A8、如A1所述的机器学习框架的风险检测方法,所述根据预设测试策略和所述算子测试模板库构建目标测试用例,包括:
选取所述算子测试模板库中的异常算子数据;
根据所述预设测试策略和所述异常算子数据构建目标测试用例。
A9、如A1所述的机器学习框架的风险检测方法,所述通过所述目标测试用例对所述机器学习框架进行风险检测之前,还包括:
获取机器学习框架的属性信息和计算型算子的变异参数;
根据所述属性信息确定变异临界值;
根据所述变异参数和变异临界值执行通过所述目标测试用例对所述机器学习框架进行风险检测的步骤。
A10、如A1所述的机器学习框架的风险检测方法,所述根据所述变异参数和变异临界值执行通过所述目标测试用例对所述机器学习框架进行风险检测的步骤之后,还包括:
对风险检测结果进行实时监测,得到异常执行信息;
基于所述异常执行信息确定安全风险信息。
A11、如A10所述的机器学习框架的风险检测方法,所述基于所述异常执行信息确定安全风险信息之后,还包括:
对所述安全风险信息进行分类;
对不同类别的安全风险信息进行评估,得到风险危害等级;
根据风险危险等级依次对所述安全风险信息对应的漏洞进行修复。
A12、如A11所述的机器学习框架的风险检测方法,所述对所述安全风险信息进行分类之前,还包括:
根据所述安全风险信息得到机器学习框架的崩溃信息;
基于所述崩溃信息生成对应的内存转储文件;
根据所述内存转储文件执行对所述安全风险信息进行分类的步骤。
本发明公开了B1,一种机器学习框架的风险检测装置,所述机器学习框架的风险检测装置包括:
获取模块,用于获取机器学习框架的源码信息;
生成模块,用于根据所述源码信息生成计算型算子库;
所述生成模块,还用于根据所述计算型算子库生成算子测试模板库;
构建模块,用于根据预设测试策略和所述算子测试模板库构建目标测试用例;
检测模块,用于通过所述目标测试用例对所述机器学习框架进行风险检测。
B2、如B1所述的机器学习框架的风险检测装置,所述生成模块,还用于根据预设静态分析策略、预设文档解析策略以及所述源码信息确定计算型算子;基于所述计算型算子生成计算型算子库。
B3、如B2所述的机器学习框架的风险检测装置,所述生成模块,还用于根据预设静态分析策略对所述源码信息进行分析,得到第一计算型算子信息;根据预设文档解析策略对目标算子文档进行解析,得到第二计算型算子信息;基于所述第一计算型算子信息和第二计算型算子信息生成计算型算子。
B4、如B3所述的机器学习框架的风险检测装置,所述生成模块,还用于根据预设静态分析策略对所述源码信息进行检测,得到算子源码信息;提取所述算子源码信息的算子实际操作和计算复杂度;根据所述算子实际操作和计算复杂度生成第一计算型算子信息。
B5、如B1所述的机器学习框架的风险检测装置,所述生成模块,还用于对所述计算型算子库中的计算型算子进行实时执行,得到执行报错信息和覆盖率信息;根据所述执行报错信息和覆盖率信息得到对应的模板修正内容;基于所述模板修正内容生成算子测试模板库。
B6、如B1所述的机器学习框架的风险检测装置,所述构建模块,还用于选取所述算子测试模板库中的异常算子数据;根据所述预设测试策略和所述异常算子数据构建目标测试用例。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
- 存储设备在线检测方法、装置、设备及可读存储介质
- 机器学习模型训练方法、装置、存储介质和计算机设备
- 机器学习方法、装置、设备及存储介质
- 一种液位检测装置和包含其的设备以及液位检测方法、电子设备及计算机可读存储介质
- 一种存储系统的状态检测方法、装置、设备及存储介质
- 机器学习框架漏洞检测方法、系统、设备及可读存储介质
- 机器学习框架漏洞检测方法、系统、设备及可读存储介质