CN116209997A - 用于对软件漏洞进分类的系统和方法 - Google Patents
用于对软件漏洞进分类的系统和方法 Download PDFInfo
- Publication number
- CN116209997A CN116209997A CN202180066086.6A CN202180066086A CN116209997A CN 116209997 A CN116209997 A CN 116209997A CN 202180066086 A CN202180066086 A CN 202180066086A CN 116209997 A CN116209997 A CN 116209997A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- automatic classification
- classification
- software product
- predetermined
- 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.)
- Pending
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Peptides Or Proteins (AREA)
- Control Of Ac Motors In General (AREA)
- Logic Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供了用于对软件应用中标识的安全漏洞进行分类以及基于自动决策树分类和/或机器学习来分类它们的系统和方法。所公开的系统可以生成列出检测到的潜在漏洞问题的报告,并且使用包含决策树的自动分类策略,或者通过从报告中提取漏洞特征并且使用机器学习模型处理所提取的漏洞特征,来自动确定潜在漏洞问题是否可利用。
Description
技术领域
本公开总体涉及软件安全领域,尤其涉及用于在软件应用开发期间扫描和补救软件应用中的安全漏洞的方法和系统。
背景技术
在软件和应用的开发过程中,安全漏洞的扫描、分析和补救过程通常是缓慢和手动的。已知本领域中的基本技术和工具来扫描和标识漏洞。然而,专家需要解释结果,突出显示最相关的漏洞,并且建议修复。这通常需要大量的时间,而这样的网络安全专家供不应求。软件开发人员希望有一个更快的流程,其能够扩展以满足需求,并且保持专家分析的质量。需要智能来在软件应用的开发阶段更有效地扫描软件应用。
附图说明
本公开的实施例的前述和其他目的、特征和优点将从下文对附图中所示的实施例的更具体的描述中显而易见,其中附图标记贯穿各个视图指代相同部分。附图不一定是按比例绘制的,而是对说明本公开的原理进行了强调。
图1是示出根据本公开的某些实施例的示例性系统的架构的示例的框图。
图2是示出根据本公开的某些实施例的用于实现图1所示的示例性系统的扫描引擎和漏洞报告引擎的实施例的框图。
图3是示出根据本公开的某些实施例的用于实现图1所示的系统的示例性提取引擎实现的方法的示例的流程图。
图4是示出根据本公开的某些实施例的用于实现图1所示的示例性系统的格式化引擎和向量引擎的实施例的框图。
图5是示出根据本公开的某些实施例的用于实现图1所示的示例性系统的向量引擎、分类引擎和输出引擎的组件的实施例的框图。
图6是示出根据本公开的某些实施例的用于实现图1所示的示例性系统的各种引擎的组件的实施例的框图。
图7是示出根据本公开的某些实施例的用于实现示例性系统的自动分类方法的示例的图表。
图8(a)-图(b)是示出根据本公开的某些实施例的由示例性系统实现的扫描结果的示例的图表。
图9是示出根据本公开的某些实施例的由示例性系统实现的方法的示例的框图。
图10是示出根据本公开的某些实施例的由示例性系统实现的方法的示例的流程图。
图11示出了示例自动分类策略(ATP)规则库以及用于生成ATP和用于ATP的对应的自动分类方法(ATM)的示例步骤。
图12示出了ATP和漏洞之间的示例映射。
图13示出了图11的改进质量(IQ)指南生成的示例流程。
具体实施方式
现在将详细参考本公开的实施例,其示例在附图中示出。
本公开可以以各种形式实施,包括用于扫描和纠正软件应用中的安全漏洞的系统、方法、计算机可读介质或平台即服务(PaaS)产品。在一些示例中,本文描述的本公开的技术优势可以包括对在其开发阶段扫描的软件应用中的安全漏洞的标识。另一技术优势可能是减少了扫描结果中的误报和重复。又一技术优势可能是对漏洞根本原因的分析。另一技术优势可能包括向人工安全分析人员提供附加信息,以缩小他们的分析范围,从而提高他们的效率。技术优势可能包括对所标识的安全漏洞的分类,以及基于机器学习对其进行自动分类。在某些示例中,技术优势可以包括对扫描结果的翻译或解释以确定对由扫描标识的安全漏洞的补救。在一个示例中,技术优势可以包括经由用户界面或扫描报告向软件开发人员呈现建议,以便实现软件应用的安全开发。因此,本公开的示例性益处可以包括减少安全分析人员评估漏洞的时间,以及提高对正在开发的软件应用的安全性的信心。虽然存在向安全分析人员提供检测漏洞的基本扫描结果的低效技术,但是本公开的技术优势可以包括对扫描结果的评估和对实际漏洞与误报的确定。
图1示出了这样的系统100的实施例,其可以使用各种组件和模块以许多不同的方式实现,包括本文描述的电路的任何组合,诸如硬件、软件、中间件、应用程序接口(API)和/或用于实现电路的特征的其他组件。系统100可以包括扫描引擎101、漏洞报告引擎102、提取引擎103、格式化引擎104、向量引擎105、分类引擎106、输出引擎107、审查引擎108和/或报告引擎109。在一个实施例中,所公开的方法的步骤可以由这些引擎101-109来实现。
在一个实施例中,系统100可以包括计算设备110,其可以包括存储器111和处理器112。系统100还可以包括所生成的用户界面(UI)113和如图2所示的表述性状态转移(REST)API 114,其可以适于实现组件、模块和数据库之间的通信。如下所述,用户可以经由UI 113与系统100交互。在一些实施例中,存储器111可以包括系统100的组件和模块,包括前述引擎101-109、UI 113和REST API 114。系统100还可以包括源代码数据库115、漏洞报告数据库116、安全漏洞数据库117、java代码库或数据库118和/或训练模型数据库119。此外,系统100可以包括软件安全服务器120和路由器。
根据本公开的某些实施例,计算设备110、数据库115-119、软件安全服务器120和路由器可以以许多不同的方式在逻辑上和物理上被组织。数据库115-119可以利用不同类型的数据结构(诸如链表、哈希表或隐式存储机制)而被实现,并且可以包括关系数据库和/或对象关系数据库。数据库115-119可以存储在设备110的存储器111和/或软件安全服务器120中,或者它们可以分布在多个设备、服务器、处理系统或存储库中。例如,漏洞报告数据库116可以被配置为与软件安全服务器120通信,并且漏洞报告引擎102和提取引擎103可以被配置为与软件安全服务器120通信。在某些实施例中,计算设备110可以包括可以由处理器112控制的通信接口、显示电路和输入/输出(I/O)接口电路,以便经由图1中所示的组件和模块执行下文讨论的过程步骤。如下所述,用户可以经由显示电路显示的UI 113与系统100交互。
图2示出了被配置为扫描被存储在源代码数据库115中的源代码125的扫描引擎101的实施例。在一个实施例中,计算设备110可以包括可以实现系统100的任何期望功能的系统电路。如下所述,在一些实施例中,扫描引擎101可以被配置为扫描源代码125以寻找安全漏洞127。例如,扫描引擎101可以在应用扫描客户端128上被实现,如下文进一步讨论的,应用扫描客户端128可以被配置为与源代码数据库115通信,源代码数据库115存储要由系统100扫描的源代码125。在一个实施例中,应用扫描客户端128可以包括计算设备110。备选地,源代码数据库115可以在计算设备110上被实现,计算设备110可以被配置为与在另一设备上被实现的应用扫描客户端128通信,该另一设备可以适于与显示器129通信。在一些实施例中,如图2所示,扫描引擎101还可以被配置为生成漏洞报告130,并且将漏洞报告130传输到漏洞报告引擎102。
在某些实施例中,作为所公开的方法的初始步骤,扫描引擎101可以接收扫描源代码125的扫描请求。在一些实施例中,这可以是该过程的初始阶段,其中客户端或用户请求分析源代码125以检测源代码125内或与源代码125相关的安全漏洞或威胁127。在一个示例中,该初始分析可以由系统100结合代码分析器133来执行。在某些实施例中,扫描引擎101中的代码分析器133可以通过商业包或开源解决方案来实现。例如,代码分析器133可以包括扫描工具,例如Veracode、HCL App Scan、Checkmarx和/或Fortify。一般而言,代码分析器133试图通过使用漏洞报告130来保护系统免受业务关键型软件应用中的安全缺陷的影响。代码分析器133可以扫描软件产品或应用135的源代码125,并且生成漏洞报告130。在某些实施例中,漏洞报告引擎102可以生成漏洞报告130。
在一些实施例中,由客户端132选择、接收和/或标识的应用135的源代码125可以存储在源代码数据库115内。这可以包括客户端132请求评估或分析的源代码125,以便确定源代码125是否包括可以被安全分析人员认为可利用的安全漏洞127。在一个实施例中,源代码125可以被推送或传输到应用扫描客户端128。应用扫描客户端128可以包括静态应用安全测试软件。在某些实施例中,用户或客户端132可以向应用扫描客户端128键入、输入、提交或传输软件应用135的源代码125。
应用扫描客户端128可以生成对应于源代码125的扫描的漏洞报告130。通常,安全分析人员可以花费较长的时间来经由应用扫描客户端128审阅这样的文件,以便确定可能是安全漏洞/威胁127的源代码125,并且确定可以被忽略的误报。漏洞报告130可以被存储在软件安全服务器120中。漏洞报告130可以包括由代码分析器133使用的扫描项目代码,代码分析器133可以包括由安全专业人员用来扫描企业软件以寻找安全问题的一套工具。在一些实施例中,漏洞报告130可以被存储在漏洞报告数据库116中,漏洞报告数据库116可以包括关系数据库服务(RDS)。被存储在漏洞报告数据库116中的漏洞报告130可以被传输到软件安全服务器120。在一个实施例中,软件安全服务器120可以被配置为经由REST API114将漏洞报告130传输到提取引擎103,如图2中所示的漏洞报告引擎102和提取引擎103之间的大箭头所示。
图3示出了由提取引擎103实现的特征提取过程的实施例,提取引擎103可以被配置为与软件安全服务器120通信。所公开的方法的特征提取过程可以包括:基于由代码分析器133生成的漏洞报告130,从漏洞报告130中提取指示源代码125的一部分是否可能有漏洞的特征138,以及将特征138传输到格式化引擎104。该过程可以包括经由REST API 114从软件安全服务器120接收(框301)漏洞报告130的初始步骤。可以检索包括安全漏洞127的不同部分的特征138(框302)。在某些实施例中,这种检索到的特征138可以基于对应的漏洞报告130来标识源代码125的安全漏洞127的相关威胁。
特征提取过程还可以包括源代码提取的步骤。参见框303。该步骤可以由源代码提取器300来执行,如图2所示,其从被扫描和/或测试的应用135中提取原始源代码125。参见图3中的框303。所提取的源代码125可以包括对应于检索到的特征138的代码125。因此,源代码提取器300可以被配置为直接地或间接地与源代码数据库115通信,如图2所示。此外,该过程可以包括将所提取的源代码125的安全漏洞127推送或传输(图3中的框304)到漏洞数据库117的步骤。该传输可以经由格式化引擎104来执行。因此,所有安全漏洞127可以由代码分析器133检测,并且源代码125可以被发送到并且被存储在漏洞数据库117中,以供系统100进一步处理。
在一个实施例中,格式化引擎104可以将从提取引擎103的源代码提取器300接收的安全漏洞127格式化为被配置为由漏洞数据库117接收的格式。在一个示例中,所接收的安全漏洞127可以以与系统100兼容或可由系统100使用的格式而被存储。格式化引擎104可以以适于使系统100能够进行安全漏洞127的转换的格式,来存储由代码分析器133标识并从提取引擎103接收的所有安全漏洞127。该格式可以由系统100可读取。在该格式中,可以通过由系统100执行的分析实验来分析清理后或重新格式化的漏洞127。被存储在漏洞数据库117中的清理后的漏洞127可以适于由系统100进一步转换。在某些实施例中,漏洞数据库117可以适于将清理后的安全漏洞127传输到向量引擎105。
图4示出了向量引擎105的示例以及其与其他引擎104和106的组件的交互,如引擎之间的大箭头所示。向量引擎105可以被配置为创建用于训练机器学习(ML)模型141的特征向量173,以便预测或确定安全漏洞127是否实际上是威胁。可以将清理后的安全漏洞127从人工可读特征138转换成可由机器学习模型141处理的格式。在一些实施例中,抽象语法树(AST)可以被用作将针对清理后的安全漏洞127的数据分解成可由机器学习模型141处理的格式的方法。在一个实施例中,如下所述,向量化过程中的标记器(tokenizer)155可以用AST 143替换。语法树143可以包括以编程语言编写的源代码125的抽象语法结构的树表示。树143的每个节点可以表示源代码125中出现的构造。
如图4所示,向量引擎105的编排器(orchestrator)147可以从格式化引擎104接收清理后的漏洞127。在一些实施例中,漏洞数据库117可以被配置为经由REST API 114将清理后的安全漏洞127传输到编排器147。漏洞路由器148可以被配置为与编排器147通信。漏洞路由器148可以扫描清理后的漏洞127的列表,并且基于其对应的安全漏洞127的类型对每个清理后的漏洞127进行分类。基于针对已分类的漏洞127所确定的漏洞127的类型,可以基于预定的机器学习规则或编程规则在系统100中路由已分类的漏洞127。
在某些实施例中,向量引擎105可以包括语法文件151,该语法文件151可以定义语法引擎可以在用户设备110上识别的语音到文本单词、术语和短语152。语法文件151可以包括.py、.Java、.js、.cs和/或.xml文件。在一个实施例中,在语法文件151中被列出的术语152可以是语法引擎搜索并与言语响应进行比较的那些术语。当语法引擎找到匹配术语152时,语法引擎可以执行相关联的命令或将术语152输入到字段中。根据某些实施例,词法分析器154可以接收语法文件151和漏洞特征138,并且经由标记器155执行标记化(tokenization),以便返回特征138。
标记器155可以执行词法分析、词汇分析或标记化。这可以包括将针对清理后的漏洞127的字符序列156转换为标记157的序列的过程。标记化的漏洞特征158可以包括以标记化格式而被存储在存储器111中的漏洞127,其可以包括这样的标记(token)157的序列。可以选择可以托管目标源代码125的存储库160。在一个实施例中,可以基于存储库的大小来选择存储库160。所托管的代码125可以被传输到标记器161,其可以包括用于语言识别的工具。该标记器161可以将存储库160标记化并且生成标记157。
在一些实施例中,向量引擎105可以包括快速文本(FastText)创建模型162,其可以包括用于学习单词嵌入和文本分类的库。快速文本创建模型162可以接收标记157并生成经训练嵌入模型166。经训练的嵌入模型166可以包括嵌入,嵌入可以包括离散的分类变量到连续数字的向量的映射。在某些实施例中,每个已清理的漏洞127可以被映射到漏洞类别170,以便为被映射到类别170的每个已清理的漏洞127生成漏洞ID 171。在某些实施例中,向量器172可以接收经标记化的漏洞特征158作为输入,并且可以输出单个特征向量173。特征向量173可以包括从向量器172收集的所有输出。此外,特征向量可以包括到源代码树的链接,其中可以获得相关源代码。这些特征向量173可以被发送到分类引擎106。
图5示出了根据所公开的系统101的某些实施例的分类引擎106的实施例,以及其与其他引擎105和107的组件的交互。特征向量173可以被用作预先训练的ML模型141、预定编程规则150和/或综合规则(blanket rule)174的输入,以便确定清理后的漏洞127是否为威胁。分类引擎106可以通过至少三种不同的方法来确定漏洞127是否为威胁:综合规则174、编程规则150和/或ML模型141。综合规则174和编程规则150可以被应用于被配置为自动对漏洞127进行分类的自动分类方法。在某些实施例中,综合规则174可以被应用于通过漏洞路由器148而被路由的漏洞127,并且可能不需要ML模型141。可以基于一致地指示漏洞127是可利用的历史数据来选择这样的漏洞127。因此,自动假设所标识的漏洞127可能再次是可利用的可能是合理的。在一些实施例中,编程规则150可以被应用于从漏洞路由器148而被传输的漏洞127。编程规则150可以扫描漏洞127,以便检测已被标识为威胁的常见模式。在一个实施例中,AST 143可已由系统100处理,但是在被转换时可以被移除。分类引擎106还可以利用机器学习。漏洞127可以由系统100处理(例如,标记化和向量化),并且特征向量173可以被发送或输入到预先训练的模型141中,该预先训练的模型141可能先前已经分析了这样的特征向量173。随着更多的漏洞127可以被转换成特征向量173,系统100可以更频繁地利用ML模型141,因为预先训练的模型141可能更有可能已经确定特定漏洞127是否可利用。图5所示的示例性分类引擎106可以确定漏洞127是否为威胁。分类引擎106可以包括确定性分类器175,其可以实现分类算法,其结果行为可以由其初始状态和输入来确定。在一个实施例中,确定性分类器175可以不是随机的或推测的。分类引擎106还可以包括概率性分类器179,其可以包括被配置为在类别集合上预测概率分布的分类器。在一个实施例中,概率性分类器179可以基于对输入的观察,而不是仅输出该观察可能属于的最可能的类别。此外,分类引擎106可以包括训练分类器184,其可以被配置为基于特征向量173进行训练。在一些实施例中,训练分类器184可以被配置为训练确定性分类器175和/或概率性分类器179。在某些实施例中,训练分类器184可以被配置为对经训练的模型141进行训练。因此,训练分类器184可以适于与经训练的模型141通信,经训练的模型141可以被包括在输出引擎107中。规则(例如,综合规则174)可以作为规则集合被传送到确定性分类器175。例如,如果基于一致地指示漏洞127是可利用的历史数据源代码125可被标识为威胁,则可以实现综合规则174。
如图4和图5所示,漏洞路由器148可以将漏洞127直接路由到基于规则的确定性分类器175或经由向量引擎105路由到基于ML的概率性分类器179。漏洞类型集合可以与规则150和174相关联。漏洞路由器148可以确定输入漏洞扫描中的漏洞类型。当标识出与所确定的漏洞类型相关联的规则150或174时,漏洞路由器148然后可以将输入漏洞扫描路由到确定性分类器175,以根据所标识的和预先建立的规则进行处理。否则,漏洞路由器148可以将输入漏洞扫描路由到概率ML分类器179。下面参考图11进一步讨论用于为各种类型的漏洞建立各种规则150和174的分类方法的示例实施例。
在一些其他实施例中,漏洞127可以被路由到基于规则的确定性分类器175和基于ML的概率性分类器179两者,并且如果确定性分类器175和基于ML的概率性分类器179之间对漏洞175是否可利用的确定不一致,则可以执行附加仲裁以确定哪个分类器更值得信任。
输出引擎107的一个实施例也在图5中。来自输出引擎107的输出可以包括从经训练的模型141接收的初始发现,用于预测带标签的漏洞187是否为威胁。经训练的模型141可以被存储在训练模型数据库119中。在一些实施例中,经训练的模型141可以被传输到概率性分类器179。分类引擎106可以生成带标签的漏洞187的列表和/或其预测,该列表可以被存储并且稍后由系统100审查。
图6示出了审查引擎108的实施例、其与其他引擎104-107和109的组件的交互以及由审查引擎108实现的示例性过程。例如,审查引擎108可以被实现为包括用于输出审查的过程(框600)以及用于漏洞审查和模型更新的过程(框601)。通过这些过程,审查引擎108可以审查系统101确定为可利用的漏洞127,并且可以使用这些漏洞127来重新训练模型141以供将来使用。该审查可以被发送回模型141,以便进一步训练模型141。
漏洞审查和模型更新过程601可以包括更新漏洞(框602)、保留模型(框603)和更新规则(框604)的步骤。该过程可以被配置为用被确定为对综合规则174可利用的漏洞127来更新漏洞数据库117。可以将更新后的漏洞127发送回漏洞数据库117,该漏洞数据库117可以以与系统100兼容的格式来存储清理后的漏洞127。为了重新训练模型141,可以从安全分析人员(SA)审查606、数据科学家(DS)审查607、和/或质量保证(QA)审查608接收发现,并且可以执行数据分析609。从数据分析609接收的这种发现可以被传输到向量引擎105的编排器147。该发现可用于更新综合规则174、模型141和漏洞列表127。
更新后的综合规则174可以包括由从审查606-608和数据分析609接收的发现更新的规则。这些审查606-608可以由数据科学家和/或安全分析人员执行。可以对新数据执行数据分析609,以便确定用于更新综合规则174和重新训练模型141的最佳方法。自动分类方法实例610可以被配置为自动化对漏洞127的分类。漏洞审查和模型更新过程601可以基于从安全分析人员审查606、数据科学家审查607和/或质量保证审查608接收的审查结果611的组合。审查结果611可以被发送到报告引擎109。
报告引擎109可以被配置为从审查引擎108接收审查结果611。可以生成完整的报告,其可以包括实际上是威胁的所有漏洞127,如质量保证审查608所分析的。可以生成带质量保证标签的漏洞187以包括已经通过系统100并由质量保证审查608评估的漏洞127。该审查608可以由质量保证专家执行。可以为客户端132生成最终报告147,并且可以生成HTML报告188从而以HTML格式报告所有发现。
最终报告147和HTML报告188可以经由设备110显示。UI 113可以使用显示电路本地显示,或用于远程可视化,例如作为可以在本地或远程机器上运行的网络浏览器的HTML、JavaScript、音频和视频输出。UI 113和I/O接口电路可以包括触敏显示器、语音或面部识别输入、按钮、开关、扬声器和其他用户界面元素。I/O接口电路的附加示例包括麦克风、视频和静止图像相机、耳机和麦克风输入/输出插孔、通用串行总线(USB)连接器、存储卡插槽和其他类型的输入。I/O接口电路还可以包括磁或光介质接口(例如,CDROM或DVD驱动器)、串行和并行总线接口、以及键盘和鼠标接口。
在一个实施例中,用于示例性系统的组件和模块可以划分为九个部分:扫描;存储报告;提取特征;以规范格式存储所有漏洞;创建特征向量和/或抽象语法树;分类;初始输出;审查漏洞;以及最终输出和报告生成。这样经划分的部分的列表不需要按时间顺序排列。
在一个实施例中,系统100可以包括收集和使用不同扫描报告的步骤。这些扫描报告可以从多个供应商收集。扫描报告可以包括从代码分析器133接收的漏洞报告130,以及来自其他供应商的各种类型扫描的报告。自动分类可以包括混合方法。例如,系统100可以结合各种特征向量组合使用规则、过滤器、机器学习。图7示出了自动分类方法的示例。出于评估目的,这些方法可以在各种数据集上进行训练和验证。图8(a)-图8(b)示出了所标识的问题类型及其相应的总分类时间百分比、最高补救优先级和所实现的自动分类方法的示例。
在一个实施例中,系统100可以包括现有工具链与定制注释标签/变量的集成,使得自动FPA文件可以被集成回现有工具链。例如,系统100可以与从可以在存储器111中实现的应用扫描工具提取扫描结果集成,以自动对问题进行分类并将结果推送回应用扫描工具。图9示出了根据某些实施例的这样的系统100。在一个实施例中,系统100可以在存储器111中实现漏洞标识优先级确定和补救(ViPR)工具,该工具可以包括数据和分析工具的集成存储库。系统100可以包括前端191和API 114。前端191可以与用户通信,并且API 114可以与软件安全服务器120通信。此外,系统100可以组合和使用来自静态应用安全测试(SAST)和动态应用安全测试(DAST)两者的扫描报告的信息。系统100可以组合SAST和DAST分类判断,从而以统一的方式自动建议补救行动,例如,使得一个修复可以解决SAST和DAST问题两者。
如图5的150和174中所示的用于确定性分类器175的自动分类规则可以针对预定的漏洞类型集合中的每一个来创建。可以为预定的漏洞类型集合建立自动分类规则库。例如,这样的自动规则库可以包括用于每种类型的漏洞的自动分类策略(ATP),并且因此可以被称为ATP规则库。每个ATP还可以包括各种分类算法形式的一个或多个自动化方法(ATM),其可以由图5的确定性分类器175调用以评估输入漏洞。确定性分类器175的评估输出可以指示输入漏洞是不可利用的、可利用的、还是可利用性不确定的。
因此,图4的编排器147可以首先使用图5的漏洞路由器148将输入漏洞(例如,来自图4的漏洞数据库117的数据帧)映射到确定性分类器175或ML概率性分类器179。如果输入漏洞被映射到ML分类器179,则将触发特征向量创建过程,随后将为输入漏洞创建特征向量,并且将加载和调用ML模型以处理特征向量以对输入漏洞进行分类。如果输入漏洞被映射到确定性分类器175,则分类引擎106将进一步将该输入漏洞映射到预定的漏洞类型集合之一和对应的ATP。将从ATP规则库中调用其中的ATP和ATM,并将其与输入漏洞的数据帧一起传递给确定性分类器175,用于对输入漏洞进行分类。
图11中1102示出了示例ATP规则库。ATP规则库1102可以包括多个ATP 1104,每个ATP 1104对应于预定的漏洞类型集合中的一种类型。每个ATP 1104可以包括ATM 1106集合。例如,每个ATM可以包括用于确定性漏洞分类的一个或多个特定算法。如图11的1102进一步所示,输入漏洞到特定ATP的映射可以由漏洞映射器1108形成。在一些实现中,漏洞映射器1108可以是ATP规则库的一部分。输入漏洞(例如,来自图4的漏洞数据库117的漏洞数据帧)可以被传递到ATP规则库1102。如图11的箭头1110所示,ATP规则库1102可以输出ATP并将输出ATP传递给确定性分类器175。
可以以各种方式创建针对预定的漏洞类型集合中的每一个的ATP 1104和ATM1106,并将其加载到ATP规则库1102中。预定漏洞类型集合可以基于任何方法来建立。例如,预定的漏洞类型集合可以基于经由历史的Fortify漏洞扫描和分析,来确定和定义的Fortify漏洞类别和类型。每种漏洞类型可以与漏洞标识符(ID)相关联。图11的1120中示出了用于为预定的漏洞类型集合中的每一个创建ATP和ATM的示例。
ATP和ATM创建过程1120可以包括针对这些的漏洞类型中的每一个的手动分类策略(MTP)生成过程和ATP/ATM生成过程,如图11的1122和1124分别所示。如1122中所示,MTP可以被指定为作为改进质量(IQ)指南的一部分的步骤的定义,安全分析人员(SA)必须采取该指南以便将漏洞分类(归类)为例如“不是问题”、“可利用的”和“可疑的”。例如,特定漏洞类型的MTP可以由SA必须检查的问题列表来表示。问题列表可以被组织为决策树。换言之,提出问题的顺序是基于决策树而被确定的。具体地,列表中的下一个提出的问题取决于该答案并且输出列表中的前一个问题。可以为每种漏洞类型创建问题列表和决策树。下面表I示出了针对“资源注入”漏洞类型(示例漏洞ID为0043)的MTP问题的示例列表。
表I
上面表I包含问题清单和关于问题清单的决策树的信息两者。例如,当列表中第一个问题的答案可能是“超出范围”,指示此特定漏洞没有问题时,决策树将结束,而不会继续前进。然而,如果对该问题的回答是“否”或“不确定”,则决策树前进到下一个问题,并且需要回答问题“0043-2”,如表I所示。如果对问题“0043-2”的回答是“不是问题”,则决策树再次结束。否则,决策树前进到下一个问题,并且如表I中所指定的,接下来需要回答问题“0043-3”。该过程如示例表I所示继续前进,直到决策树结束。因此,表I规定了分类步骤的条件序列。每一步都提出了要SA回答的问题。问题的答案决定下一步(要么是决策树的末尾,要么是下一个问题)。表I提供了达到最终分类决定的路径。
图13示出了图11的1122的用于生成可自动形成ATP和ATM的IQ指南的示例过程。过程1122可用于经由迭代验证(1310)、增强(1312)、编码(1314)和聚合(1316)过程来处理包括上下文数据1302、实验数据1304和计算数据1306的数据源,其中输出由反应模块1320处理以生成存储在数据库1330中的IQ指南。IQ指南用于ATP和ATM的生成。
返回图11,如1124中进一步所示,一旦为每种漏洞类型创建了MTP,则可以进一步确定可以在MTP中编码什么以生成MTP的自动分类方法(ATM)。具体地,MTP中的每个问题可以对应于手动分类方法(MTM),该方法可以被转换并编码成包含自动算法的ATM(如图11的1126所示)。每个ATM可以被编码在可由分类引擎106调用的函数中。对应于MTP的自动分类策略(ATP)可以标识所编码的ATM。下面的表II示出了一个示例。
表II
在一些实施例中,如图12中的漏洞-ATP映射所示,ATP库包括多个ATP 1202。每个ATP可以与唯一标识符相关联并且表示策略,如上所述。每种漏洞类型可以与一个ATP相关联(如图12中从1204到1202的映射所示),而每个ATP可以映射到一种或多种漏洞类型(如图12中从1202到1204的映射所示,这指示多种不同的漏洞类型可以使用具有相同决策树1206的相同的ATP)。每个ATP进一步封装如上所述的决策树并链接到一个或多个ATM,如图12的1206所示。因此,每个ATP可以被实现为ATM的有序容器,如图11的1128和1106所示。每个ATM对应于决策树中的步骤。ATM是经编码的,并且可以包括各种算法。作为可调用函数的ATM可以由不同的AT共享(如图12的1206中不同的AP之间的共同的“ATM_Third_Party”和“ATM_Is-Trust”函数所示)。因此,ATM可以被收集在统一的函数库或代码存储库中。当每个ATP在其决策树中的特定步骤中引用ATM时,可以通过其在函数库或代码存储库中的唯一函数标识符来标识ATM,如图12的1206所示。集成决策树的ATP调用各种ATM的示例代码如下所示:
在一些实施例中,上面图5的分类引擎106的输出可以包括具有一些附加列的输入数据帧。例如,附加列之一可以包括来自分类引擎106的预测。另一附加列可以包括用于预测的分类器(确定性分类器175或ML概率性分类器179)的指示。另一附加列可以包括指示确定性分类器中使用的决策树的信息。所使用的决策树可以由ATP标识符来标识。
可以使用单独的机器学习模型自动化针对预定的漏洞类型集合(图11的1122)中的每一个的手动分类策略(MTP)或决策树的生成。例如,机器学习模型可以被训练用于基于历史漏洞预测准确度以特定顺序从问题库中选择问题列表。
如图9所示,由系统100实现的方法可以包括经由用户界面113选择项目的步骤。参见框900。前端191可以请求项目(参见框901),并且API 114可以将这样的项目请求发送到软件安全服务器120。参见框902。作为结果,APO 114可以接收项目。参见框903。前端191可以适于经由用户界面113显示所接收的项目。参见框904。在一些实施例中,可以经由用户界面113选择所显示的项目之一。参见框905。在某些实施例中,前端191可以标识或确定所选项目。参见框906。API 114可以适于从软件安全服务器120提取所选项目的特征。参见框907。在一个实施例中,API 114还可以适于:应用规则(框908)、应用过滤器(框909)、应用经编程的过滤器(框910)和/或应用机器学习模型(框911)。此外,根据某些实施例,API 114可以适于将结果导出到软件安全服务器120。参见框912。
在一些实施例中,通信接口可以包括无线发送器和接收器(本文称为“收发器”)以及由收发器的发送和接收电路使用的任何天线。例如,在任何版本的IEEE 802.11(例如,802.11n或802.11ac)下,或者在诸如蓝牙、Wi-Fi、WLAN、蜂窝(4G、LTE/A)的其他无线协议下,收发器和天线可以支持WiFi网络通信。通信接口还可以包括串行接口,例如通用串行总线(USB)、串行ATA、IEEE 1394、照明端口、I2C、slimBus或其他串行接口。通信接口还可以包括支持有线通信协议的线缆收发器。线缆收发器可以为多种通信协议中的任何一种提供物理层接口,例如任何类型的以太网、千兆以太网、光网络协议、电缆数据服务接口规范(DOCSIS)、数字订户线(DSL)、同步光网络(SONET)或其他协议。
系统电路可以包括硬件、软件、固件、API和/或其他电路的任何组合。例如,系统电路可以用一个或多个片上系统(SoC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、微处理器、离散模拟和数字电路以及其他电路来实现。系统电路可以实现系统100的任何期望的功能。仅作为一个示例,系统电路可以包括一个或多个指令处理器112和存储器111。存储器111可以存储例如用于执行系统100的特征的控制指令。在一种实现中,处理器112可以执行控制指令以执行系统100的任何期望的功能。控制参数可以提供并指定系统100的控制指令和其他功能的配置和操作选项。系统100还可以包括各种数据库或数据源,每个数据库或数据源都可以由系统100访问,以获得在本文描述的任何一个或多个过程期间考虑的数据。
在一个实施例中,用于管理软件的方法或系统100可以包括以下步骤:扫描软件产品或应用135的源代码以检测潜在漏洞问题;以及生成列出检测到的潜在漏洞问题的电子文档报告。该方法/系统还可以包括以下步骤:从电子文档报告中提取针对每个潜在漏洞问题的特征;接收策略数据和业务规则;将所提取的特征与策略数据和业务规则进行比较;以及基于潜在漏洞问题的源代码来确定标记。此外,该方法/系统可以包括以下步骤:基于所提取的潜在漏洞问题的特征并且基于标记来确定向量,以及基于该向量选择多种漏洞评分方法之一。在一个实施例中,漏洞评分方法可以是机器学习建模141方法、综合规则174自动分类方法和/或编程规则150自动分类方法。根据某些实施例,多个漏洞评分方法可以包括这些方法的任何组合。该方法/系统还可以包括以下步骤:使用所选择的漏洞评分方法,基于该向量来确定漏洞准确度得分,并且向用户显示该漏洞准确度得分。在一个实施例中,多个机器学习模型可以包括随机森林机器学习模型。
在某些实施例中,如图10所示,用于管理软件的方法或系统100可以包括以下步骤:获得列出软件产品的潜在漏洞问题的电子文档(框1000);从电子文档中提取每个潜在漏洞问题的特征(框1001);基于所提取的特征确定向量(框1002);基于该向量选择多个机器学习建模方法之一和自动分类方法(框1003);以及使用所选择的方法基于该向量来确定漏洞准确度得分(框1004)。该方法/系统还可以包括以下步骤:扫描软件产品的源代码以检测潜在漏洞问题;以及基于检测到的潜在漏洞问题生成电子文档。此外,该方法/系统可以包括以下步骤:接收策略数据或业务规则;将所提取的特征与策略数据或业务规则进行比较;以及基于所扫描的源代码来确定对应于检测到的潜在漏洞问题中的至少一个的标记。在一些实施例中,向量可以基于标记。该方法/系统还可以包括向用户显示漏洞准确度得分的步骤。在一个实施例中,机器学习建模方法可以包括随机森林机器学习模型。在一些实施例中,自动分类方法可以包括综合规则自动分类方法和/或编程规则自动分类方法。在某些实施例中,一种用于访问软件漏洞的方法或系统可以包括以下步骤:访问自动分类规则库,该自动分类规则库包括对应于多个预定漏洞类型的多个预定义的自动分类策略,其中每个自动分类策略包括用于确定预定的多种漏洞类型之一是否是可利用的决策树;访问机器学习模型库以对预定的多种预定漏洞类型之一是否可利用进行概率性确定;基于软件产品的源代码获得列出软件产品的潜在漏洞问题的电子文档;确定潜在漏洞问题是否与多个预定漏洞类型中的一个预定漏洞类型相关联;以及当确定潜在漏洞问题与多个预定漏洞类型中的一个预定漏洞类型相关联时,基于使用从自动分类规则库被检索的与多个预定漏洞类型中的一个预定漏洞类型和对应的决策树相关联的自动分类策略处理电子文档,来确定软件产品是否可利用,否则基于使用来自机器学习模型库的机器学习模型来处理电子文档,来概率性地确定软件产品是否可利用。
所有讨论,无论所描述的特定实现如何,本质上都是示例性的,而不是限制性的。例如,尽管这些实现的选定方面、特征或组件被描述为存储在存储器中,但是一个或多个系统的全部或部分可以存储在其他计算机可读存储介质上、跨其他计算机可读存储介质分布或从其他计算机可读存储介质读取,其他计算机可读存储介质例如是诸如硬盘、闪存驱动器、软盘和CD-ROM的辅助存储设备。此外,各种模块和屏幕显示功能只是这种功能的一个示例,并且包含类似功能的任何其他配置都是可能的。
可以在计算机可读存储介质上提供用于实现上述过程、方法和/或技术的相应逻辑、软件或指令。可以响应于存储在计算机可读介质中或计算机可读介质上的一个或多个逻辑或指令集合来执行附图中所示或本文描述的功能、动作或任务。功能、动作或任务独立于特定类型的指令集、存储介质、处理器或处理策略,并且可以由软件、硬件、集成电路、固件、微代码等单独操作或组合操作来执行。同样,处理策略可以包括多处理、多任务、并行处理等。在一个实施例中,指令存储在可移动介质设备上以供本地或远程系统读取。在其他实施例中,逻辑或指令存储在远程位置,用于通过计算机网络或电话线传输。在其他实施例中,逻辑或指令存储在给定计算机、中央处理单元(“CPU”)、图形处理单元(“GPU”)或系统内。
虽然参考本公开的实施例特别示出和描述了本公开,但是本领域技术人员将理解,在不脱离本公开的精神和范围的情况下,可以在其中进行形式和细节的各种改变。尽管一些附图示出了以特定顺序进行的多个操作,但不依赖于顺序的操作可以被重新排序,并且其他操作可以组合或分开。虽然特别提到了一些重新排序或其他分组,但其他方案对于本领域的普通技术人员将是显而易见的,因此没有给出备选方案的详尽列表。
Claims (22)
1.一种用于评估软件漏洞的系统,包括:
存储器,用于存储可执行指令;以及
处理器,适于访问所述存储器,所述处理器还适于执行被存储在所述存储器中的所述可执行指令,用以:
访问自动分类规则库,所述自动分类规则库包括对应于多个预定漏洞类型的多个预定义的自动分类策略,其中每个自动分类策略包括用于确定所述多个预定漏洞类型中的一个预定漏洞类型是否可利用的决策树;
访问用于所述预定多个预定漏洞类型中的一个预定漏洞类型是否可利用的概率性确定的机器学习模型库;
基于软件产品的源代码,获得列出所述软件产品的潜在漏洞问题的电子文档;
确定所述潜在漏洞问题是否与所述多个预定漏洞类型中的一个预定漏洞类型相关联;以及
当确定所述潜在漏洞问题与所述多个预定漏洞类型中的所述一个预定漏洞类型相关联时,基于使用从所述自动分类规则库被检索的与所述多个预定漏洞类型中的所述一个预定漏洞类型和对应的决策树相关联的自动分类策略处理所述电子文档,来确定所述软件产品是否可利用,否则基于使用来自所述机器学习模型库的机器学习模型处理所述电子文档,来概率性地确定所述软件产品是否可利用。
2.根据权利要求1所述的系统,其中所述决策树包括递进排序的自动分类方法的集合。
3.根据权利要求2所述的系统,其中所述自动分类策略中的每个自动分类方法被配置为在处理所述电子文档时生成分类输出。
4.根据权利要求3所述的系统,其中来自每个自动分类方法的所述分类输出包括以下中的一项:指示所述软件产品不可利用的分类确定、指示所述软件产品可利用的分类确定、或者指示所述软件产品的可利用性不确定的分类确定。
5.根据权利要求4所述的系统,其中所述处理器适于通过以下操作基于所述自动分类策略来确定所述软件产品是否可利用:当所述自动分类方法的输出指示所述软件产品可利用或者所述软件产品的所述可利用性不确定时,根据所述决策树递进地调用所述自动分类策略的所述自动分类方法;以及当不可利用的分类输出被获得时,终止所述决策树。
6.根据权利要求3-5中任一项所述的系统,其中所述自动分类策略的每个自动分类方法包括一个或多个分类算法的编码版本,用于确定分类输出作为对在所述自动分类策略的预定查询树之中的预定分类查询的回答。
7.根据权利要求6所述的系统,其中每个分类策略和所述自动分类方法基于指南集合而被建立,所述指南集合是基于单独的上下文数据、实验数据、以及计算数据而被得出的。
8.根据权利要求7所述的系统,其中所述指南集合以预定义格式被编码,所述预定义格式被处理以生成所述一个或多个分类算法的编码版本。
9.根据前述权利要求中任一项所述的系统,其中所述处理器还适于:
扫描所述软件产品的所述源代码以检测所述潜在漏洞问题;以及
基于检测到的所述潜在漏洞问题生成所述电子文档。
10.根据权利要求9所述的系统,其中所述处理器适于通过以下操作概率性地确定所述软件产品是否可利用:
从所述电子文档提取针对每个潜在漏洞问题的特征;
基于所提取的所述特征确定向量;
基于所述向量选择多个漏洞评分模型中的一个漏洞评分模型,所述多个漏洞评分模型选自所述机器学习模型库;以及
使用所述多个漏洞评分模型中的所选择的所述漏洞评分模型,基于所述向量来确定漏洞准确度得分。
11.根据权利要求10所述的系统,其中所述处理器还适于:
接收策略数据或业务规则集合;
将所提取的所述特征与所述策略数据或业务规则集合进行比较;以及,
基于所扫描的所述源代码确定与检测到的所述潜在漏洞问题中的至少一个潜在漏洞问题相对应的标记。
12.根据权利要求11所述的系统,其中所述向量基于所述标记。
13.根据权利要求10-12中任一项所述的系统,其中所述处理器还适于向用户显示所述漏洞准确度得分。
14.根据前述权利要求中任一项所述的系统,其中所述机器学习模型库包括多个随机森林机器学习模型。
15.一种用于评估软件漏洞的方法,包括以下步骤:
访问自动分类规则库,所述自动分类规则库包括对应于多个预定漏洞类型的多个预定义的自动分类策略,其中每个自动分类策略包括用于确定所述多个预定漏洞类型中的一个预定漏洞类型是否可利用的决策树;
访问用于所述预定多个预定漏洞类型中的一个预定漏洞类型是否可利用的概率性确定的机器学习模型库;
基于软件产品的源代码,获得列出所述软件产品的潜在漏洞问题的电子文档;
确定所述潜在漏洞问题是否与所述多个预定漏洞类型中的一个预定漏洞类型相关联;以及
当确定所述潜在漏洞问题与所述多个预定漏洞类型中的所述一个预定漏洞类型相关联时,基于使用从所述自动分类规则库被检索的与所述多个预定漏洞类型中的所述一个预定漏洞类型和对应的决策树相关联的自动分类策略处理所述电子文档,来确定所述软件产品是否可利用,否则基于使用来自所述机器学习模型库的机器学习模型处理所述电子文档,来概率性地确定所述软件产品是否可利用。
16.根据权利要求15所述的方法,其中所述决策树包括递进排序的自动分类方法的集合。
17.根据权利要求16所述的方法,其中所述自动分类策略中的每个自动分类方法被配置为在处理所述电子文档时生成分类输出。
18.根据权利要求17所述的方法,其中来自每个自动分类方法的所述分类输出包括以下中的一项:指示所述软件产品不可利用的分类确定、指示所述软件产品可利用的分类确定、或者指示所述软件产品的可利用性不确定的分类确定。
19.根据权利要求18所述的方法,其中基于所述自动分类策略来确定所述软件产品是否可利用包括:
当所述自动分类方法的输出指示所述软件产品可利用或者所述软件产品的所述可利用性不确定时,根据所述决策树递进地调用所述自动分类策略的所述自动分类方法;以及
当不可利用的分类输出被获得时,终止所述决策树。
20.根据权利要求17-19中任一项所述的方法,其中所述自动分类策略的每个自动分类方法包括一个或多个分类算法的编码版本,用于确定分类输出作为对在所述自动分类策略的预定查询树之中的预定分类查询的回答。
21.根据权利要求15-20中任一项所述的方法,其中概率性地确定所述软件产品是否可利用包括:
从所述电子文档提取针对每个潜在漏洞问题的特征;
基于所提取的所述特征确定向量;
基于所述向量选择多个漏洞评分模型中的一个漏洞评分模型,所述多个漏洞评分模型选自所述机器学习模型库;以及
使用所述多个漏洞评分模型中的所选择的所述漏洞评分模型,基于所述向量来确定漏洞准确度得分。
22.一种非瞬态计算机可读介质,包括被配置为由处理器执行的指令,其中所执行的所述指令适于使所述处理器:
访问自动分类规则库,所述自动分类规则库包括对应于多个预定漏洞类型的多个预定义的自动分类策略,其中每个自动分类策略包括用于确定所述多个预定漏洞类型中的一个预定漏洞类型是否可利用的决策树;
访问用于所述预定多个预定漏洞类型中的一个预定漏洞类型是否可利用的概率性确定的机器学习模型库;
基于软件产品的源代码,获得列出所述软件产品的潜在漏洞问题的电子文档;
确定所述潜在漏洞问题是否与所述多个预定漏洞类型中的一个预定漏洞类型相关联;以及
当确定所述潜在漏洞问题与所述多个预定漏洞类型中的所述一个预定漏洞类型相关联时,基于使用从所述自动分类规则库被检索的与所述多个预定漏洞类型中的所述一个预定漏洞类型和对应的决策树相关联的自动分类策略处理所述电子文档,来确定所述软件产品是否可利用,否则基于使用来自所述机器学习模型库的机器学习模型处理所述电子文档,来概率性地确定所述软件产品是否可利用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/035,375 US11861013B2 (en) | 2020-09-28 | 2020-09-28 | Systems and methods for triaging software vulnerabilities |
US17/035,375 | 2020-09-28 | ||
PCT/EP2021/074995 WO2022063612A1 (en) | 2020-09-28 | 2021-09-10 | Systems and methods for triaging software vulnerabilities |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116209997A true CN116209997A (zh) | 2023-06-02 |
Family
ID=77910799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180066086.6A Pending CN116209997A (zh) | 2020-09-28 | 2021-09-10 | 用于对软件漏洞进分类的系统和方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11861013B2 (zh) |
EP (1) | EP4217893A1 (zh) |
JP (1) | JP7511081B2 (zh) |
CN (1) | CN116209997A (zh) |
AU (1) | AU2021346779B2 (zh) |
BR (1) | BR112023005351A2 (zh) |
CA (1) | CA3196398A1 (zh) |
MX (1) | MX2023003118A (zh) |
WO (1) | WO2022063612A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663019A (zh) * | 2023-07-06 | 2023-08-29 | 华中科技大学 | 一种源代码漏洞检测方法、装置和系统 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11570199B2 (en) * | 2020-12-23 | 2023-01-31 | Intel Corporation | Threat prevention by selective feature deprivation |
US20220269790A1 (en) * | 2021-02-24 | 2022-08-25 | ArcaWorx Inc. | Real-time automated compliance deviation monitoring and remediation |
US12032703B2 (en) * | 2021-07-06 | 2024-07-09 | Sap Se | Automatically rating the product's security during software development |
US20230036102A1 (en) * | 2021-07-30 | 2023-02-02 | Red Hat, Inc. | Differential diagnosis feature engineering for machine learning applications |
US20230038196A1 (en) * | 2021-08-04 | 2023-02-09 | Secureworks Corp. | Systems and methods of attack type and likelihood prediction |
US12034751B2 (en) | 2021-10-01 | 2024-07-09 | Secureworks Corp. | Systems and methods for detecting malicious hands-on-keyboard activity via machine learning |
US11928221B2 (en) * | 2021-11-29 | 2024-03-12 | Bank Of America Corporation | Source code clustering for automatically identifying false positives generated through static application security testing |
US12015623B2 (en) | 2022-06-24 | 2024-06-18 | Secureworks Corp. | Systems and methods for consensus driven threat intelligence |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2006087780A1 (ja) | 2005-02-17 | 2008-07-03 | 富士通株式会社 | 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法 |
US8839441B2 (en) * | 2010-06-28 | 2014-09-16 | Infosys Limited | Method and system for adaptive vulnerability scanning of an application |
US9665721B2 (en) | 2014-04-23 | 2017-05-30 | NSS Labs, Inc. | Threat and defense evasion modeling system and method |
US10127385B2 (en) * | 2015-09-02 | 2018-11-13 | Sap Se | Automated security vulnerability exploit tracking on social media |
US10681062B2 (en) * | 2016-11-02 | 2020-06-09 | Accenture Global Solutions Limited | Incident triage scoring engine |
US10650150B1 (en) * | 2017-02-28 | 2020-05-12 | University Of South Florida | Vulnerability life cycle exploitation timing modeling |
US10740469B2 (en) * | 2017-12-28 | 2020-08-11 | Fmr Llc | Automated secure software development management, risk assessment, and risk remediation |
EP4312420A3 (en) * | 2018-02-20 | 2024-04-03 | Darktrace Holdings Limited | A method for sharing cybersecurity threat analysis and defensive measures amongst a community |
JP6976194B2 (ja) | 2018-02-26 | 2021-12-08 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 脆弱性判定システム、脆弱性判定方法及びコンピュータプログラム |
US11159564B2 (en) * | 2018-06-28 | 2021-10-26 | Google Llc | Detecting zero-day attacks with unknown signatures via mining correlation in behavioral change of entities over time |
US11568175B2 (en) | 2018-09-07 | 2023-01-31 | Verint Americas Inc. | Dynamic intent classification based on environment variables |
US11487879B2 (en) * | 2018-12-28 | 2022-11-01 | Tenable, Inc. | Threat score prediction model |
US11620389B2 (en) * | 2019-06-24 | 2023-04-04 | University Of Maryland Baltimore County | Method and system for reducing false positives in static source code analysis reports using machine learning and classification techniques |
US11204983B2 (en) * | 2019-12-26 | 2021-12-21 | Salesforce.Com, Inc. | Scoring cloud packages for risk assessment automation |
-
2020
- 2020-09-28 US US17/035,375 patent/US11861013B2/en active Active
-
2021
- 2021-09-10 BR BR112023005351A patent/BR112023005351A2/pt unknown
- 2021-09-10 MX MX2023003118A patent/MX2023003118A/es unknown
- 2021-09-10 CA CA3196398A patent/CA3196398A1/en active Pending
- 2021-09-10 JP JP2023516547A patent/JP7511081B2/ja active Active
- 2021-09-10 EP EP21777286.2A patent/EP4217893A1/en active Pending
- 2021-09-10 WO PCT/EP2021/074995 patent/WO2022063612A1/en active Application Filing
- 2021-09-10 AU AU2021346779A patent/AU2021346779B2/en active Active
- 2021-09-10 CN CN202180066086.6A patent/CN116209997A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663019A (zh) * | 2023-07-06 | 2023-08-29 | 华中科技大学 | 一种源代码漏洞检测方法、装置和系统 |
CN116663019B (zh) * | 2023-07-06 | 2023-10-24 | 华中科技大学 | 一种源代码漏洞检测方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
AU2021346779A1 (en) | 2023-04-20 |
WO2022063612A1 (en) | 2022-03-31 |
US20220100868A1 (en) | 2022-03-31 |
JP2023545625A (ja) | 2023-10-31 |
MX2023003118A (es) | 2023-06-19 |
EP4217893A1 (en) | 2023-08-02 |
BR112023005351A2 (pt) | 2023-04-25 |
US11861013B2 (en) | 2024-01-02 |
JP7511081B2 (ja) | 2024-07-04 |
CA3196398A1 (en) | 2022-03-31 |
AU2021346779B2 (en) | 2024-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11568057B2 (en) | Systems and methods for triaging software vulnerabilities | |
AU2021346779B2 (en) | Systems and methods for triaging software vulnerabilities | |
CN109697162B (zh) | 一种基于开源代码库的软件缺陷自动检测方法 | |
US20200184072A1 (en) | Analysis device, log analysis method, and recording medium | |
US20220004878A1 (en) | Systems and methods for synthetic document and data generation | |
US11816138B2 (en) | Systems and methods for parsing log files using classification and a plurality of neural networks | |
US8392467B1 (en) | Directing searches on tree data structures | |
US20200410170A1 (en) | Method and system for translating natural language policy to logical access control policy | |
CN109582691A (zh) | 用于控制数据查询的方法和装置 | |
US10331441B2 (en) | Source code mapping through context specific key word indexes and fingerprinting | |
US11514054B1 (en) | Supervised graph partitioning for record matching | |
CN110764760B (zh) | 用于绘制程序流程图的方法、装置、计算机系统和介质 | |
US20210158210A1 (en) | Hybrid in-domain and out-of-domain document processing for non-vocabulary tokens of electronic documents | |
CN113961768B (zh) | 敏感词检测方法、装置、计算机设备和存储介质 | |
CN112817877A (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
US11625630B2 (en) | Identifying intent in dialog data through variant assessment | |
CN115809466B (zh) | 基于stride模型的安全需求生成方法、装置、电子设备及介质 | |
US20230385037A1 (en) | Method and system for automated discovery of artificial intelligence (ai)/ machine learning (ml) assets in an enterprise | |
CN116881971A (zh) | 一种敏感信息泄露检测方法、设备及存储介质 | |
AU2022204724B1 (en) | Supervised machine learning method for matching unsupervised data | |
US20240311572A1 (en) | Detecting Random and/or Algorithmically-Generated Character Sequences in Domain Names | |
US20240144053A1 (en) | Inference analysis apparatus, inference apparatus, inference analysis method, and computer-readable recording medium | |
US11973792B1 (en) | Generating vulnerability check information for performing vulnerability assessments | |
CN118349998A (zh) | 一种自动化代码审计方法、装置、设备及存储介质 | |
CN118094564A (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 |