一种TensorFlow程序漏洞检测方法、装置及电子设备制造方法及图纸

技术编号:29585122 阅读:14 留言:0更新日期:2021-08-06 19:43
本发明专利技术提供一种TensorFlow程序漏洞检测方法、装置及电子设备,其中,方法,包括:遍历每一条程序路径,并根据每一条程序路径构建形状流图,所述形状流图表征程序中函数的调用关系以及张量信息的传递过程,所述张量信息包括未知张量信息;根据所述形状流图,建立约束关系式;根据目标约束求解器,对所述约束关系式进行求解,得到求解结果,根据所述求解结果,得到相应的检测结果。通过实施本发明专利技术,对于未知的张量信息,也可以将其建立在约束关系式中,通过求解器对该约束关系式进行求解,从而判断其是否满足约束条件,从而避免了静态分析检测在没有完整的形状信息的情况下,不能有效完成形状漏洞的检测的问题,提高了漏洞检测的准确性。

【技术实现步骤摘要】
一种TensorFlow程序漏洞检测方法、装置及电子设备
本专利技术涉及漏洞检测领域,具体涉及一种TensorFlow程序漏洞检测方法、装置及电子设备。
技术介绍
深度学习已在工业中得到了广泛应用。有了开源框架,开发者们就可有效地为各个领域的应用设计新的深度学习模型(例如图像识别、自然语言处理、自动驾驶汽车等)。为帮助开发者们有效测试和训练模型,企业已搭建了各种专门的平台(例如谷歌云人工智能、微软Azure机器学习、AmazanSageMake等)。这些平台都拥有丰富的计算资源,包括GPU和人工智能加速器,每天都运行着数以千计的深度学习任务。与其他软件一样,深度学习程序也会产生漏洞。在现实工业环境中,这些漏洞会导致任务失败并造成时间和资源浪费。关于如何解决深度学习程序错误,目前已开展了多项研究。比如,Zhang等人在微软的Philly平台上对深度学习中的失败任务程序进行了广泛的实证研究。Sifis等人开发了一种新的静态分析方法来检测TensorFlow程序中的形状错误。通过静态分析检测“形状错误”漏洞时,需要在数据日志中对张量算子建模,将张量形状推导为具体的形状。因此,静态分析方法对于程序中已知的形状,可有效地检测出形状漏洞。但是,根据对工业TensorFlow应用的研究,在很多情况下,并不能完全得到张量的秩或维度大小,也即,不能得到完整的形状信息,此时,静态分析检测就无法有效完成形状漏洞的检测。
技术实现思路
有鉴于此,本专利技术实施例提供了一种TensorFlow程序漏洞检测方法、装置及电子设备,以解决现有技术中静态分析检测无法在没有完整的形状信息的情况下,有效完成形状漏洞的检测的缺陷。根据第一方面,本专利技术实施例提供了一种TensorFlow程序漏洞检测方法,包括如下步骤:遍历每一条程序路径,并根据每一条程序路径构建形状流图,所述形状流图表征程序中函数的调用关系以及张量信息的传递过程,所述张量信息包括未知张量信息;根据所述形状流图,建立约束关系式;根据目标约束求解器,对所述约束关系式进行求解,得到求解结果,根据所述求解结果,得到相应的检测结果。可选地,所述根据每一条程序路径构建形状流图,包括:通过赋值或参数传递规则以及节点属性,对所述目标调用函数向后切片,得到所述程序路径上的调用关系;采集所述调用关系之间的形状信息;根据所述程序路径上的调用关系以及所述调用关系之间的形状信息,构建所述形状流图。可选地,所述根据所述形状流图,建立约束关系式,包括:提取所述形状流图中的每一个张量运算符和/或标量指令;根据所述张量运算符和/或标量指令,得到相应约束关系;根据所述约束关系,形成约束关系式。可选地,所述根据所述张量运算符和/或标量指令,得到相应约束关系,包括:当张量T的秩为常数C,具体化张量T时,相应约束关系为:其中,T[i]为第i个形状维度的大小,|T|为T的元素总数量,T[-1]为T的最后一个形状维度的大小,T[c-1]为T的C-1个形状维度的大小,为T的秩。可选地,所述根据所述张量运算符和/或标量指令,得到相应约束关系,包括:当所述张量运算符为Y=reshape(A,B)时,所述约束关系为:其中,Y[i]表征张量Y的第i维形状,Bi表征矢量B的第i个元素的数值,表征张量Y的秩,|B|表征张量B的元素数量,|A|表征张量A的元素数量,concretize(Y,|B|)表征通过|B|实现对张量Y的具体化。可选地,所述根据所述张量运算符和/或标量指令,得到相应约束关系,包括:当所述张量运算符为Broadcast(D,E,Fi,j)时,所述约束关系为:((D[i]==E[j])∧(F[i]==D[i]))∨((D[i]==1)∧(F[i]==E[j]))∨((E[j]==1)∧F[i]==D[i]);其中,D[i]表示张量D的第i维度大小,E[j]表示张量E的第j维度大小,F[i]表示张量F的第i维度大小。可选地,所述根据所述张量运算符和/或标量指令,得到相应约束关系,包括:当所述张量运算符为H=logits(K,M),且张量K的秩和/或张量M的秩不为常数时,所述约束关系为:其中,表示张量K的秩,表示张量M的秩,Broadcast(K,M,H,0,0)表征对输入张量K的第1个维度、结果张量H的第1个维度以及与其他输入张量M匹配的第1个维度的约束,Broadcast(K,M,H,-1,-1)表征对输入张量K的最后1个维度、结果张量H的最后1个维度以及与其他输入张量M匹配的最后1个维度的约束,K[0]表征张量K的第一维度的大小,M[0]表征张量M的第一维度的大小,H[0]表征张量H的第一维度的大小。可选地,所述根据所述张量运算符和/或标量指令,得到相应约束关系,包括:当所述张量运算符为H=logits(K,M),且张量K的秩和张量M的秩都为常数时,所述约束关系为:其中,表示张量K的秩,表示张量M的秩,表征通过实现对张量H的具体化,表征对输入张量K的所有维度、结果张量H的所有维度以及与其他输入张量M匹配的所有维度的约束,表征张量K从张量H中复制第一维度到第维度的信息,表征广播匹配张量K与张量M的到的维度信息,表征通过实现对张量H的具体化,表征张量H从张量K中复制第一维度到第维度的信息,表征广播匹配张量K与张量M的到的维度信息。可选地,所述根据所述求解结果,得到相应的检测结果,包括:当求解结果为无法求解约束,则发出错误警报;当求解结果为用户输入受常数约束,则显示期望用户输入。可选地,所述目标约束求解器为Z3求解器。根据第二方面,本专利技术实施例提供一种TensorFlow程序漏洞检测装置,包括:形状流图构建模块,用于遍历每一条程序路径,并根据每一条程序路径构建形状流图,所述形状流图表征程序中函数的调用关系以及张量信息的传递过程,所述张量信息包括未知张量信息;约束关系式建立模块,用于根据所述形状流图,建立约束关系式;检测结果确定模块,用于根据目标约束求解器,对所述约束关系式进行求解,得到求解结果,根据所述求解结果,得到相应的检测结果。根据第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面或第一方面任一实施方式所述的TensorFlow程序漏洞检测方法的步骤。根据第四方面,本专利技术实施例提供一种存储介质,其上存储有计算机指令,该指令被处理器执行时实现第一方面或第一方面任一实施方式所述的TensorFlow程序漏洞检测方法的步骤。本专利技术技术方案,具有如下优点:本专利技术实施例提供的TensorFlow程序漏洞检测方法,通过遍历每一条程序路径,并根据每一条程序路径构建形状流图,根据形状流图,建立约束关系式,而对于未知的张量信息,也可以将其建立在约束关系式中,通过求解器对该约束关系式进行求解,从而判断其是否满足约束条件,从而避免了静态分析检测在没有完整的形状信息的情况下,不能有效本文档来自技高网...

【技术保护点】
1.一种TensorFlow程序漏洞检测方法,其特征在于,包括如下步骤:/n遍历每一条程序路径,并根据每一条程序路径构建形状流图,所述形状流图表征程序中函数的调用关系以及张量信息的传递过程,所述张量信息包括未知张量信息;/n根据所述形状流图,建立约束关系式;/n根据目标约束求解器,对所述约束关系式进行求解,得到求解结果,根据所述求解结果,得到相应的检测结果。/n

【技术特征摘要】
1.一种TensorFlow程序漏洞检测方法,其特征在于,包括如下步骤:
遍历每一条程序路径,并根据每一条程序路径构建形状流图,所述形状流图表征程序中函数的调用关系以及张量信息的传递过程,所述张量信息包括未知张量信息;
根据所述形状流图,建立约束关系式;
根据目标约束求解器,对所述约束关系式进行求解,得到求解结果,根据所述求解结果,得到相应的检测结果。


2.根据权利要求1所述的方法,其特征在于,所述根据每一条程序路径构建形状流图,包括:
通过赋值或参数传递规则以及节点属性,对所述目标调用函数向后切片,得到所述程序路径上的调用关系;
采集所述调用关系之间的形状信息;
根据所述程序路径上的调用关系以及所述调用关系之间的形状信息,构建所述形状流图。


3.根据权利要求1所述的方法,其特征在于,所述根据所述形状流图,建立约束关系式,包括:
提取所述形状流图中的每一个张量运算符和/或标量指令;
根据所述张量运算符和/或标量指令,得到相应约束关系;
根据所述约束关系,形成约束关系式。


4.根据权利要求3所述的方法,其特征在于,所述根据所述张量运算符和/或标量指令,得到相应约束关系,包括:
当张量T的秩为常数C,具体化张量T时,相应约束关系为:



其中,T[i]为第i个形状维度的大小,|T|为T的元素总数量,T[-1]为T的最后一个形状维度的大小,T[c-1]为T的C-1个形状维度的大小,为T的秩。


5.根据权利要求4所述的方法,其特征在于,所述根据所述张量运算符和/或标量指令,得到相应约束关系,包括:
当所述张量运算符为Y=reshape(A,B)时,所述约束关系为:



其中,Y[i]表征张量的第i维形状,Bi表征矢量B的第i个元素的数值,表征张量的秩,|B|表征张量B的元素数量,|A|表征张量A的元素数量,concretize(Y,|B|)表征通过|B|实现对张量Y的具体化。


6.根据权利要求4所述的方法,其特征在于,所述根据所述张量运算符和/或标量指令,得到相应约束关系,包括:
当所述张量运算符为Broadcast(D,E,Fi,j)时,所述约束关系为:
((D[i]==E[j])∧(F[i]==D[i]))∨((D[i]==1)∧(F[i]==E[j]))∨((E[j]==1)∧F[i]==D[i]);
其中,D[i]表示张量D的第i维度大小,E[j]表示张量E的第j维度大小,F[i]表示张量F的第i维度大小。


7.根据权利要求6所述的方法,其特征在于,所述根据所述张量运算符和/或标量指令,得到...

【专利技术属性】
技术研发人员:刘晨陆杰李昊峰李炼
申请(专利权)人:北京中科天齐信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1