CN112527674A - Ai框架的安全评测方法、装置、设备及存储介质 - Google Patents
Ai框架的安全评测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112527674A CN112527674A CN202011531762.6A CN202011531762A CN112527674A CN 112527674 A CN112527674 A CN 112527674A CN 202011531762 A CN202011531762 A CN 202011531762A CN 112527674 A CN112527674 A CN 112527674A
- Authority
- CN
- China
- Prior art keywords
- module
- frame
- risk
- vulnerability
- evaluation
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及软件安全技术领域,公开一种AI框架的安全评测方法、装置、设备及存储介质,该方法包括:获取待评测AI框架的框架源代码,根据框架源代码对待评测AI框架进行模块构成分析,获得框架组成分析结果,然后对待评测AI框架进行攻击面分析,获得攻击面分析结果,再基于框架组成分析结果和攻击面分析结果对待评测AI框架进行安全风险评测,获得安全风险评测结果。本发明通过将AI框架中模块的成分分析和模块的攻击面分析相结合来对AI框架进行安全风险评测,相比于现有的依赖于传统漏洞挖掘技术和依赖人工逆向分析方式,一方面能够保证风险评测的全面性和准确性,另一方面也能提高了风险评测的自动化程度和对安全风险的感知力。
Description
技术领域
本发明涉及软件安全技术领域,尤其涉及一种AI框架的安全评测方法、装置、设备及存储介质。
背景技术
近年来,许多全球知名的互联网IT技术企业发布了一系列开源的人工智能框架,如Tensorflow、PyTorch、MXNet、CNTK、Caffe等,并已经被工业界和学术界广泛采用。
各大厂商在研发人工智能框架时,更多关注其功能、性能以及面向开发者的易用性,对系统软件本身实现层面的安全性缺乏充分考虑。一方面,人工智能(ArtificialIntelligence,AI)框架内部实现层面可能带有安全隐患;另一方面,AI框架存在不同程度调用第三方组件的情况,为AI系统引入了供应链安全风险。由于框架使用者众多,框架数据安全一旦出现问题,将导致严重的危害。因此,对云端机器学习框架的数据安全进行检测至关重要,自动化安全检测产品的研制也符合工业界的需求。
目前,AI框架安全研究已经开始引起业界的重视,并有较多常见深度学习框架的漏洞被暴露出来,然而当前的框架数据安全检测仍然依赖于传统漏洞挖掘技术,并严重依赖人工逆向分析,缺少面向框架数据安全的,有针对性、系统性的自动化检测工具或方式,缺少漏洞威胁感知系统。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种AI框架的安全评测方法、装置、设备及存储介质,旨在解决现有的框架数据安全检测方式过于依赖传统的漏洞挖掘技术和人工逆向分析,导致全面性和系统性不足的技术问题。
为实现上述目的,本发明提供了一种AI框架的安全评测方法,所述方法包括以下步骤:
获取待评测AI框架的框架源代码;
根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果;
对所述待评测AI框架进行攻击面分析,获得攻击面分析结果;
基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果。
可选地,所述基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果的步骤,包括:
根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块;
通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果;
对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果;
根据所述第一风险测评结果和所述第二风险评测结果获得安全风险评测结果。
可选地,所述根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块的步骤,包括:
根据所述框架组成分析结果确定所述待评测AI框架中包含的功能处理模块和依赖组件;
根据所述攻击面分析结果从所述功能处理模块中确定目标风险模块;
根据所述目标风险模块和所述依赖组件确定所述待评测AI框架中包含的潜在风险模块。
可选地,所述通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果的步骤,包括:
获取所述潜在风险模块的模块标识信息;
采用精确匹配方式在历史漏洞数据库中查找是否存在与所述模块标识信息对应的漏洞信息;
若存在,则根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
可选地,所述采用精确匹配方式在历史漏洞数据库中查找是否存在与所述模块标识信息对应的漏洞信息的步骤之后,所述方法还包括:
若不存在,则根据所述模块标识信息在外部数据源中查找所述潜在风险模块对应的漏洞信息;
根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
可选地,所述潜在风险模块包括目标风险模块和依赖组件;
所述对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果的步骤,包括:
确定所述目标风险模块的操作对象和所能实现的模块功能;
根据所述操作对象和所述模块功能从所述目标风险模块中筛选出待检测模块;
对所述待检测模块和所述依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
可选地,所述对所述待检测模块和所述依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果的步骤,包括:
获取所述依赖组件所能实现的组件功能;
将所述组件功能属于预设功能维度的依赖组件作为待检测组件;
获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘;
对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
可选地,所述获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘的步骤,包括:
获取预先构建的漏洞挖掘数据集;
根据所述漏洞挖掘数据集中存放的音视频数据、图像数据和/或模型数据对所述待检测组件和所述待检测模块进行漏洞挖掘。
可选地,所述获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘的步骤,包括:
获取预先构建的漏洞挖掘数据集;
基于所述漏洞挖掘数据集,采用模糊测试、符号执行和/或静态分析对所述待检测组件和所述待检测模块进行漏洞挖掘。
可选地,所述对所挖掘的漏洞进行风险评测,获得第二风险评测结果的步骤,包括:
对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型;
对所挖掘的漏洞进行危害性评估,获得危害性评估结果;
根据所述风险类型和所述危害性评估结果生成第二风险评测结果。
可选地,所述对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型的步骤,包括:
按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型。
可选地,所述按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型的步骤,包括:
获取所挖掘的漏洞的Crash堆栈信息,内存访问地址和/或系统崩溃信号;
根据所述Crash堆栈信息,内存访问地址和/或系统崩溃信号按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型。
可选地,所述根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果的步骤,包括:
根据所述框架源代码获取所述待测评AI框架所包含模块的模块基本信息;
从所述模块基本信息中读取功能函数信息、文件位置信息和/或模块版本信息;
根据所述功能函数信息、所述文件位置信息和/或所述模块版本信息对所述待评测AI框架进行组成成分分析,获得框架组成分析结果。
可选地,所述对所述待评测AI框架进行攻击面分析,获得攻击面分析结果的步骤,包括:
根据所述框架源代码获取所述待测评AI框架所包含模块的模块基本信息;
从所述模块基本信息中读取功能函数信息,并根据所述功能函数信息确定所述待测评AI框架中包含的外部交互模块;
对所述外部交互模块进行攻击面分析,获得攻击面分析结果。
可选地,所述对所述外部交互模块进行攻击面分析,获得攻击面分析结果的步骤,包括:
根据所述功能函数信息从所述外部交互模块中筛选出输入处理模块、网络传输模块以及模型处理模块;
分别对所述输入处理模块、所述网络传输模块以及所述模型处理模块进行攻击面分析,获得攻击面分析结果。
此外,为实现上述目的,本发明还提出一种AI框架的安全评测装置,所述种AI框架的安全评测装置包括:
代码获取单元,用于获取待评测AI框架的框架源代码;
框架成分分析单元,用于根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果;
攻击面分析单元,用于对所述待评测AI框架进行攻击面分析,获得攻击面分析结果;
风险评估单元,用于基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果。
可选的,所述风险评估单元,还用于根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块;通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果;对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果;根据所述第一风险测评结果和所述第二风险评测结果获得安全风险评测结果。
可选的,所述风险评估单元,还用于根据所述框架组成分析结果确定所述待评测AI框架中包含的功能处理模块和依赖组件;根据所述攻击面分析结果从所述功能处理模块中确定目标风险模块;根据所述目标风险模块和所述依赖组件确定所述待评测AI框架中包含的潜在风险模块。
此外,为实现上述目的,本发明还提出一种AI框架的安全评测设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的AI框架的安全评测程序,所述AI框架的安全评测程序配置为实现如上文所述的AI框架的安全评测方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有AI框架的安全评测程序,所述AI框架的安全评测程序被处理器执行时实现如上文所述的AI框架的安全评测方法的步骤。
本发明通过获取待评测AI框架的框架源代码,根据框架源代码对待评测AI框架进行模块构成分析,获得框架组成分析结果,然后对待评测AI框架进行攻击面分析,获得攻击面分析结果,再基于框架组成分析结果和攻击面分析结果对待评测AI框架进行安全风险评测,获得安全风险评测结果。由于本发明是通过将AI框架中模块的成分分析和模块的攻击面分析相结合来对AI框架进行安全风险评测,相比于现有的依赖于传统漏洞挖掘技术和依赖人工逆向分析方式,一方面能够保证风险评测的全面性和准确性,另一方面也能提高风险评测的自动化程度和对安全风险的感知力。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的AI框架的安全评测设备的结构示意图;
图2为本发明AI框架的安全评测方法第一实施例的流程示意图;
图3为本发明AI框架的安全评测方法第二实施例的流程示意图;
图4为本发明AI框架的安全评测方法第三实施例的流程示意图;
图5为本发明AI框架的安全评测装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的AI框架的安全评测设备结构示意图。
如图1所示,该AI框架的安全评测设备可以包括:处理器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中示出的结构并不构成对AI框架的安全评测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及AI框架的安全评测程序。
在图1所示的AI框架的安全评测设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明AI框架的安全评测设备中的处理器1001、存储器1005可以设置在AI框架的安全评测设备中,所述AI框架的安全评测设备通过处理器1001调用存储器1005中存储的AI框架的安全评测程序,并执行本发明实施例提供的AI框架的安全评测方法。
本发明实施例提供了一种AI框架的安全评测方法,参照图2,图2为本发明AI框架的安全评测方法第一实施例的流程示意图。
本实施例中,所述AI框架的安全评测方法包括以下步骤:
步骤S10:获取待评测AI框架的框架源代码;
需要说明的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的计算机、计算服务设备或系统,以下简称评测设备。本实施例中的评测设备具备对AI框架进行攻击(表)面分析、已公开安全风险分析和未公开安全风险分析的能力;具备对框架内部实现安全、供应链安全进行持续的安全风险监控和0day漏洞(还未公开的漏洞)挖掘的能力;也具备对框架数据安全的持续监控能力,能够及时发现各种安全风险;同时,还具备漏洞分析及可视化能力,可以对漏洞影响范围、攻击方式进行快速判别,从而支撑有效的安全决策和响应。
本步骤中,所述待测评AI框架可以是任何人工智能领域的机器学习/深度学习框架,所述框架源代码可以是构成待评测AI框架的所有模块的源代码。
步骤S20:根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果;
可理解的是,人工智能应用/系统(AI系统)大都实现在机器学习/深度学习框架之上,机器学习/深度学习框架的使用可以让应用开发人员无需关心神经元网络分层以及培训分类的实现细节,更多关注应用本身的业务逻辑与功能。开发人员可以在框架上直接构建自己的神经元网络模型,并利用框架提供的接口对模型进行训练。
正因如此,一些机器学习/深度学习框架就掩盖了其所使用的组件依赖,同时也隐藏了人工智能应用/系统的复杂程度,但实际上系统越复杂,就越有可能包含安全隐患。任何在机器学习/深度学习框架以及它们所依赖的组件中的安全问题都会威胁到框架之上的应用系统。由于每种机器学习/深度学习框架大多实现在众多基础库和组件之上,很多机器学习/深度学习框架中还包括图像处理、矩阵计算、数据处理、GPU加速等功能模块。不同的AI系统对于输入数据、模型数据、网络传输数据等不同格式和类型的数据可能使用不同的方式进行处理。有些AI系统的框架内部实现了一些数据处理的功能模块,如Tensorflow内部实现了对BMP、JPG、PNG等常用的图片格式的图像处理模块;而某些AI系统则是直接使用第三方依赖组件来实现某些功能。如在Caffe中,就直接调用了OpenCV图像处理库中的函数来进行图像数据的处理。因此,仅对机器学习/深度学习框架内部自身实现的功能模块进行分析并不充分,还需要对各机器学习/深度学习框架在构建AI系统时需要使用的第三方依赖组件(以下简称依赖组件)进行分析,才能保证整个框架的组成成分分析的完备性。
本实施例中,评测设备在获取到框架源代码时,将根据这些框架源代码对待评测AI框架中的所有模块或组件进行成分分析,获得框架组成分析结果。
在具体实现中,评测设备可根据所述框架源代码获取所述待测评AI框架所包含模块的模块基本信息;然后从所述模块基本信息中读取功能函数信息、文件位置信息和/或模块版本信息;再根据所述功能函数信息、所述文件位置信息和/或所述模块版本信息对所述待评测AI框架进行组成成分分析,获得框架组成分析结果。
进一步地,为了使得成分分析更具针对性,提高AI框架安全评测结果的准确性。本实施例中,待评测AI框架的成分分析可包括:框架内部实现模块分析和依赖组件分析两部分。
具体的,在框架内部实现模块分析方面,主要是分析AI框架中所包含的不同功能处理模块,具体可通过获取各模块的功能函数信息、(代码)文件位置信息,然后根据这些信息来进行框架组成分析;在依赖组件分析方面,主要分析在待评测AI框架的整体实现中,使用了哪些第三方依赖组件构建不同的功能模块,具体可通过获取各模块的功能函数信息、模块版本信息(如依赖组件的版本信息),然后进行框架组成分析。
进一步地,本实施例中评测设备在框架成分分析的过程中,还可将以上的分析结果(即框架组成分析结果)保存到数据库(Mysql或MongoDB)中,以便于后续可视化展示、攻击面分析等过程中的数据提取与应用。
步骤S30:对所述待评测AI框架进行攻击面分析,获得攻击面分析结果;
应理解的是,当待评测AI框架与外部环境或系统进行交互时,可能会引入未知的安全风险。例如,在输入数据处理阶段,可能会存在数据劫持、数据替换等操作,从而使得待评测AI框架对应的深度学习系统出现识别错误;甚至当数据处理代码中存在安全风险时,攻击者可以通过构造恶意输入,控制整个深度学习系统,因此,本实施例评测设备将对整个待评测AI框架进行攻击面分析,以获得攻击面分析结果。
应理解的是,攻击面,即攻击表面(attack surface),也称攻击层面,是指软件环境中可以被未授权用户(攻击者)输入或提取数据而受到攻击的点位(攻击矢量)。本实施例中,攻击面分析是指对待评测AI框架中与外部环境或系统交互的模块进行分析,主要包括对输入处理模块(包括图像,语音,视频等)、网络传输模块(包括输入数据,模型数据,结果数据等)、模型处理模块(包括模型文件的加载解析与保存)等多个模块进行分析。
具体的,评测设备可根据所述框架源代码获取所述待测评AI框架所包含模块的模块基本信息;然后从所述模块基本信息中读取功能函数信息,并根据所述功能函数信息确定所述待测评AI框架中包含的外部交互模块;再对所述外部交互模块进行攻击面分析,获得攻击面分析结果。
在实际应用中,以安全角度进行分析可将待测评AI框架中潜在的攻击面分为以下几类:(1)输入文件处理:包括对训练和推断时用到的图片、视频、音频等类型文件的解析处理;(2)模型文件处理:包括对不同类型、格式模型文件的解析、加载、运行、保存等功能的处理;(3)数据传输处理:包括对输入数据、模型、结果的传输、展示、保存等过程的逻辑处理。
相应地,本实施例中所述攻击面分析结果包括但不限于输入文件处理分析结果、模型文件处理分析结果以及数据传输处理分析结果。具体的,评测设备可根据所述功能函数信息从所述外部交互模块中筛选出输入处理模块、网络传输模块以及模型处理模块;然后分别对所述输入处理模块、所述网络传输模块以及所述模型处理模块进行攻击面分析,获得上述攻击面分析结果。
步骤S40:基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果。
需要说明的是,本步骤中,所述安全风险评测可包括已公开安全风险(即NDay漏洞:已公开的漏洞)检测和未公开风险检测。其中,未公开风险检测可包括:0Day漏洞挖掘和漏洞危害评估。
应理解的是,考虑到不同厂商或机构在研发AI系统时可能采用旧版本的第三方组件;另外,考虑到系统更新可能带来的成本问题,旧版本的AI系统仍然可能会被广泛使用。这些旧版本的框架或组件可能带有较多的历史安全问题。基于以上原因,需要对AI系统中的已公开的安全风险(即NDay漏洞)进行安全评测。
本实施例中,上述0Day漏洞挖掘主要是对待评测AI框架中外部环境交互相关的模块(即目标风险模块)、第三方组件(即依赖组件)进行漏洞挖掘,可通过采用多种漏洞挖掘技术(如模糊测试、符号执行、静态分析等)相结合的方式进行检测。上述漏洞危害评估可包括对挖掘出的漏洞进行风险分类,并对其危害性进行评估。风险类型包括内存访问越界,空指针引用,整数溢出,除零异常等,危害性评估则涉及信息泄露、崩溃、DoS、任意代码执行等方面。
在具体实现中,评测设备可根据先根据框架组成分析结果和攻击面分析结果确定待评测AI框架中包含的潜在风险模块,然后再按照上述方式对待评测AI框架进行安全风险评测,获得安全风险评测结果。
本实施例通过获取待评测AI框架的框架源代码,根据框架源代码对待评测AI框架进行模块构成分析,获得框架组成分析结果,然后对待评测AI框架进行攻击面分析,获得攻击面分析结果,再基于框架组成分析结果和攻击面分析结果对待评测AI框架进行安全风险评测,获得安全风险评测结果。由于本实施例是通过将AI框架中模块的成分分析和模块的攻击面分析相结合来对AI框架进行安全风险评测,相比于现有的依赖于传统漏洞挖掘技术和依赖人工逆向分析方式,一方面能够保证风险评测的全面性和准确性,另一方面也能提高风险评测的自动化程度和对安全风险的感知力。
参考图3,图3为本发明AI框架的安全评测方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S40可具体包括:
步骤S401:根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块;
在具体实现中,评测设备可根据框架组成分析结果确定待评测AI框架中包含的功能处理模块和依赖组件;然后根据攻击面分析结果从功能处理模块中确定目标风险模块;再根据目标风险模块和依赖组件确定待评测AI框架中包含的潜在风险模块。
其中,所述功能处理模块可以是待评测AI框架中包含的框架内部实现模块,所述依赖组件可以是不属于框架内部实现模块的外部第三方组件。所述目标风险模块可以是从所述功能处理模块所包含的外部环境交互模块中,根据攻击面分析结果筛选出的有可能存在安全风险的模块。所述外部环境交互模块,即待评测AI框架中需要与外部环境或系统进行数据交互的模块。
可理解的是,目标风险模块属于待评测AI框架中安全风险较大的模块,而依赖组件也属于较容易出现安全风险的模块,因此本实施例中根据目标风险模块和依赖组件确定待评测AI框架中包含的潜在风险模块,采用内外结合的方式,能够较为全面的确定出待评测AI框架中包含的潜在风险模块,提高了安全评测的准确性。
步骤S402:通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果;
需要说明的是,在已公开安全风险检测方面,本实施例将基于框架组成分析结果和攻击面分析结果,对所述潜在风险模块的安全风险进行评测,即对潜在风险模块中存在的NDay漏洞进行风险类型和危害性程度的评估。
在具体实现中,评测设备可获取所述潜在风险模块的模块标识信息;然后采用精确匹配方式在历史漏洞数据库中查找是否存在与所述模块标识信息对应的漏洞信息;若存在,则根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果;若不存在,则根据所述模块标识信息在外部数据源中查找所述潜在风险模块对应的漏洞信息;根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
其中,所述模块标识信息可以是框架模块以及组件的名称、版本等信息。所述历史漏洞数据库可以是根据以往的漏洞检测数据或经验构建的漏洞数据库。所述精确匹配方式是指检索词与资源库中某一字段完全相同的检索方式,本实施例通过精确匹配的方式能够保证漏洞信息查找的准确性。所述外部数据源可以是模块或组件的官网(如官方的版本更新说明,漏洞平台等)或公开的漏洞库(如CVE,NVD,CNNVD)等。
步骤S403:对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果;
本步骤主要涉及对潜在风险模块(包括目标风险模块和依赖组件)进行未公开风险检测。具体的,评测设备可先确定目标风险模块的操作对象和所能实现的模块功能;然后根据操作对象和模块功能从目标风险模块中筛选出待检测模块;再对待检测模块和依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
其中,所述操作对象,即模块操作或使用的对象,例如Tensorflow在执行时,操作的对象是模型,而模型则被编码成计算图(computation graph)的形式,模型的参数常常以checkpoints的形式分开存储。在运行时,Tensorflow根据模型提供的模型参数执行计算图,计算图的行为依参数而定。当执行计算图的时候,Tensorflow可能会读写文件、发送或接收网络数据,甚至会启动新的进程。如CVE-2018-8825,在Tensorflow Lite TOCO编译器对TFLite文件进行解析的时候由于缺少边界检查而导致崩溃或缓冲区溢出,进而导致任意代码执行的事情发生。因此,实际操作中通过确定目标风险模块的操作对象就可以大致筛选出哪些模块是有较大可能存在风险的。
可理解的是,待评测AI框架中各模块所能实现的模块功能可能不同,例如图片处理模块可用来对图片进行处理,音视频处理模块可用来对音视频文件进行处理,而不同功能模块在进行各类数据处理时,可能会引入未知的安全风险,如在输入数据处理阶段,可能会存在数据劫持、数据替换等操作,因此,根据模块所能实现的功能也能够将一些较容易出现风险的模块筛选出来,或者是根据模块的操作对象对目标风险模块做一个筛选,将一些较容易出现风险的模块筛选出来进行更为精细化的风险测评,从而能够提高风险测评的准确度。
进一步地,考虑到任何在AI框架以及它所依赖的组件中的安全问题都会威胁到框架之上的应用系统,例如Caffe除了自身神经元网络模块实现以外,还包括137个第三方动态库,例如libprotobuf,libopencv,libz等。TensorFlow中也包含对多达97个python模块的依赖,包括librosa、numpy等,因此第三方依赖组件也是安全风险较为集中的区域,在依赖组件的漏洞挖掘方面,本实施例主要对涉及图像处理、矩阵计算、数据处理、GPU加速等功能的第三方组件进行检测。
本实施例中,评测设备对所挖掘的漏洞进行风险评测包括对所挖掘的漏洞进行风险分类,和/或对所挖掘的漏洞进行危害性评估,然后根据风险类型和/或危害性评估结果生成第二风险评测结果。
步骤S404:根据所述第一风险测评结果和所述第二风险评测结果获得安全风险评测结果。
在具体实现中,评测设备可在获取到上述第一风险测评结果和第二风险评测结果后,即可根据这些结果生成整个待评测AI框架的安全风险评测结果,所述安全风险评测结果可以是漏洞POC(Proof of Concept,含义是为观点提供证据)及分析报告。
本实施例根据框架组成分析结果和攻击面分析结果确定待评测AI框架中包含的潜在风险模块;然后通过历史漏洞数据库对潜在风险模块进行安全风险评测,获得第一风险测评结果;对潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果;再根据第一风险测评结果和第二风险评测结果获得安全风险评测结果,本实施例采用历史漏洞数据库对潜在风险模块进行已公开风险的检测,同时对潜在风险模块进行漏洞挖掘,即进行未公开风险的检测,保证了风险评测的全面性以及准确性。
参考图4,图4为本发明AI框架的安全评测方法第三实施例的流程示意图。
基于上述各实施例,在本实施例中,所述步骤S403可具体包括:
步骤S4031:确定所述目标风险模块的操作对象和所能实现的模块功能;
需要说明的是,本实施例主要涉及对待评测AI框架所包含模块的未公开安全风险的检测,主要对输入文件处理、模型文件处理,数据传输处理等三个攻击面和这些攻击面涉及到的功能模块(即所述目标风险模块)以及第三方依赖组件进行分析、检测。
在具体实现中,评测设备可根据目标风险模块的操作对象和所能实现的模块功能从目标风险模块中筛选出需要进行未公开安全风险检测的待检测模块。
步骤S4032:根据所述操作对象和所述模块功能从所述目标风险模块中筛选出待检测模块;
本实施例中,评测设备可根据目标风险模块中各模块的操作对象和模块功能筛选出安全风险较高的待检测模块,然后对这些待检测模块进行未公开安全风险的检测。
例如,若评测设备检测到目标风险模块中模块A的操作对象是模型B,而通常情况下,模型B会被编码成计算图的形式,模型A在根据模型B提供的模型参数(常以checkpoints的形式分开存储)执行计算图时,可能会涉及文件的读写、网络数据的发送或接收,这些操作可能会存在安全风险,例如Tensorflow Lite TOCO编译器对TFLite文件进行解析的时,由于缺少边界检查而导致崩溃或缓冲区溢出,进而导致任意代码执行。又例如,目标风险模块中的模块C作为需要与外部环境交互的输入处理功能模块(包括图像、语音、视频等),可能会存在数据劫持、数据替换等操作,从而出现识别错误。因此为了便于待检测模块的筛选,可按照模块功能对经常容易出现安全风险的模块进行一个归类,以使得评测设备后续可根据模块所能实现的功能筛选出较容易出现安全风险的模块。
步骤S4033:对所述待检测模块和所述依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
在具体实现中,评测设备可获取所述依赖组件所能实现的组件功能,然后将所述组件功能属于预设功能维度的依赖组件作为待检测组件;再获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘;然后对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
其中,所述预设功能维度包括但不限于图像处理、矩阵计算、数据处理以及GPU加速等。
作为漏洞挖掘的一种实施方式,评测设备可获取预先构建的漏洞挖掘数据集;然后根据所述漏洞挖掘数据集中存放的音视频数据、图像数据和/或模型数据对所述待检测组件和所述待检测模块进行漏洞挖掘。
作为漏洞挖掘的另一种实施方式,评测设备可获取预先构建的漏洞挖掘数据集;然后基于所述漏洞挖掘数据集,采用模糊测试、符号执行和/或静态分析对所述待检测组件和所述待检测模块进行漏洞挖掘。
其中,所述漏洞挖掘数据集可以是图片,音频,视频,模型等多种类型的文件构成的种子文件集合,这个数据集可用于在fuzzing(模糊测试)过程中作为初始种子文件,来生成大量的测试用例进行漏洞挖掘。
需要说明的是,本实施例主要采用主要采用多种漏洞挖掘技术(如模糊测试、符号执行和/或静态分析等)相互结合、相互补充的方式对所挖掘的漏洞进行风险评测。
其中,模糊测试是一种自动化或者半自动化的软件测试技术,通过构造随机的、非预期的畸形数据作为程序的输入,并监控程序执行过程中可能产生的异常,然后将这些异常作为分析的起点,确定漏洞的可利用性。当前主流的模糊测试工具有AFL,Peach,Driller,Honggfuzz,libfuzzer等。
符号执行是一种能够系统性探索程序执行路径的程序分析技术,通过对程序执行过程中的被污染的分支条件及其相关变量的收集和翻译,生成路径约束条件,然后使用可满足模理论(SMT)求解器进行求解,判断路径的可达性以及生成相应的测试输入。通过这种方式产生的测试输入与执行路径之间具有一对一的关系,能够避免冗余测试输入的产生,进而能有效解决模糊测试冗余测试用例过多导致的代码覆盖率增长慢的问题,主流的符号执行工具有SAGE,S2E,Mayhem,KLEE,Angr等。
静态分析技术则是对被分析目标的源程序进行分析检测,发现程序中存在的安全漏洞或隐患,是一种典型的白盒分析技术,主要包括静态字符串搜索、上下文搜索。其中,静态分析过程主要是找到不正确的函数调用及返回状态,特别是可能未进行边界检查或边界检查不正确的函数调用,可能造成缓冲区溢出的函数、外部调用函数、共享内存函数以及函数指针等。
在实际应用中,对开放源代码的程序,通过检测程序中不符合安全规则的文件结构、命名规则、函数、堆栈指针可以发现程序中存在的安全缺陷。被分析目标没有附带源程序时,就需要对程序进行逆向工程,获取类似于源代码的逆向工程代码,然后再进行搜索。使用与源代码相似的方法,也可以发现程序中的漏洞,这类静态分析方法叫做反汇编扫描。本实施例采用了底层的汇编语言进行漏洞分析,在理论上可以发现所有计算机可运行的漏洞,对于不公开源代码的程序来说往往是最有效的发现安全漏洞的方法。
应理解的是,任何在待评测AI框架以及它所依赖的组件中的安全问题都会威胁到框架之上的应用系统,造成不可估量的安全风险与危害。例如Caffe除了自身神经元网络模块实现以外,还包括137个第三方动态库,又例如模型文件解析处理库libprotobuf,图像文件处理库OpenCV、libjasper,矩阵运算库openblas等。TensorFlow中也包含对多个python模块的依赖,包括科学运算库numpy、mkl,音频处理库librosa等。
一些依赖组件,比如Caffe以来的第三方图像解析库OpenCV中的CVE-2017-12603,当AI框架对图像进行识别处理时,如果存在漏洞(如内存越界),就可能导致整个应用程序出现崩溃,甚至数据流被篡改。又例如,TensorFlow的很多应用在进行矩阵运算的时候都会用的numpy中存在一个简单逻辑漏洞CVE-2017-12852,它是发生在numpy中的pad函数。在pad函数中,存在这样一个while循环,循环结束需要使pad_before>safe_pad和pad_after>safe_pad同时不成立,而攻击者可以通过代码篡改使得pad_before和pad_after不断的增大,而safe_pad不断的减小,进而使得循环始终无法结束,从而导致拒绝服务。因此,本实施例中评测设备在对(第三方)依赖组件的未知安全风险检测时,主要对涉及图像处理、矩阵计算、数据处理、GPU加速等功能的模块进行安全检测。
在具体实现中,评测设备可获取预先构建的漏洞挖掘数据集,然后根据漏洞挖掘数据集对待检测组件和待检测模块进行漏洞挖掘;再对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
进一步地,本实施例中评测设备在对所挖掘的漏洞进行风险评测时,可具体采用以下方式:对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型;对所挖掘的漏洞进行危害性评估,获得危害性评估结果;然后根据所述风险类型和所述危害性评估结果生成第二风险评测结果。
需要说明的是,本实施例中所述风险类型包括但不限于内存访问越界,空指针引用,整数溢出,除零异常等;所述危害性评估可参考NVD、CNNVD等漏洞等级评估标准,比如漏洞类型,漏洞利用难度,漏洞影响范围等信息进行综合考虑,危害性涉及信息泄露、崩溃、DoS、任意代码执行等。
作为一种实施方式,本实施例中评测设备可按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型。
具体的,评测设备可获取所挖掘的漏洞的Crash堆栈信息,内存访问地址和/或系统崩溃信号;然后根据所述Crash堆栈信息,内存访问地址和/或系统崩溃信号按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型。
其中,所述通用缺陷枚举CWE漏洞类型是一种对源代码缺陷进行描述和分类的标准,例如CWE-125为越界读漏洞类型,CWE-476为空指针引用。
在具体实现中,评测设备可对待检测模块和依赖组件进行漏洞挖掘,然后按照上述方式对所挖掘的漏洞进行风险评测,从而获得第二风险评测结果。
本实施例通过确定目标风险模块的操作对象和所能实现的模块功能;然后根据操作对象和模块功能从目标风险模块中筛选出待检测模块;再对待检测模块和依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果。通过模块的操作对象和模块功能能够较为准确的筛选出安全风险较高的待检测模块,提高了漏洞挖掘的效率,使得漏洞挖掘更具针对性,同时通过对待检测模块和依赖组件一起进行漏洞挖掘,也能保证风险评测的结果的准确性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有AI框架的安全评测程序,所述AI框架的安全评测程序被处理器执行时实现如上文所述的AI框架的安全评测方法的步骤。
参照图5,图5为本发明AI框架的安全评测装置第一实施例的结构框图。
如图5所示,本发明实施例提出的AI框架的安全评测装置包括:
代码获取单元501,用于获取待评测AI框架的框架源代码;
框架成分分析单元502,用于根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果;
攻击面分析单元503,用于对所述待评测AI框架进行攻击面分析,获得攻击面分析结果;
风险评估单元504,用于基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果。
本实施例通过获取待评测AI框架的框架源代码,根据框架源代码对待评测AI框架进行模块构成分析,获得框架组成分析结果,然后对待评测AI框架进行攻击面分析,获得攻击面分析结果,再基于框架组成分析结果和攻击面分析结果对待评测AI框架进行安全风险评测,获得安全风险评测结果。由于本实施例是通过将AI框架中模块的成分分析和模块的攻击面分析相结合来对AI框架进行安全风险评测,相比于现有的依赖于传统漏洞挖掘技术和依赖人工逆向分析方式,一方面能够保证风险评测的全面性和准确性,另一方面也能提高风险评测的自动化程度和对安全风险的感知力。
基于本发明上述AI框架的安全评测装置第一实施例,提出本发明AI框架的安全评测装置的其他实施例。
作为一种实施方式,所述风险评估单元504,还用于根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块;通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果;对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果;根据所述第一风险测评结果和所述第二风险评测结果获得安全风险评测结果。
作为一种实施方式,所述风险评估单元504,还用于根据所述框架组成分析结果确定所述待评测AI框架中包含的功能处理模块和依赖组件;根据所述攻击面分析结果从所述功能处理模块中确定目标风险模块;根据所述目标风险模块和所述依赖组件确定所述待评测AI框架中包含的潜在风险模块。
作为一种实施方式,所述风险评估单元504,还用于获取所述潜在风险模块的模块标识信息;采用精确匹配方式在历史漏洞数据库中查找是否存在与所述模块标识信息对应的漏洞信息;若存在,则根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
作为一种实施方式,所述风险评估单元504,还用于在不存在与所述模块标识信息对应的漏洞信息时,根据所述模块标识信息在外部数据源中查找所述潜在风险模块对应的漏洞信息;根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
作为一种实施方式,所述风险评估单元504,还用于确定所述目标风险模块的操作对象和所能实现的模块功能;根据所述操作对象和所述模块功能从所述目标风险模块中筛选出待检测模块;对所述待检测模块和所述依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
作为一种实施方式,所述风险评估单元504,还用于获取所述依赖组件所能实现的组件功能;将所述组件功能属于预设功能维度的依赖组件作为待检测组件;获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘;对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
作为一种实施方式,所述风险评估单元504,还用于获取预先构建的漏洞挖掘数据集;根据所述漏洞挖掘数据集中存放的音视频数据、图像数据和/或模型数据对所述待检测组件和所述待检测模块进行漏洞挖掘。
作为一种实施方式,所述风险评估单元504,还用于获取预先构建的漏洞挖掘数据集;基于所述漏洞挖掘数据集,采用模糊测试、符号执行和/或静态分析对所述待检测组件和所述待检测模块进行漏洞挖掘。
作为一种实施方式,所述风险评估单元504,还用于对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型;对所挖掘的漏洞进行危害性评估,获得危害性评估结果;根据所述风险类型和所述危害性评估结果生成第二风险评测结果。
作为一种实施方式,所述风险评估单元504,还用于按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型。
作为一种实施方式,所述风险评估单元504,还用于获取所挖掘的漏洞的Crash堆栈信息,内存访问地址和/或系统崩溃信号;根据所述Crash堆栈信息,内存访问地址和/或系统崩溃信号按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型。
作为一种实施方式,所述框架成分分析单元502,还用于根据所述框架源代码获取所述待测评AI框架所包含模块的模块基本信息;从所述模块基本信息中读取功能函数信息、文件位置信息和/或模块版本信息;根据所述功能函数信息、所述文件位置信息和/或所述模块版本信息对所述待评测AI框架进行组成成分分析,获得框架组成分析结果。
作为一种实施方式,所述攻击面分析单元503,还用于根据所述框架源代码获取所述待测评AI框架所包含模块的模块基本信息;从所述模块基本信息中读取功能函数信息,并根据所述功能函数信息确定所述待测评AI框架中包含的外部交互模块;对所述外部交互模块进行攻击面分析,获得攻击面分析结果。
作为一种实施方式,所述攻击面分析单元503,还用于根据所述功能函数信息从所述外部交互模块中筛选出输入处理模块、网络传输模块以及模型处理模块;分别对所述输入处理模块、所述网络传输模块以及所述模型处理模块进行攻击面分析,获得攻击面分析结果。
本发明AI框架的安全评测装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
本发明提供A1一种AI框架的安全评测方法,所述种AI框架的安全评测方法包括:
获取待评测AI框架的框架源代码;
根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果;
对所述待评测AI框架进行攻击面分析,获得攻击面分析结果;
基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果。
A2、如权利要求A1所述的AI框架的安全评测方法,所述基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果的步骤,包括:
根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块;
通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果;
对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果;
根据所述第一风险测评结果和所述第二风险评测结果获得安全风险评测结果。
A3、如权利要求A2所述的AI框架的安全评测方法,所述根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块的步骤,包括:
根据所述框架组成分析结果确定所述待评测AI框架中包含的功能处理模块和依赖组件;
根据所述攻击面分析结果从所述功能处理模块中确定目标风险模块;
根据所述目标风险模块和所述依赖组件确定所述待评测AI框架中包含的潜在风险模块。
A4、如权利要求A2所述的AI框架的安全评测方法,所述通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果的步骤,包括:
获取所述潜在风险模块的模块标识信息;
采用精确匹配方式在历史漏洞数据库中查找是否存在与所述模块标识信息对应的漏洞信息;
若存在,则根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
A5、如权利要求A2所述的AI框架的安全评测方法,所述采用精确匹配方式在历史漏洞数据库中查找是否存在与所述模块标识信息对应的漏洞信息的步骤之后,所述方法还包括:
若不存在,则根据所述模块标识信息在外部数据源中查找所述潜在风险模块对应的漏洞信息;
根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
A6、如权利要求A2所述的AI框架的安全评测方法,所述潜在风险模块包括目标风险模块和依赖组件;
所述对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果的步骤,包括:
确定所述目标风险模块的操作对象和所能实现的模块功能;
根据所述操作对象和所述模块功能从所述目标风险模块中筛选出待检测模块;
对所述待检测模块和所述依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
A7、如权利要求A6所述的AI框架的安全评测方法,所述对所述待检测模块和所述依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果的步骤,包括:
获取所述依赖组件所能实现的组件功能;
将所述组件功能属于预设功能维度的依赖组件作为待检测组件;
获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘;
对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
A8、如权利要求A7所述的AI框架的安全评测方法,所述获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘的步骤,包括:
获取预先构建的漏洞挖掘数据集;
根据所述漏洞挖掘数据集中存放的音视频数据、图像数据和/或模型数据对所述待检测组件和所述待检测模块进行漏洞挖掘。
A9如权利要求A7所述的AI框架的安全评测方法,所述获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘的步骤,包括:
获取预先构建的漏洞挖掘数据集;
基于所述漏洞挖掘数据集,采用模糊测试、符号执行和/或静态分析对所述待检测组件和所述待检测模块进行漏洞挖掘。
A10、如权利要求A7所述的AI框架的安全评测方法,所述对所挖掘的漏洞进行风险评测,获得第二风险评测结果的步骤,包括:
对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型;
对所挖掘的漏洞进行危害性评估,获得危害性评估结果;
根据所述风险类型和所述危害性评估结果生成第二风险评测结果。
A11、如权利要求A10所述的AI框架的安全评测方法,所述对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型的步骤,包括:
按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型。
A12、如权利要求A11所述的AI框架的安全评测方法,所述按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型的步骤,包括:
获取所挖掘的漏洞的Crash堆栈信息,内存访问地址和/或系统崩溃信号;
根据所述Crash堆栈信息,内存访问地址和/或系统崩溃信号按照通用缺陷枚举CWE漏洞类型对所挖掘的漏洞进行风险分类,获得各漏洞所属的风险类型。
A13、如权利要求A1至A12任一项所述的AI框架的安全评测方法,所述根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果的步骤,包括:
根据所述框架源代码获取所述待测评AI框架所包含模块的模块基本信息;
从所述模块基本信息中读取功能函数信息、文件位置信息和/或模块版本信息;
根据所述功能函数信息、所述文件位置信息和/或所述模块版本信息对所述待评测AI框架进行组成成分分析,获得框架组成分析结果。
A14、如权利要求A1至A12任一项所述的AI框架的安全评测方法,所述对所述待评测AI框架进行攻击面分析,获得攻击面分析结果的步骤,包括:
根据所述框架源代码获取所述待测评AI框架所包含模块的模块基本信息;
从所述模块基本信息中读取功能函数信息,并根据所述功能函数信息确定所述待测评AI框架中包含的外部交互模块;
对所述外部交互模块进行攻击面分析,获得攻击面分析结果。
A15、如权利要求A14所述的AI框架的安全评测方法,所述对所述外部交互模块进行攻击面分析,获得攻击面分析结果的步骤,包括:
根据所述功能函数信息从所述外部交互模块中筛选出输入处理模块、网络传输模块以及模型处理模块;
分别对所述输入处理模块、所述网络传输模块以及所述模型处理模块进行攻击面分析,获得攻击面分析结果。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种AI框架的安全评测方法,其特征在于,所述种AI框架的安全评测方法包括:
获取待评测AI框架的框架源代码;
根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果;
对所述待评测AI框架进行攻击面分析,获得攻击面分析结果;
基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果。
2.如权利要求1所述的AI框架的安全评测方法,其特征在于,所述基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果的步骤,包括:
根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块;
通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果;
对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果;
根据所述第一风险测评结果和所述第二风险评测结果获得安全风险评测结果。
3.如权利要求2所述的AI框架的安全评测方法,其特征在于,所述根据所述框架组成分析结果和所述攻击面分析结果确定所述待评测AI框架中包含的潜在风险模块的步骤,包括:
根据所述框架组成分析结果确定所述待评测AI框架中包含的功能处理模块和依赖组件;
根据所述攻击面分析结果从所述功能处理模块中确定目标风险模块;
根据所述目标风险模块和所述依赖组件确定所述待评测AI框架中包含的潜在风险模块。
4.如权利要求2所述的AI框架的安全评测方法,其特征在于,所述通过历史漏洞数据库对所述潜在风险模块进行安全风险评测,获得第一风险测评结果的步骤,包括:
获取所述潜在风险模块的模块标识信息;
采用精确匹配方式在历史漏洞数据库中查找是否存在与所述模块标识信息对应的漏洞信息;
若存在,则根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
5.如权利要求2所述的AI框架的安全评测方法,其特征在于,所述采用精确匹配方式在历史漏洞数据库中查找是否存在与所述模块标识信息对应的漏洞信息的步骤之后,所述方法还包括:
若不存在,则根据所述模块标识信息在外部数据源中查找所述潜在风险模块对应的漏洞信息;
根据查找到的漏洞信息对所述潜在风险模块进行安全风险评测,获得第一风险测评结果。
6.如权利要求2所述的AI框架的安全评测方法,其特征在于,所述潜在风险模块包括目标风险模块和依赖组件;
所述对所述潜在风险模块进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果的步骤,包括:
确定所述目标风险模块的操作对象和所能实现的模块功能;
根据所述操作对象和所述模块功能从所述目标风险模块中筛选出待检测模块;
对所述待检测模块和所述依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
7.如权利要求6所述的AI框架的安全评测方法,其特征在于,所述对所述待检测模块和所述依赖组件进行漏洞挖掘,并对所挖掘的漏洞进行风险评测,获得第二风险评测结果的步骤,包括:
获取所述依赖组件所能实现的组件功能;
将所述组件功能属于预设功能维度的依赖组件作为待检测组件;
获取预先构建的漏洞挖掘数据集,根据所述漏洞挖掘数据集对所述待检测组件和所述待检测模块进行漏洞挖掘;
对所挖掘的漏洞进行风险评测,获得第二风险评测结果。
8.一种AI框架的安全评测装置,其特征在于,所述种AI框架的安全评测装置包括:
代码获取单元,用于获取待评测AI框架的框架源代码;
框架成分分析单元,用于根据所述框架源代码对所述待评测AI框架进行模块构成分析,获得框架组成分析结果;
攻击面分析单元,用于对所述待评测AI框架进行攻击面分析,获得攻击面分析结果;
风险评估单元,用于基于所述框架组成分析结果和所述攻击面分析结果对所述待评测AI框架进行安全风险评测,获得安全风险评测结果。
9.一种AI框架的安全评测设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的AI框架的安全评测程序,所述AI框架的安全评测程序配置为实现如权利要求1至7中任一项所述的AI框架的安全评测方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有AI框架的安全评测程序,所述AI框架的安全评测程序被处理器执行时实现如权利要求1至7任一项所述的AI框架的安全评测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531762.6A CN112527674B (zh) | 2020-12-22 | 2020-12-22 | Ai框架的安全评测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531762.6A CN112527674B (zh) | 2020-12-22 | 2020-12-22 | Ai框架的安全评测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527674A true CN112527674A (zh) | 2021-03-19 |
CN112527674B CN112527674B (zh) | 2022-11-04 |
Family
ID=74975760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531762.6A Active CN112527674B (zh) | 2020-12-22 | 2020-12-22 | Ai框架的安全评测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527674B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190810A (zh) * | 2021-04-30 | 2021-07-30 | 深圳沐奇科技有限公司 | 一种短视频发布用信息检测方法 |
CN113722230A (zh) * | 2021-09-07 | 2021-11-30 | 中国科学院软件研究所 | 针对模糊测试工具漏洞挖掘能力的集成化评估方法及装置 |
CN114064499A (zh) * | 2021-11-23 | 2022-02-18 | 电子科技大学 | 一种黑盒模糊测试方法、系统、电子设备及存储介质 |
CN115774881A (zh) * | 2023-02-13 | 2023-03-10 | 深圳开源互联网安全技术有限公司 | 代码审计方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101017458A (zh) * | 2007-03-02 | 2007-08-15 | 北京邮电大学 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
US20150121532A1 (en) * | 2013-10-31 | 2015-04-30 | Comsec Consulting Ltd | Systems and methods for defending against cyber attacks at the software level |
CN109086100A (zh) * | 2018-07-26 | 2018-12-25 | 中国科学院信息工程研究所 | 一种高安全可信移动终端安全体系架构及安全服务方法 |
CN111240975A (zh) * | 2020-01-07 | 2020-06-05 | 平安科技(深圳)有限公司 | 人工智能系统风险检测方法、装置、计算机设备与介质 |
-
2020
- 2020-12-22 CN CN202011531762.6A patent/CN112527674B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101017458A (zh) * | 2007-03-02 | 2007-08-15 | 北京邮电大学 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
US20150121532A1 (en) * | 2013-10-31 | 2015-04-30 | Comsec Consulting Ltd | Systems and methods for defending against cyber attacks at the software level |
CN109086100A (zh) * | 2018-07-26 | 2018-12-25 | 中国科学院信息工程研究所 | 一种高安全可信移动终端安全体系架构及安全服务方法 |
CN111240975A (zh) * | 2020-01-07 | 2020-06-05 | 平安科技(深圳)有限公司 | 人工智能系统风险检测方法、装置、计算机设备与介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190810A (zh) * | 2021-04-30 | 2021-07-30 | 深圳沐奇科技有限公司 | 一种短视频发布用信息检测方法 |
CN113722230A (zh) * | 2021-09-07 | 2021-11-30 | 中国科学院软件研究所 | 针对模糊测试工具漏洞挖掘能力的集成化评估方法及装置 |
CN113722230B (zh) * | 2021-09-07 | 2023-06-16 | 中国科学院软件研究所 | 针对模糊测试工具漏洞挖掘能力的集成化评估方法及装置 |
CN114064499A (zh) * | 2021-11-23 | 2022-02-18 | 电子科技大学 | 一种黑盒模糊测试方法、系统、电子设备及存储介质 |
CN114064499B (zh) * | 2021-11-23 | 2023-04-07 | 电子科技大学 | 一种黑盒模糊测试方法、系统、电子设备及存储介质 |
CN115774881A (zh) * | 2023-02-13 | 2023-03-10 | 深圳开源互联网安全技术有限公司 | 代码审计方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112527674B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112527674B (zh) | Ai框架的安全评测方法、装置、设备及存储介质 | |
US8850581B2 (en) | Identification of malware detection signature candidate code | |
US11748487B2 (en) | Detecting a potential security leak by a microservice | |
WO2016135729A1 (en) | A method to identify known compilers functions, libraries and objects inside files and data items containing an executable code | |
CN108984416B (zh) | 一种评估Maven环境中依赖冲突危险级别的方法 | |
CN107103237A (zh) | 一种恶意文件的检测方法及装置 | |
US20150143342A1 (en) | Functional validation of software | |
CN111427792A (zh) | 测试方法、装置、电子设备和可读存储介质 | |
CN116932381A (zh) | 小程序安全风险自动化评估方法及相关设备 | |
CN113312618A (zh) | 程序漏洞检测方法、装置、电子设备及介质 | |
Cheng et al. | Logextractor: Extracting digital evidence from android log messages via string and taint analysis | |
US9244821B2 (en) | Latent defect indication | |
Hu et al. | Robust app clone detection based on similarity of ui structure | |
CN114826639A (zh) | 基于函数调用链跟踪的应用攻击检测方法及装置 | |
CN112464237A (zh) | 一种静态代码安全诊断方法及装置 | |
CN116861433A (zh) | 基于No GIL并行的以太坊智能合约交易缺陷检测方法及装置 | |
US20230141948A1 (en) | Analysis and Testing of Embedded Code | |
CN117272308A (zh) | 软件安全测试方法、装置、设备、存储介质及程序产品 | |
CN114969759B (zh) | 工业机器人系统的资产安全评估方法、装置、终端及介质 | |
CN116127464A (zh) | 安全测试方法、装置、设备及存储介质 | |
CN111190813B (zh) | 基于自动化测试的安卓应用网络行为信息提取系统及方法 | |
Vimpari | An evaluation of free fuzzing tools | |
US11321451B2 (en) | Method and system for detection of post compilation modification of binary images | |
US20240248995A1 (en) | Security vulnerability lifecycle scope identification | |
CN118194293A (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 |