用于开发中的安全漏洞响应管理的方法和系统的制作方法

文档序号:6597885阅读:322来源:国知局
专利名称:用于开发中的安全漏洞响应管理的方法和系统的制作方法
技术领域
本发明一般地涉及计算机系统,更具体地说,涉及在开发中检测和管理程序代码 中的安全漏洞(vulnerability)。
背景技术
计算机系统和网络中的安全性是一个正在受到关注的话题。由于更难以利用系统 和操作系统级别的安全漏洞,所以较容易的web应用层已成为黑客的主要关注点。例如,顺 序查询语言(SQL)注入和跨站脚本(XSQ被视为少数几种头号威胁。以上讨论的两个安全 性漏洞通常是可以避免的。例如,如果开发人员使用预置语句,则可以阻止SQL注入。此外, 输出转义(output escaping)可有效地增强web应用以保护它们免于XSS利用。Microsoft 已发布了安全性开发生命周期(SDL)以在该机制方面帮助开发人员。若干工具和方法也可用于发现代码中的风险。IBM fciti0nalTMAppSCanTM通过模 仿攻击web应用来执行动态应用安全性测试以便发现安全漏洞。此工具作用于内置在可执 行组件中以便测试的代码并因而应用于运行时。其他方法使用静态代码安全性分析工具来 在应用开发期间查找不安全的代码模式(污染的执行流),例如,使用白盒或灰盒方法来通 过代码分析识别安全漏洞。可以在未完成构建的情况下(例如,在开发期间)应用这些静 态分析工具。对程序中数据污染流的检测相对较准确,但即使如此,静态分析仍无法准确判 断执行流中是否存在已有的清理(sanitization)处理以及其有效程度。这些方法在准确 性方面仍然具有限制并需要开发人员的检查。当前用于安全开发的典型操作是使用静态分析和动态测试工具来查找安全漏 洞,然后在诸如 IBM Rational ClearCase (CC)和 IBM Rational ClearQuest (CQ)之 类的缺陷(bug)控制系统中生成安全性票(ticket),并使编程人员修复代码并关闭票;然 后一直等待直到测试阶段,并且再次执行整体安全性分析以查找漏洞。上述操作可存在若干限制。沿污染流可存在冲突的清理并且可在不同阶段(输入 阶段、数据库(DB)访问阶段,或页面显示阶段)完成清理以修复安全性漏洞。通常,负责的 开发人员对于不同阶段而言是不同的。假定两个开发人员都熟悉安全性并使用HtmlEntity 转义来防止XSS攻击。则他们可能错误地重复转义,例如,一个开发人员将‘〈’转义为 ‘&lt ;,并且数据被存入数据库,稍后,另一开发人员从数据库检索数据并进一步将‘&lt ;, 转义为‘&amp ;It ; ’。动态测试可发现此类情况,但是如上所述,其必须一直等待直到代码 构建。如上所述,漏洞位置和理想的清理代码通常未位于一起。例如,当用户输入被直接 用于连接SQL查询并用于访问数据库(DB)时,将出现SQL注入安全漏洞,但是有时清理位 置可能在接受用户输入的jsp页面中。因此,检查者难以将清理代码与CQ中的安全性票相 关联。由于初级的开发人员可能经常重复犯同样的错误,所以类似的安全漏洞模式经常 发生。反复修复类似漏洞会导致重复的工作。此外,修补漏洞会花费更多的时间。例如,在每次测试反复中执行安全性检查和修补漏洞的效率将低于在开发期间执行所述操作。后者 可帮助开发人员更准确地进行判断,因为开发人员更了解代码结构和漏洞修补上下文。进 而,执行清理的代码可因某些非安全性原因(方法名称、功能性等)而改变,这意味着安全 漏洞会重新出现,并且需要重新检查漏洞。

发明内容
提供了一种用于开发中的安全漏洞响应管理的方法和系统。在一个方面中,所述 方法可包括检测匹配安全漏洞模式的代码实例,以及生成与所述代码实例关联的一个或多 个提示以响应所述检测。所述方法还可包括检索对匹配安全漏洞模式的代码实例的操作响 应,以及将所检索的操作响应与所述代码实例关联。在一个方面中,用于开发中的安全漏洞响应管理的系统可包括处理器;以及可 操作以检测匹配安全漏洞模式的代码实例的模块。所述模块还可操作以生成与所述代码实 例关联的一个或多个提示以响应检测到匹配安全漏洞模式的代码实例。所述模块还可操作 以检索对匹配安全漏洞模式的代码实例的操作响应,以及将所检索的操作响应与所述代码 实例关联。以下参考附图详细描述了各种实施例的进一步的特性以及结构和操作。在附图 中,相同的标号指示相同的或功能类似的元素。


图1是示出本发明的一个实施例中的管理安全漏洞的方法和清理方法的流程图;图2示出了与样例模式关联的知识的实例,借助所述模式,本发明的系统和方法 可导出与计算机程序或代码中暴露的潜在安全漏洞有关的提示;图3示出了本发明一个实施例中的呈现代码中发现的潜在安全漏洞和可能的修 复的用户接口屏幕快照;图4示出了系统如何在代码重写期间维护安全性检查信息;图5示出了其中可实现或执行本发明的系统和方法的计算机系统的实例;以及图6示出根据本发明实施例的用于开发中的安全漏洞响应管理的系统框图。
具体实施例方式在一个方面中,本发明提供了 一种通过检查来自现有漏洞和/或可参照的数据安 全清理代码的提示来帮助开发人员编写安全代码的系统和方法。根据本发明实施例的方法 包括步骤检测匹配安全漏洞模式的代码实例;使用处理器生成与所述代码实例关联的一 个或多个提示以响应所述检测;检索对匹配安全漏洞模式的代码实例的操作响应;以及将 所检索的操作响应与所述代码实例关联。其中所述检索步骤可进一步包括接收与所述操作响应相关的上下文;存储所述 上下文与所述操作响应的关联、所述代码实例的位置和所述上下文;以及响应于所述上下 文被更改,重新评估所述上下文与所述操作响应的关联并提醒修改所述操作响应。其中所 述上下文可包括将修补安全漏洞的一个或多个位置。此处的漏洞或安全性漏洞指可由不适当的代码编程导致的应用安全漏洞,其会受到攻击者的利用。此处的提示指从先前的最佳实践推断出的安全性编程知识。作为 一个实例,对于· jsp页面(例如图3所示)中的<%= display content 部分,如 果display content直接来自用户输入“Userlnput”,则可能具有跨站脚本漏洞。在此 类实例情况中的最佳实践将是在作为display content之前验证herhput,如<% = IsSafe(Userlnput) % >。例如,本发明的系统和方法可跟踪和分析开发中的代码修改。开发中的分析指在 代码开发期间(即,在编写代码期间)执行分析,而不是在开发代码之后执行分析。本发明 的系统和方法可提供已发现漏洞(即,代码中的潜在安全漏洞)和对应清理位置的开发中 的管理。本发明的系统和方法还可借助积累的知识生成自适应提示以协助开发人员修复未 来漏洞。自适应提示指基于上下文的提示,其例子包括与提示关联代码的代码相似性、作者 关系以及项目关系,执行链中的其他节点的任何已有修复等。与仅检测安全漏洞并完全依 靠开发人员修复漏洞和关闭安全漏洞票的传统工具相比,本发明的系统和方法不仅可以检 测安全漏洞,而且还在代码上下文中将其与数据清理操作关联。利用此知识,在一个实施例 中,本发明的系统和方法可发展其能力并在开发生命周期内生成提示。本发明的系统和方 法还可提供检查和培训功能,使得开发人员可在代码开发期间学习其他开发人员的已有最 佳实践。图1是示出本发明的一个实施例中的管理安全漏洞的方法和清理方法的流程图。 在102,在一个实施例中,系统从代码发现潜在的安全漏洞。所述发现可基于动态和/或静 态分析工具内的预定模式。可以以正则表达式描述模式。还可以例如通过静态分析识别安 全漏洞的执行流。在104,借助样例模式所表示的已有知识,系统推断其在判断所报告的安全漏洞中 可向开发人员提供何种提示,例如,使用窗口显示相应的代码片段。在106,基于步骤104的决策,系统提示开发人员采取操作,并呈现知识的提示。可 在执行流视图中显示提示以更好地将编程人员导航到安全漏洞汇点(sink)和修补方法。 可能存在多个开发人员,考虑可沿执行流在各个阶段执行漏洞修补。在此情况下,使得开发 人员能够与其他开发人员的操作同步以避免冲突的清理。例如,对于同步,开发人员可检查 其他开发人员是否已修复执行链中的同一漏洞并且决定所述开发人员是否应采取操作来 执行修复。例如,如果一个开发人员在将用户输入存入数据库时已编码用户输入以避免跨 站脚本攻击,则使用该用户输入用于网页显示的UI开发人员不应重复编码该用户输入。可向开发人员提示的操作包括但不限于以下操作。开发人员可例如通过输入适当 的输入或响应来澄清漏洞(即,代码中识别的安全漏洞)是误警。开发人员可确认其是漏 洞,但已被修复,例如,向系统指出清理代码(多个)的位置统一资源标识符(URI)。开发人 员可确认其是漏洞并通过进行到步骤108来修复漏洞。在108,如果适用,系统允许编程人员修复漏洞并向系统指出清理代码的位置 URI,例如,“file input, jsp, method :sanitizeSQL (),hashvalue,,。系统还可记录 method 的名称并定期验证该名称的一致性。另一方法是以结构化的方式存储代码,这可有助于存 储准确的漏洞和/或清理代码位置。系统然后存储当前漏洞与清理代码的位置的关联。开 发人员等还可决定取消操作决策。在110,安全性专家和/或作者等可决定是否将此漏洞修补情况添加到样例模式中以便生成用于未来开发人员的提示。如果要存储该情况,系统在112存储该模式用于未 来的提示推断。如果不存储该情况,方法可进行到步骤104,在步骤104,可从代码导出更多 提示。如果没有更多要提供的提示或开发阶段完成,或者用户退出过程,则方法停止。结合以上描述,为了开发中的安全漏洞响应管理,可将所述操作响应与所述安全 漏洞模式之间的关联存储在数据库中。所述操作响应可包括不执行任何操作、将代码添加 到所述代码实例、以及修改所述代码实例中的至少一个。可使用所述代码的静态分析完成 所述检测。图2示出了与样例模式关联的知识推导的实例,借助所述模式,本发明的系统和 方法可导出与计算机程序或代码中暴露的潜在安全漏洞有关的提示。在图2示出的情况 中,易受攻击的执行流与已有的清理后的流重叠。每个路径都具有包括若干阶段的执行流。 简要地说,执行流可以指通过整个程序或部分程序的流。先前的清理方法(例如,带有相应 代码)可被建议给同一阶段中的对应位置作为提示。图2中显示的实例示出了 web程序中 的执行流路径,包括输入阶段、数据库(DB)访问阶段,以及网页显示阶段。先前存储或保存 的代码包括输入阶段代码202、DB访问阶段代码204、以及网页显示阶段代码206。处于开 发和监视下的当前代码包括输入阶段代码208、同一 DB访问阶段代码204、以及同一浏览器 端网页展示阶段代码206。在先前存储或保存的代码中,如在210所示执行清理,清理202 与204之间的代码。由于从阶段代码208收集的用户输入将被提供给重叠的执行流中的同 一目的地代码204或由其使用,所以本发明的系统和方法可决定建议相同的清理方法210 以便修复代码208到204中的安全漏洞。因此,要执行的清理212可以与210相同。另一知识推导实例可以是其中易受攻击的代码的语法或类型等与样例模式相同 的情况。例如,两者都使用污染的输入连接SQL查询。在此情况下,可在执行流视图中显示 先前的安全漏洞情况和匹配当前情况的清理代码。例如,以下实例显示了所存储的安全漏 洞情况(先前的安全漏洞情况)及其清理位置Stored :“SELECT*FR0M users WHERE login =,,'+formusr+' "ANDpassword =,,'+formpwd+' “”;Current "SELECT*FR0M id WHERE LOGIN = " '+userinput+' “,,;知识推导的再一实例可以是其中沿所述流已存在已有清理的情况。系统可被配置 为是否再次询问开发人员。对于某些情况,如果安全性专家希望检查清理的有效性,则其可 选择显示已有的清理。另一实例情形可以是其中负责执行流中的其他阶段的另一开发人员 可能希望检查清理中是否存在任何冲突的情况。例如,系统可被配置为默认仅向相关编程 人员(例如,在同一执行流中)显示清理,但是如果例如安全性专家正在执行代码检查,则 该安全性专家也可选择查看清理,即使该安全性专家并未与作者相关或关联。可以以其他方式导出代码中的潜在安全漏洞。例如,可以使用加强学习来训练最 佳导出策略。负责该提示(即,代码中暴露的潜在安全漏洞)中的漏洞修补代码的作者可 被显示给开发人员作为参考。可从源控制或缺陷跟踪系统检索作者信息。如果存在许多 提示情况,则系统可根据作者的安全性声望、提示情况的相关性、执行流的关系等将这些提 示情况按照优先顺序排列。即,可将所述一个或多个提示按照优先顺序排列。可根据加强 学习算法、作者声望或它们的组合中的一个或多个来按照优先顺序排列所述一个或多个提 示。可使用加强学习算法识别所述一个或多个提示。
在另一个方面中,可提供协作开发环境内的社会声望系统。例如,系统可累积不同 开发人员执行的活动的历史并得到开发人员的声望。如果样例模式的作者与当前开发人员 相同(这指示同一人员的重复编码风格),则还可以增加指示同一人员的重复编码风格的 优先级。图3示出了本发明一个实施例中的呈现代码中发现的潜在安全漏洞和可能的修 复的用户接口屏幕快照。本发明的系统和方法可以与诸如Eclipse 工具之类的开发环境 工具302或另一集成开发环境(IDE)工具一起工作。在编程人员等正在例如通过工具302 的编辑器308开发代码时,可以弹出对话310或类似窗口,其显示代码306中暴露的潜在安 全漏洞,以及用户可响应于代码中的安全漏洞的提示而选择的操作项目304。所述提示可包 括作为先前开发人员的输入的结果而存储的信息。所述提示可被提供为使能导航到所关联 代码的超链接点击。从所述代码实例和先前存储的样例代码中的执行流信息导出所述一个 或多个提示。图4示出了系统如何在代码重写期间维护安全性检查信息。当代码片段402被复 制和/或粘贴到另一程序404时,某些相关的安全性检查信息406也可被传输到新的程序 404以用于潜在安全性提示生成。图6示出根据本发明实施例的用于开发中的安全漏洞响应管理的系统框图600, 该系统中包括检测模块601,可操作以检测匹配安全漏洞模式的代码实例;提示生成模块 602,可操作以生成与所述代码实例关联的一个或多个提示以响应检测到匹配安全漏洞模 式的代码实例;操作响应检索模块,可操作以检索对匹配安全漏洞模式的代码实例的操作 响应;以及关联模块,可操作以将所检索的操作响应与所述代码实例关联。本发明的实施例的系统还包括数据库,其可操作以存储所述操作响应与所述安全 漏洞模式之间的关联。可选地,还可包括用户接口模块,其可操作以作为使能导航到所关 联代码的超链接点击来提供所述一个或多个提示。所述操作响应检索模块还可操作以接收 与所述操作响应相关的上下文,存储所述上下文与所述操作响应的关联、所述代码实例的 位置、和所述上下文,以及响应于所述上下文被更改,重新评估所述关联,并且所述用户接 口模块还可操作以提供修改所述操作响应的提醒。其中所述上下文包括将修补安全漏洞的一个或多个位置。该系统还包括提示导出 模块,可操作以从所述代码实例和先前存储的样例代码中的执行流信息导出所述一个或多 个提示。如本领域技术人员将理解的,本发明的各方面可以被体现为系统、方法或计算机 程序产品。相应地,本发明的各方面可采取完全硬件实施例、完全软件实施例(包括固件、 驻留软件、微代码等)或组合此处可全部被统称为“电路”、“模块”或“系统”的硬件和软件 方面的实施例的形式。此外,本发明的各方面可以采取包含在一个或多个计算机可读介质 中的计算机程序产品的形式,所述计算机可读介质中包含计算机可读程序代码。可以使用一种或多种计算机可读介质的任意组合。所述计算机可读介质可以是计 算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是,例如但不限于, 电、磁、光、电磁、红外线或半导体系统、装置、设备或它们的任意适当组合。计算机可读存 储介质的更具体的实例(非穷举列表)包括以下内容具有一条或多条连线的电连接、可 移动计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPR0M或闪存)、光纤、可移动光盘-只读存储器(CD-ROM)、光存储设备、磁存储设备或它们 的任意适当组合。在此文档的上下文中,计算机可读存储介质可以是任何能够包含或存储 由指令执行系统、装置或设备使用或与指令执行系统、装置或设备有关的程序的有形介质。计算机可读信号介质可以包括其中包含计算机可读程序代码(例如,在基带中或 作为载波的一部分)的传播数据信号。此类传播信号可采取多种形式中的任何形式,包括 但不限于电-磁、光或它们的任意适当组合。计算机可读信号介质可以是任何不是计算机 可读存储介质并且可传送、传播或传输由指令执行系统、装置或设备使用或与指令执行系 统、装置或设备有关的程序的计算机可读介质。可以使用任何适当的介质(包括但不限于无线、有线、光缆、射频等或它们的任意 适当组合)来传输计算机可读介质上包含的程序代码。用于执行本发明的各方面的操作的计算机程序代码可以以一种或多种编程语言 的任意组合来编写,包括面向对象的编程语言(如Java、Smalltalk, C++等)和传统的过 程编程语言(如“C”编程语言或类似编程语言)。所述程序代码可以完全地在用户计算机 上、部分地在用户计算机上、作为单独的软件包、部分地在用户计算机上并部分地在远程计 算机上或完全地在远程计算机上执行。在后者的情况中,所述远程计算机可以通过任何类 型的网络(包括局域网(LAN)或广域网(WAN))与所述用户计算机相连,或者可以进行与外 部计算机的连接(例如,利用因特网服务提供商并通过因特网)。参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或 方块图在下面描述了本发明的各方面。将理解,所述流程图和/或方块图的每个方块以及 所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。这些计算机程序 指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一 种机器,以便通过所述计算机或其他可编程数据处理装置的处理器执行的所述指令将创建 用于实现所述流程图和/或方块图方块(多个)中指定的功能/操作的装置。这些计算机程序指令也可以被存储在能够引导计算机或其他可编程数据处理装 置或其他设备以特定方式执行功能的计算机可读介质中,以便存储在所述计算机可读介质 中的所述指令将产生一件包括实现在所述流程图和/或方块图方块(多个)中指定的功能 /操作的指令的制品。所述计算机程序指令还可以被加载到计算机或其他可编程数据处理装置或其他 设备上以导致将在所述计算机或其他可编程装置或其他设备上执行一系列的操作步骤以 产生计算机实现的过程,以便在所述计算机或其他可编程装置上执行的所述指令将提供用 于实现在所述流程图和/或方块图方块(多个)中指定的功能/操作的过程。附图中的流程图和方块图示出了根据本发明的各种实施例的系统、方法和计算机 程序产品的可能实现的体系结构、功能和操作。在此方面,所述流程图或方块图中的每个方 块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一 个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺 序发生。例如,示出为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决 于所涉及的功能,可以以相反的顺序执行所述方块。还将指出,所述方块图和/或流程图的 每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于硬件的专用系统或专用硬件和计算机指令的组合来实现。现在参考图5,本发明的系统和方法可在包括处理单元2的计算机系统中实现或 执行,所述处理单元2容纳一个或多个处理器或核心、存储器和其他系统组件(未在图中明 确示出),后者实现计算机处理系统或可执行计算机程序产品的计算机。所述计算机程序产 品可包括介质,例如硬盘、诸如光盘的压缩存储介质,或其他存储设备,后者可由处理单元2 通过任何本领域技术人员公知或将公知的技术读取,以便将所述计算机程序产品提供给处 理系统以供执行。所述计算机程序产品可包括允许实现此处所述的方法的所有相应特征,并且当被 加载到计算机系统中时,其能够实现这些方法。当前上下文中的计算机程序、软件程序、程 序或软件是指一组指令的以任何语言、代码或符号表示的任何表达,旨在使具有信息处理 能力的系统直接执行特定的功能,或者执行以下两者之一或全部后执行特定的功能a)转 换为另一种语言、代码或符号;和/或b)以不同的材料形式再现。实现本发明的系统和方法的计算机处理系统还可包括诸如监视器或显示屏4之 类的显示设备,以便呈现输出显示并提供用户可通过其输入数据并与处理系统交互(例 如,与诸如键盘6和鼠标设备8或指点设备之类的输入设备协作)的显示。所述计算机处 理系统还可直接或经由远程连接被连接或耦合到一个或多个外围设备(如打印机10、扫描 仪(未示出)、扬声器)和任何其他设备。所述计算机处理系统还可经由本地以太网、广域 网连接、因特网等中的任意一个或多个或经由任何其他连接不同的计算系统并允许它们彼 此通信的联网技术被连接或耦合到一个或多个其他处理系统(如服务器10、其他远程计算 机处理系统14、网络存储设备12)。可以以分布方式在不同的处理系统(例如,2,14,16)上 或在任何单个平台上实现或执行本发明的系统和方法的各种功能和模块,例如,访问在网 络上本地存储的或以分布方式存储的数据。在此使用的术语只是为了描述特定实施例并且并非旨在限制本发明。如在此使用 的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还 将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特征、整数、步骤、 操作、元素和/或组件的存在,但是并不排除一个或多个其他特征、整数、步骤、操作、元素、 组件和/或其组的存在或增加。相应的结构、材料、动作以及所有装置或步骤的等同物加上以下权利要求中的功 能元素旨在包括任何用于结合具体要求保护的其他元素执行功能的结构、材料或动作。出 于示例和说明目的给出了对本发明的描述,但是所述描述并非旨在是穷举的或是将本发明 限于所公开的形式。对于本领域中的技术人员而言,在不偏离本发明的范围和精神的情况 下,许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的 原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解 本发明的具有各种修改的各种实施例。本发明的各个方面可以被体现为计算机或机器可用或可读介质内包含的程序、软 件或计算机程序指令,后者当在计算机、处理器和/或机器上执行时,将导致所述计算机或 机器执行所述方法的步骤。还提供了可由机器读取并有形地体现指令程序的程序存储设 备,所述指令可由机器执行以实现本发明中所述的各种功能和方法。本发明的系统和方法可在通用计算机或专用计算机系统上实现和运行。所述计算机系统可以是任何类型的公知或将公知的系统,并且典型地可包括处理器、存储器设备、存 储设备、输入/输出设备、内部总线,和/或用于结合通信硬件和软件与其他计算机系统通 信的通信接口等。如本申请中可使用的术语“计算机系统”和“计算机网络”可包括固定和/或便携 式计算机硬件、软件、外围设备和存储设备的各种组合。所述计算机系统可包括多个联网的 或以其他方式链接以协作执行的单独组件,或可包括一个或多个独立组件。本申请的计算 机系统的硬件和软件组件可包括并且可包括在诸如桌面计算机、膝上型计算机、服务器之 类的固定和便携式设备内。模块可以是设备、软件、程序或系统的实现某种“功能”的组件, 其可以体现为软件、硬件、固件、电子电路等。上述实施例是示例性实例并且不应理解为本发明限于这些特定实施例。因此,在 不脱离如所附权利要求中限定的本发明的精神和范围的情况下,本领域技术人员可实现各 种更改和修改。
权利要求
1.一种用于开发中的安全漏洞响应管理的方法,包括 检测匹配安全漏洞模式的代码实例;生成与所述代码实例关联的一个或多个提示以响应所述检测; 检索对匹配安全漏洞模式的代码实例的操作响应;以及 将所检索的操作响应与所述代码实例关联。
2.如权利要求1中所述的方法,还包括将所述操作响应与所述安全漏洞模式之间的关联存储在数据库中。
3.如权利要求1中所述的方法,其中所述操作响应包括不执行任何操作、将代码添加 到所述代码实例、以及修改所述代码实例中的至少一个。
4.如权利要求1中所述的方法,其中使用所述代码的静态分析完成所述检测。
5.如权利要求1中所述的方法,其中将所述一个或多个提示按照优先顺序排列。
6.如权利要求1中所述的方法,其中所述一个或多个提示包括作为先前开发人员的输 入的结果而存储的信息。
7.如权利要求1中所述的方法,其中所述一个或多个提示可被提供为使能导航到所关 联代码的超链接点击。
8.如权利要求1中所述的方法,其中所述检索步骤进一步包括 接收与所述操作响应相关的上下文;存储所述上下文与所述操作响应的关联、所述代码实例的位置和所述上下文;以及 响应于所述上下文被更改,重新评估所述上下文与所述操作响应的关联并提醒修改所 述操作响应。
9.如权利要求8中所述的方法,其中所述上下文包括将修补安全漏洞的一个或多个位置。
10.如权利要求1中所述的方法,还包括从所述代码实例和先前存储的样例代码中的执行流信息导出所述一个或多个提示。
11.如权利要求1中所述的方法,其中根据加强学习算法、作者声望或它们的组合中的 一个或多个来按照优先顺序排列所述一个或多个提示。
12.如权利要求1中所述的方法,其中使用加强学习算法识别所述一个或多个提示。
13.一种用于开发中的安全漏洞响应管理的系统,包括 检测模块,可操作以检测匹配安全漏洞模式的代码实例;提示生成模块,可操作以生成与所述代码实例关联的一个或多个提示以响应检测到匹 配安全漏洞模式的代码实例;检索模块,可操作以检索对匹配安全漏洞模式的代码实例的操作响应;以及 关联模块,可操作以将所检索的操作响应与所述代码实例关联。
14.如权利要求13中所述的系统,还包括数据库,其可操作以存储所述操作响应与所述安全漏洞模式之间的关联。
15.如权利要求13中所述的系统,还包括用户接口模块,其可操作以作为使能导航到 所关联代码的超链接点击来提供所述一个或多个提示。
16.如权利要求15中所述的系统,其中所述检索模块还可操作以接收与所述操作响应 相关的上下文,存储所述上下文与所述操作响应的关联、所述代码实例的位置、和所述上下文,以及响应于所述上下文被更改,重新评估所述关联,并且所述用户接口模块还可操作以 提供修改所述操作响应的提醒。
17.如权利要求16中所述的系统,其中所述上下文包括将修补安全漏洞的一个或多个位置。
18.如权利要求13中所述的系统,还包括提示导出模块,可操作以从所述代码实例和 先前存储的样例代码中的执行流信息导出所述一个或多个提示。
全文摘要
本发明涉及一种用于开发中的安全漏洞响应管理的方法和系统。在一个方面中,开发中的安全漏洞响应管理可包括以下操作检测匹配安全漏洞模式的代码实例;生成与所述代码实例关联的一个或多个提示以响应所述检测;检索对匹配安全漏洞模式的代码实例的操作响应;以及将所检索的操作响应与所述代码实例关联。
文档编号G06F21/00GK102141956SQ201010104980
公开日2011年8月3日 申请日期2010年1月29日 优先权日2010年1月29日
发明者F·德科凯拉尔, P·K·马尔金, 吉濵佐知子, 寺口正羲, 张煜, 杨顺祥, 浦本直彦, 罗琳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1