CN112069507A - 机器学习框架漏洞检测方法、系统、设备及可读存储介质 - Google Patents
机器学习框架漏洞检测方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112069507A CN112069507A CN202010996845.6A CN202010996845A CN112069507A CN 112069507 A CN112069507 A CN 112069507A CN 202010996845 A CN202010996845 A CN 202010996845A CN 112069507 A CN112069507 A CN 112069507A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- layer model
- layer
- vulnerability
- model
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Physiology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Genetics & Genomics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于机器学习领域,公开了一种机器学习框架漏洞检测方法、系统、设备及可读存储介质,包括以下步骤:根据预设API的参数配置要求,随机生成预设API的若干单层模型;将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。该检测方法无需提前生成可以暴露机器学习框架漏洞的模型,本质上是对每个API的不同参数配置以及不同输入进行贪婪搜索,这样的特性决定了该机器学习框架漏洞检测方法实现简单,复杂度低,且对机器学习框架API的覆盖率高,可以有效减少检测问题时的计算资源开销。
Description
技术领域
本发明属于机器学习领域,涉及一种机器学习框架漏洞检测方法、系统、设备及可读存储介质。
背景技术
在机器学习领域中,随着机器学习在各行各业的广泛应用,机器学习安全是逐渐饱受关注的研究领域。根据调用关系,机器学习安全可以被自上而下分为三个级别的内容:1)应用,一般指的是机器学习模型建立、训练以及使用中的安全问题。2)机器学习库,一般指研究机器学习框架或者相关依赖库的安全问题。3)硬件,一般指针对GPU及CPU等执行计算的具体设备的安全问题进行研究。
现阶段关于机器学习安全的研究以应用级别为主,该级别上的工作一方面由于深可解释性的局限为对抗样本、隐私推断及模型后门等问题留下了可乘之机;另一方面针对模型应用的实验相对简单、较容易开展,因此现有的各类研究中已经取得了相当优秀的成果。相比之下,机器学习库层面和硬件层面的安全问题受限于方法以及实验环境问题,现有的研究尽管已有起色,但仍受到各类因素的局限,且关注点往往集中在研究机器学习框架的性能与效率上,各界对于潜伏在框架内的安全问题关注也不够多,然而机器学习库层面的安全问题往往具备较高的隐蔽性,会对普通使用者带来难以承受的安全威胁。
现有针对机器学习框架潜在漏洞问题检测的研究,一般基于暴露出漏洞问题的模型,在检测效率和对框架API(应用程序接口)的覆盖率上都比较差,在实际检测中难以起到很好的效果。
发明内容
本发明的目的在于克服上述现有技术中针对机器学习框架潜在漏洞问题的检测,在检测效率和对框架API(应用程序接口)的覆盖率上都比较差的缺点,提供一种机器学习框架漏洞检测方法、系统、设备及可读存储介质。
为达到上述目的,本发明采用以下技术方案予以实现:
本发明第一方面,一种机器学习框架漏洞检测方法,包括以下步骤:
S1:根据预设API的参数配置要求,随机生成预设API的若干单层模型;
S2:将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;
S3:根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。
本发明机器学习框架漏洞检测方法进一步的改进在于:
所述框架漏洞类型包括NaN输出漏洞、运算结果不一致漏洞及崩溃不一致漏洞。
所述S3的具体方法为:
当不同机器学习框架对同一单层模型的实现结果中,存在机器学习框架的输出结果为NaN时,则当前机器学习框架在该单层模型下存在NaN输出漏洞;
当不同机器学习框架对同一单层模型的实现结果中,存在任意两个机器学习框架对同一单层模型的实现结果之间的差值超过预设阈值时,则所有机器学习框架在该单层模型下存在运算结果不一致漏洞;
当不同机器学习框架对同一单层模型的实现结果中,存在部分机器学习框架正常进行,其余机器学习框架发生崩溃时,则发生崩溃的机器学习框架在该单层模型下存在崩溃不一致漏洞。
还包括以下步骤:
S4:针对无漏洞的单层模型,修改无漏洞的单层模型的模型权重与输入,得到若干修改后的单层模型;其中,无漏洞的单层模型为不同机器学习框架对同一单层模型的实现结果没有差异或者只存在精度误差造成的差异时的单层模型;
S5:将若干修改后的单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果,并根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型;
S6:建立各框架漏洞类型的适应度函数,针对若干修改后的单层模型中的无漏洞的单层模型,计算各框架漏洞类型的适应度函数,选取适应度函数取值最优的单层模型更新S4中的无漏洞的单层模型;
S7:重复S4~S6至预设次数,或重复S4~S6至检测到框架漏洞。
所述S4中修改无漏洞的单层模型的模型权重与输入的具体方法为:
向无漏洞的单层模型的模型权重与输入中均加入高斯噪声,得到修改后的单层模型,通过修改加入高斯噪声的大小,得到若干修改后的单层模型。
所述S6中建立各框架漏洞类型的适应度函数的具体方法为:
针对NaN输出漏洞,适应度函数为机器学习框架的输出结果中最大值与最小值的差;针对运算结果不一致漏洞,适应度函数为不同机器学习框架的输出结果总数值差异的最大值。
本发明第二方面,一种机器学习框架漏洞检测系统,包括:
单层模型生成模块,用于根据API的参数配置要求,随机生成API的若干单层模型;
实现结果获取模块,用于将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;以及
框架漏洞确定模块,用于根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。
本发明机器学习框架漏洞检测系统进一步的改进在于:
还包括单层模型修改模块以及单层模型选取模块;
其中,单层模型修改模块用于针对无漏洞的单层模型,修改无漏洞的单层模型的模型权重与输入,得到若干修改后的单层模型;其中,无漏洞的单层模型为不同机器学习框架对同一单层模型的实现结果没有差异或者只存在精度误差造成的差异时的单层模型;
实现结果获取模块还用于将若干修改后的单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;
单层模型选取模块用于建立各框架漏洞类型的适应度函数,针对若干修改后的单层模型中的无漏洞的单层模型,计算各框架漏洞类型的适应度函数,选取适应度函数取值最优的单层模型更新单层模型修改模块中的无漏洞的单层模型。
本发明第三方面,一种终端设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述机器学习框架漏洞检测方法的步骤。
本发明第四方面,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述机器学习框架漏洞检测方法的步骤。
与现有技术相比,本发明具有以下有益效果:
本发明机器学习框架漏洞检测方法,通过随机生成预设API的若干单层模型,将若干单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果,并根据不同机器学习框架对同一单层模型的实现结果的差异,实现各机器学习框架的框架漏洞的交叉验证。本方法中,API参数配置的构造方法简单,机器学习框架的官方文档说明中一般都对每个API功能以及相关的参数有非常详细的描述,只需要根据官方文档说明设置每个参数的类型与取值范围即可进行自动化测试。同时,无需提前生成可以暴露机器学习框架漏洞的模型,且无需对API有较多先验知识,本质上是对任意API的不同参数配置以及不同输入进行贪婪搜索,这样的特性决定了本方法实现简单,复杂度低,且对机器学习框架API的覆盖率高,可以有效减少检测问题时的计算资源开销。并且,该检测方法对于机器学习框架的要求不高,现有的Keras和Onnx以及MMdnn都拥有相对成熟的技术,可以很好地对不同机器学习框架之间的功能与模型进行转换,因此该检测方法可以应用在几乎各个机器学习框架之间,使得在不同机器学习框架上进行高效的漏洞检测成为了可能,给当前机器学习库层面的机器学习安全提供了可能的研究方向。
进一步的,框架漏洞类型包括NaN输出漏洞、运算结果不一致漏洞及崩溃不一致漏洞,可以检测三类框架漏洞问题,比传统的检测方法可以检测到更多种类的问题,更加全面。
进一步的,针对无漏洞的单层模型,基于遗传算法迭代修改无漏洞的单层模型的模型权重与输入,不断进行框架漏洞检测,从而可以尽可能的发掘机器学习框架中潜在的漏洞问题,减少漏报的可能性。
附图说明
图1为本发明一个实施例中的机器学习框架漏洞检测方法流程框图;
图2为本发明再一个实施例中的机器学习框架漏洞检测方法流程框图;
图3为本发明一个实施例中的单层模型生成示意图;
图4为本发明一个实施例中的检测结果示意图;
图5为本发明再一个实施例中的单层模型生成示意图;
图6为本发明再一个实施例中的检测结果示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面结合附图对本发明做进一步详细描述:
参见图1,本发明一个实施例中,提供一种机器学习框架漏洞检测方法,基于单层测试对k个不同机器学习框架F={f1,f2,f3,…,fk}之间对于同一单层模型的实现作交叉验证,设计了一套检测方法,对机器学习框架进行高效、综合的测试,该检测方法包括以下步骤:
S1:根据预设API的参数配置要求,随机生成预设API的若干单层模型。
具体的,从机器学习框架官方文档中获取API的参数说明,并基于该参数说明随机设置参数并批量生成API的单层模型,构成单层模型集M={m1,m2,m3,…,mn}。同时,可以通过使用Keras或者Onnx等机器学习工具,确保任意单层模型mi(mi∈M)均可在多个机器学习框架F={f1,f2,f3,…,fk}中都被正确的读取与使用。
S2:将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果。
具体的,对单层模型集M重复在不同机器学习框架fj(fj∈F)中,使用相同的单层模型mi(mi∈M)处理随机生成的同一输入I,得到不同机器学习框架对同一单层模型的实现结果。
S3:根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。
具体的,根据不同机器学习框架对同一单层模型的实现结果的差异,将机器学习框架是否存在框架漏洞问题进行交叉检验,检测到存在框架漏洞时,保存对应的API参数配置以及单层模型mi。
其中,框架漏洞类型包括NaN输出漏洞、运算结果不一致漏洞及崩溃不一致漏洞,判断时,当不同机器学习框架对同一单层模型的实现结果中,存在机器学习框架的输出结果为NaN时,则当前机器学习框架在该单层模型下存在NaN输出漏洞;当不同机器学习框架对同一单层模型的实现结果中,存在任意两个机器学习框架对同一单层模型的实现结果之间的差值超过预设阈值时,则所有机器学习框架在该单层模型下存在运算结果不一致漏洞;当不同机器学习框架对同一单层模型的实现结果中,存在部分机器学习框架正常进行,其余机器学习框架发生崩溃时,则发生崩溃的机器学习框架在该单层模型下存在崩溃不一致漏洞。
参见图2,本发明再一实施例中,提供一种机器学习框架漏洞检测方法,该方法除包括上一实施例中检测方法的全部步骤外,还包括:基于遗传算法放大不同机器学习框架之间的实现差异,将上一实施例中未检测到框架漏洞的单层模型传入进行进一步检测,具体的,包括以下步骤:
S4:针对无漏洞的单层模型,修改无漏洞的单层模型的模型权重与输入,得到若干修改后的单层模型;其中,无漏洞的单层模型为不同机器学习框架对同一单层模型的实现结果没有差异或者只存在精度误差造成的差异时的单层模型。
具体的,对上一实施例中未检测到框架漏洞的单层模型mk(mk∈M),通过加入高斯噪声改变其模型权重与输入并将变化权重后的模型m′ k与输入两两配对得到修改后的单层模型,通过修改加入高斯噪声的大小,得到若干修改后的单层模型。本方法中不会对高斯噪声的范围进行专门的裁剪与限制,因此变异后的数值大小不会受到限制,可以尽可能的发掘潜在漏洞
S5:将若干修改后的单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果,并根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。该步骤与S2和S3类似实现过程。
S6:建立各框架漏洞类型的适应度函数,针对若干修改后的单层模型中的无漏洞的单层模型,计算各框架漏洞类型的适应度函数,选取适应度函数取值最优的单层模型更新S4中的无漏洞的单层模型。
具体的,计算若干修改后的单层模型中的无漏洞的单层模型中,每个无漏洞的单层模型的适应度函数,将结果最好的两个无漏洞的单层模型选取进行交叉生成新的无漏洞的单层模型,即最优的单层模型。其中,建立各框架漏洞类型的适应度函数的具体方法为:针对NaN输出漏洞,适应度函数为机器学习框架的输出结果中最大值与最小值的差,通过放大该差异增大输出的不均匀性,提升后续操作中产生溢出得到NaN的几率;针对运算结果不一致漏洞,适应度函数为不同机器学习框架的输出结果总数值差异的最大值;针对崩溃不一致漏洞,难以定义适宜的适应度函数,因此不建立适应度函数,采用随机生成的参数修改单层模型的输入,作为最优的单层模型。
S7:重复S4~S6至预设次数,或重复S4~S6至检测到框架漏洞。
参见图3,本发明再一实施例中,以一个机器学习中常用的API:Conv2D,主要对于两维图片做卷积操作,利用Keras确保该功能可以被多个机器学习框架正确的读取使用,通过上述机器学习框架漏洞检测方法交叉验证机器学习框架:TensorFlow、CNTK以及Theano,具体的过程如下:
步骤1:单层测试步骤,具体如下:
步骤1-1:查询Keras官方文档中Conv2D的参数配置问题,得到该API的参数配置如下:{filters:整数;kernel_size:整数元组;strides:整数元组;dilation_rate:整数元组;padding:字符串;activation:字符串},利用Keras确保生成的单层模型可以被多个机器学习框架正确的加载、处理,并根据该参数配置批量生成随机参数组合的单层Conv2D模型集Mconv2d={m1,m2,m3,…,mn}。其中三个单层Conv2D模型的参数配置如下:第1个单层Conv2D模型:{filters=10;kernel_size:(0,0);strides:(2,2);padding=‘same’;dilation_rate=(1,1);activation:‘relu’},第2个单层Conv2D模型:{filters=10;kernel_size:(2,2);strides:(2,2);padding=‘same’;dilation_rate=(1,1);activation:‘relu’},第3个单层Conv2D模型:{filters=10;kernel_size:(3,4);strides:(2,2);padding=‘same’;dilation_rate=(1,1);activation:‘relu’}。
步骤1-2:在TensorFlow、CNTK及Theano机器学习框架中交叉检验每个单层Conv2D模型mi(mi∈Mconv2d),在保证输入Ii和单层Conv2D模型mi不变的情况下检测三类机器学习框架的漏洞问题。输入Ii是在每次测试时随机生成一个数值范围在(0,10)的尺寸为(32,32,3)的矩阵,并通过Numpy保存并由不同的机器学习框架读取使用;模型通过Keras机器学习框架确保可以被TensorFlow、CNTK及Theano三个机器学习框架读取。将检测到有漏洞问题的单层Conv2D模型与参数保存,三个机器学习框架上均可生成且无漏洞的单层Conv2D模型mk(mk∈Mconv2d)及与测试时对应的输入
步骤2:遗传算法检测步骤,具体如下:
步骤2-1:对于步骤1中单层测试中未检测出框架漏洞问题的单层Conv2D模型mk,通过向输入以及权重加入高斯噪声来修改单层Conv2D模型,变化权重后的模型m′ k与输入两两配对生成修改后的单层Conv2D模型。
步骤2-2:对于修改后的单层Conv2D模型(包含一个变异后的单层Conv2D模型m′和一个变异后的输入I′),根据希望细粒度分析的问题种类设定适应度函数,并计算其适应度函数值,并依照适应度函数的取值选取最优的单层Conv2D模型,用于下一次迭代。
步骤2-3:迭代重复步骤2-1与步骤2-2直到达到迭代次数上限或者检测到框架漏洞问题。
步骤2-4:对于在之前测试中检测到的框架漏洞问题,说明在该参数配置下框架存在漏洞问题,有待进一步研究与解决,此时保存相应的单层Conv2D模型m′以及输入I′;对于均未检测出框架漏洞问题的单层Conv2D模型与参数配置,判别该API此时为安全。参见图4,总体检测结果,其中,第1个单层Conv2D模型存在函数漏洞问题,第2个单层Conv2D模型存在函数漏洞问题,第3个单层Conv2D模型不存在函数漏洞问题。
参见图5,本发明再一实施例中,以机器学习中常用API:AvgPool2D,采用本发明机器学习框架漏洞检测方法对于Pytorch、TensorFlow以及CNTK等机器学习框架进行检测,通过Onnx确保单层模型可以被各个机器学习框架正常读取与使用。
其中,API的参数配置如下:{kernel_size:整数元组;strides:整数元组;count_include_pad:布尔值;padding:整数元组;ceil_mode:布尔值}。其中三个单层AvgPool2D模型的参数配置如下:第1个单层AvgPool2D模型:{kernel_size=(2,2);strides=(4,3);count_include_pad=True;padding=(0,1);ceil_mode=True};第2个单层AvgPool2D模型:{kernel_size=(1,1);strides=(3,3);count_include_pad=True;padding=(1,1);ceil_mode=True};第3个单层AvgPool2D模型:{kernel_size=(2,2);strides=(3,3);count_include_pad=False;padding=(0,0);ceil_mode=False}。
检测结果参见图6,其中,第1个单层AvgPool2D模型存在函数漏洞问题,第2个单层AvgPool2D模型不存在函数漏洞问题,第3个单层AvgPool2D模型不存在函数漏洞问题;有效的发掘出其中隐藏的框架漏洞问题。
本发明再一个实施例中,提供了一种机器学习框架漏洞检测系统,该机器学习框架漏洞检测系统能够用于实现上述机器学习框架漏洞检测方法,具体的,该机器学习框架漏洞检测系统包括:单层模型生成模块、实现结果获取模块以及框架漏洞确定模块。
其中,单层模型生成模块用于根据API的参数配置要求,随机生成API的若干单层模型;实现结果获取模块用于将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;框架漏洞确定模块用于根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。
优选的,该机器学习框架漏洞检测系统还包括单层模型修改模块以及单层模型选取模块。其中,单层模型修改模块用于针对无漏洞的单层模型,修改无漏洞的单层模型的模型权重与输入,得到若干修改后的单层模型;其中,无漏洞的单层模型为不同机器学习框架对同一单层模型的实现结果没有差异或者只存在精度误差造成的差异时的单层模型;实现结果获取模块还用于将若干修改后的单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;单层模型选取模块用于建立各框架漏洞类型的适应度函数,针对若干修改后的单层模型中的无漏洞的单层模型,计算各框架漏洞类型的适应度函数,选取适应度函数取值最优的单层模型更新单层模型修改模块中的无漏洞的单层模型。
本发明再一个实施例中,公开了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor、DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于机器学习框架漏洞检测方法的操作,包括:S1:根据API的参数配置要求,随机生成API的若干单层模型;S2:将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;S3:根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。
再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关机器学习框架漏洞检测方法的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:S1:根据API的参数配置要求,随机生成API的若干单层模型;S2:将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;S3:根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种机器学习框架漏洞检测方法,其特征在于,包括以下步骤:
S1:根据预设API的参数配置要求,随机生成预设API的若干单层模型;
S2:将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;
S3:根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。
2.根据权利要求1所述的机器学习框架漏洞检测方法,其特征在于,所述框架漏洞类型包括NaN输出漏洞、运算结果不一致漏洞及崩溃不一致漏洞。
3.根据权利要求2所述的机器学习框架漏洞检测方法,其特征在于,所述S3的具体方法为:
当不同机器学习框架对同一单层模型的实现结果中,存在机器学习框架的输出结果为NaN时,则当前机器学习框架在该单层模型下存在NaN输出漏洞;
当不同机器学习框架对同一单层模型的实现结果中,存在任意两个机器学习框架对同一单层模型的实现结果之间的差值超过预设阈值时,则所有机器学习框架在该单层模型下存在运算结果不一致漏洞;
当不同机器学习框架对同一单层模型的实现结果中,存在部分机器学习框架正常进行,其余机器学习框架发生崩溃时,则发生崩溃的机器学习框架在该单层模型下存在崩溃不一致漏洞。
4.根据权利要求1所述的机器学习框架漏洞检测方法,其特征在于,还包括以下步骤:
S4:针对无漏洞的单层模型,修改无漏洞的单层模型的模型权重与输入,得到若干修改后的单层模型;其中,无漏洞的单层模型为不同机器学习框架对同一单层模型的实现结果没有差异或者只存在精度误差造成的差异时的单层模型;
S5:将若干修改后的单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果,并根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型;
S6:建立各框架漏洞类型的适应度函数,针对若干修改后的单层模型中的无漏洞的单层模型,计算各框架漏洞类型的适应度函数,选取适应度函数取值最优的单层模型更新S4中的无漏洞的单层模型;
S7:重复S4~S6至预设次数,或重复S4~S6至检测到框架漏洞。
5.根据权利要求4所述的机器学习框架漏洞检测方法,其特征在于,所述S4中修改无漏洞的单层模型的模型权重与输入的具体方法为:
向无漏洞的单层模型的模型权重与输入中均加入高斯噪声,得到修改后的单层模型,通过修改加入高斯噪声的大小,得到若干修改后的单层模型。
6.根据权利要求4所述的机器学习框架漏洞检测方法,其特征在于,所述S6中建立各框架漏洞类型的适应度函数的具体方法为:
针对NaN输出漏洞,适应度函数为机器学习框架的输出结果中最大值与最小值的差;针对运算结果不一致漏洞,适应度函数为不同机器学习框架的输出结果总数值差异的最大值。
7.一种机器学习框架漏洞检测系统,其特征在于,包括:
单层模型生成模块,用于根据API的参数配置要求,随机生成API的若干单层模型;
实现结果获取模块,用于将每个单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;以及
框架漏洞确定模块,用于根据不同机器学习框架对同一单层模型的实现结果的差异,确定各机器学习框架是否存在框架漏洞及框架漏洞类型。
8.根据权利要求7所述的机器学习框架漏洞检测系统,其特征在于,还包括单层模型修改模块以及单层模型选取模块;
其中,单层模型修改模块用于针对无漏洞的单层模型,修改无漏洞的单层模型的模型权重与输入,得到若干修改后的单层模型;其中,无漏洞的单层模型为不同机器学习框架对同一单层模型的实现结果没有差异或者只存在精度误差造成的差异时的单层模型;
实现结果获取模块还用于将若干修改后的单层模型分别在若干机器学习框架中实现,得到不同机器学习框架对同一单层模型的实现结果;
单层模型选取模块用于建立各框架漏洞类型的适应度函数,针对若干修改后的单层模型中的无漏洞的单层模型,计算各框架漏洞类型的适应度函数,选取适应度函数取值最优的单层模型更新单层模型修改模块中的无漏洞的单层模型。
9.一种终端设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述机器学习框架漏洞检测方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述机器学习框架漏洞检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010996845.6A CN112069507B (zh) | 2020-09-21 | 2020-09-21 | 机器学习框架漏洞检测方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010996845.6A CN112069507B (zh) | 2020-09-21 | 2020-09-21 | 机器学习框架漏洞检测方法、系统、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069507A true CN112069507A (zh) | 2020-12-11 |
CN112069507B CN112069507B (zh) | 2023-04-07 |
Family
ID=73681340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010996845.6A Active CN112069507B (zh) | 2020-09-21 | 2020-09-21 | 机器学习框架漏洞检测方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069507B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800415A (zh) * | 2021-04-13 | 2021-05-14 | 深圳市云盾科技有限公司 | 一种基于贪婪算法模型的弱口令检测方法和系统 |
CN113221126A (zh) * | 2021-05-31 | 2021-08-06 | 北京中科天齐信息技术有限公司 | 一种TensorFlow程序漏洞检测方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150193693A1 (en) * | 2014-01-06 | 2015-07-09 | Cisco Technology, Inc. | Learning model selection in a distributed network |
WO2017201511A1 (en) * | 2016-05-20 | 2017-11-23 | Google Llc | Training machine learning models |
CN107463951A (zh) * | 2017-07-19 | 2017-12-12 | 清华大学 | 一种提高深度学习模型鲁棒性的方法及装置 |
CN108932527A (zh) * | 2018-06-06 | 2018-12-04 | 上海交通大学 | 使用交叉训练模型检测对抗样本的方法 |
-
2020
- 2020-09-21 CN CN202010996845.6A patent/CN112069507B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150193693A1 (en) * | 2014-01-06 | 2015-07-09 | Cisco Technology, Inc. | Learning model selection in a distributed network |
WO2017201511A1 (en) * | 2016-05-20 | 2017-11-23 | Google Llc | Training machine learning models |
CN107463951A (zh) * | 2017-07-19 | 2017-12-12 | 清华大学 | 一种提高深度学习模型鲁棒性的方法及装置 |
CN108932527A (zh) * | 2018-06-06 | 2018-12-04 | 上海交通大学 | 使用交叉训练模型检测对抗样本的方法 |
Non-Patent Citations (3)
Title |
---|
ANURAG DWARAKANATH等: "Identifying implementation bugs in machine learning based image classiiers using metamorphic testing", 《 IN PROCEEDINGS OF THE 27TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS》 * |
况晓辉等: "基于机器学习的软件脆弱性分析方法综述", 《计算机工程与科学》 * |
陈宇飞等: "人工智能系统安全与隐私风险", 《计算机研究与发展》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800415A (zh) * | 2021-04-13 | 2021-05-14 | 深圳市云盾科技有限公司 | 一种基于贪婪算法模型的弱口令检测方法和系统 |
CN112800415B (zh) * | 2021-04-13 | 2021-09-07 | 深圳市云盾科技有限公司 | 一种基于贪婪算法模型的弱口令检测方法和系统 |
CN113221126A (zh) * | 2021-05-31 | 2021-08-06 | 北京中科天齐信息技术有限公司 | 一种TensorFlow程序漏洞检测方法、装置及电子设备 |
CN113221126B (zh) * | 2021-05-31 | 2024-05-28 | 北京中科天齐信息技术有限公司 | 一种TensorFlow程序漏洞检测方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112069507B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pei et al. | AMalNet: A deep learning framework based on graph convolutional networks for malware detection | |
Qiao et al. | Merging permission and api features for android malware detection | |
Kamtuo et al. | Machine Learning for SQL injection prevention on server-side scripting | |
CN112069507B (zh) | 机器学习框架漏洞检测方法、系统、设备及可读存储介质 | |
Ficco | Detecting IoT malware by Markov chain behavioral models | |
US9152922B2 (en) | Methods, apparatus, and computer program products for quantum searching for multiple search targets | |
TW201541278A (zh) | 隨選檢測惡意程式之方法、電子裝置、及使用者介面 | |
US20110113288A1 (en) | Generating random sequences based on stochastic generative model having multiple random variates | |
CN112395612A (zh) | 一种恶意文件检测方法、装置、电子设备及存储介质 | |
Chen et al. | New visions on metamorphic testing after a quarter of a century of inception | |
Li et al. | Open source software security vulnerability detection based on dynamic behavior features | |
US20200118027A1 (en) | Learning method, learning apparatus, and recording medium having stored therein learning program | |
CN107122656A (zh) | 一种通过自调试防止外部调试的方法和装置 | |
Chaudhary et al. | RealMalSol: real-time optimized model for Android malware detection using efficient neural networks and model quantization | |
Zhao et al. | Graph neural network based netlist operator detection under circuit rewriting | |
JP6215949B2 (ja) | ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法 | |
Ding et al. | Android malware detection method based on function call graphs | |
Wu et al. | Utilizing obfuscation information in deep learning-based Android malware detection | |
CN109948800B (zh) | 风险控制方法及其系统 | |
CN107622201A (zh) | 一种抗加固的Android平台克隆应用程序快速检测方法 | |
CN110032832B (zh) | 一种Web应用程序的处理方法及装置 | |
CN106909843A (zh) | 一种计算机病毒的检测方法及装置 | |
Yam et al. | Hybrid Android Malware Detection Model using Machine learning Algorithms | |
US20200013061A1 (en) | System and method for measuring user behavior consistency based on complex correspondence system | |
JP4924177B2 (ja) | プログラム難読化装置及びプログラム |
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 |