CN102141956A - 用于开发中的安全漏洞响应管理的方法和系统 - Google Patents

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

Info

Publication number
CN102141956A
CN102141956A CN2010101049801A CN201010104980A CN102141956A CN 102141956 A CN102141956 A CN 102141956A CN 2010101049801 A CN2010101049801 A CN 2010101049801A CN 201010104980 A CN201010104980 A CN 201010104980A CN 102141956 A CN102141956 A CN 102141956A
Authority
CN
China
Prior art keywords
code
security breaches
operation response
context
response
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
Application number
CN2010101049801A
Other languages
English (en)
Other versions
CN102141956B (zh
Inventor
罗琳
F·德科凯拉尔
张煜
吉濵佐知子
寺口正羲
P·K·马尔金
杨顺祥
浦本直彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201010104980.1A priority Critical patent/CN102141956B/zh
Priority to US12/787,933 priority patent/US8776239B2/en
Publication of CN102141956A publication Critical patent/CN102141956A/zh
Application granted granted Critical
Publication of CN102141956B publication Critical patent/CN102141956B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Abstract

本发明涉及一种用于开发中的安全漏洞响应管理的方法和系统。在一个方面中,开发中的安全漏洞响应管理可包括以下操作:检测匹配安全漏洞模式的代码实例;生成与所述代码实例关联的一个或多个提示以响应所述检测;检索对匹配安全漏洞模式的代码实例的操作响应;以及将所检索的操作响应与所述代码实例关联。

Description

用于开发中的安全漏洞响应管理的方法和系统
技术领域
本发明一般地涉及计算机系统,更具体地说,涉及在开发中检测和管理程序代码中的安全漏洞(vulnerability)。
背景技术
计算机系统和网络中的安全性是一个正在受到关注的话题。由于更难以利用系统和操作系统级别的安全漏洞,所以较容易的web应用层已成为黑客的主要关注点。例如,顺序查询语言(SQL)注入和跨站脚本(XSS)被视为少数几种头号威胁。以上讨论的两个安全性漏洞通常是可以避免的。例如,如果开发人员使用预置语句,则可以阻止SQL注入。此外,输出转义(output escaping)可有效地增强web应用以保护它们免于XSS利用。MicrosoftTM已发布了安全性开发生命周期(SDL)以在该机制方面帮助开发人员。
若干工具和方法也可用于发现代码中的风险。IBMTM RationalTMAppscanTM通过模仿攻击web应用来执行动态应用安全性测试以便发现安全漏洞。此工具作用于内置在可执行组件中以便测试的代码并因而应用于运行时。其他方法使用静态代码安全性分析工具来在应用开发期间查找不安全的代码模式(污染的执行流),例如,使用白盒或灰盒方法来通过代码分析识别安全漏洞。可以在未完成构建的情况下(例如,在开发期间)应用这些静态分析工具。对程序中数据污染流的检测相对较准确,但即使如此,静态分析仍无法准确判断执行流中是否存在已有的清理(sanitization)处理以及其有效程度。这些方法在准确性方面仍然具有限制并需要开发人员的检查。
当前用于安全开发的典型操作是:使用静态分析和动态测试工具来查找安全漏洞,然后在诸如IBMTM RationalTM ClearCaseTM(CC)和IBMTMRationalTM ClearQuestTM(CQ)之类的缺陷(bug)控制系统中生成安全性票(ticket),并使编程人员修复代码并关闭票;然后一直等待直到测试阶段,并且再次执行整体安全性分析以查找漏洞。
上述操作可存在若干限制。沿污染流可存在冲突的清理并且可在不同阶段(输入阶段、数据库(DB)访问阶段,或页面显示阶段)完成清理以修复安全性漏洞。通常,负责的开发人员对于不同阶段而言是不同的。假定两个开发人员都熟悉安全性并使用HtmlEntity转义来防止XSS攻击。则他们可能错误地重复转义,例如,一个开发人员将‘<’转义为‘&lt;’并且数据被存入数据库,稍后,另一开发人员从数据库检索数据并进一步将‘&lt;’转义为‘&amp;lt;’。动态测试可发现此类情况,但是如上所述,其必须一直等待直到代码构建。
如上所述,漏洞位置和理想的清理代码通常未位于一起。例如,当用户输入被直接用于连接SQL查询并用于访问数据库(DB)时,将出现SQL注入安全漏洞,但是有时清理位置可能在接受用户输入的jsp页面中。因此,检查者难以将清理代码与CQ中的安全性票相关联。
由于初级的开发人员可能经常重复犯同样的错误,所以类似的安全漏洞模式经常发生。反复修复类似漏洞会导致重复的工作。此外,修补漏洞会花费更多的时间。例如,在每次测试反复中执行安全性检查和修补漏洞的效率将低于在开发期间执行所述操作。后者可帮助开发人员更准确地进行判断,因为开发人员更了解代码结构和漏洞修补上下文。进而,执行清理的代码可因某些非安全性原因(方法名称、功能性等)而改变,这意味着安全漏洞会重新出现,并且需要重新检查漏洞。
发明内容
提供了一种用于开发中的安全漏洞响应管理的方法和系统。在一个方面中,所述方法可包括检测匹配安全漏洞模式的代码实例,以及生成与所述代码实例关联的一个或多个提示以响应所述检测。所述方法还可包括检索对匹配安全漏洞模式的代码实例的操作响应,以及将所检索的操作响应与所述代码实例关联。
在一个方面中,用于开发中的安全漏洞响应管理的系统可包括:处理器;以及可操作以检测匹配安全漏洞模式的代码实例的模块。所述模块还可操作以生成与所述代码实例关联的一个或多个提示以响应检测到匹配安全漏洞模式的代码实例。所述模块还可操作以检索对匹配安全漏洞模式的代码实例的操作响应,以及将所检索的操作响应与所述代码实例关联。
以下参考附图详细描述了各种实施例的进一步的特性以及结构和操作。在附图中,相同的标号指示相同的或功能类似的元素。
附图说明
图1是示出本发明的一个实施例中的管理安全漏洞的方法和清理方法的流程图;
图2示出了与样例模式关联的知识的实例,借助所述模式,本发明的系统和方法可导出与计算机程序或代码中暴露的潜在安全漏洞有关的提示;
图3示出了本发明一个实施例中的呈现代码中发现的潜在安全漏洞和可能的修复的用户接口屏幕快照;
图4示出了系统如何在代码重写期间维护安全性检查信息;
图5示出了其中可实现或执行本发明的系统和方法的计算机系统的实例;以及
图6示出根据本发明实施例的用于开发中的安全漏洞响应管理的系统框图。
具体实施方式
在一个方面中,本发明提供了一种通过检查来自现有漏洞和/或可参照的数据安全清理代码的提示来帮助开发人员编写安全代码的系统和方法。根据本发明实施例的方法包括步骤:检测匹配安全漏洞模式的代码实例;使用处理器生成与所述代码实例关联的一个或多个提示以响应所述检测;检索对匹配安全漏洞模式的代码实例的操作响应;以及将所检索的操作响应与所述代码实例关联。
其中所述检索步骤可进一步包括:接收与所述操作响应相关的上下文;存储所述上下文与所述操作响应的关联、所述代码实例的位置和所述上下文;以及响应于所述上下文被更改,重新评估所述上下文与所述操作响应的关联并提醒修改所述操作响应。其中所述上下文可包括将修补安全漏洞的一个或多个位置。
此处的漏洞或安全性漏洞指可由不适当的代码编程导致的应用安全漏洞,其会受到攻击者的利用。此处的提示指从先前的最佳实践推断出的安全性编程知识。作为一个实例,对于.jsp页面(例如图3所示)中的<%=display content%>部分,如果display content直接来自用户输入“UserInput”,则可能具有跨站脚本漏洞。在此类实例情况中的最佳实践将是在作为display content之前验证UserInput,如<%=IsSafe(UserInput)%>。
例如,本发明的系统和方法可跟踪和分析开发中的代码修改。开发中的分析指在代码开发期间(即,在编写代码期间)执行分析,而不是在开发代码之后执行分析。本发明的系统和方法可提供已发现漏洞(即,代码中的潜在安全漏洞)和对应清理位置的开发中的管理。本发明的系统和方法还可借助积累的知识生成自适应提示以协助开发人员修复未来漏洞。自适应提示指基于上下文的提示,其例子包括与提示关联代码的代码相似性、作者关系以及项目关系,执行链中的其他节点的任何已有修复等。与仅检测安全漏洞并完全依靠开发人员修复漏洞和关闭安全漏洞票的传统工具相比,本发明的系统和方法不仅可以检测安全漏洞,而且还在代码上下文中将其与数据清理操作关联。利用此知识,在一个实施例中,本发明的系统和方法可发展其能力并在开发生命周期内生成提示。本发明的系统和方法还可提供检查和培训功能,使得开发人员可在代码开发期间学习其他开发人员的已有最佳实践。
图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*FROM users WHERE login=”‘+formusr+’“ANDpassword=”‘+formpwd+’“”;
Current:“SELECT*FROM id WHERE LOGIN=”‘+userinput+’“”;
知识推导的再一实例可以是其中沿所述流已存在已有清理的情况。系统可被配置为是否再次询问开发人员。对于某些情况,如果安全性专家希望检查清理的有效性,则其可选择显示已有的清理。另一实例情形可以是其中负责执行流中的其他阶段的另一开发人员可能希望检查清理中是否存在任何冲突的情况。例如,系统可被配置为默认仅向相关编程人员(例如,在同一执行流中)显示清理,但是如果例如安全性专家正在执行代码检查,则该安全性专家也可选择查看清理,即使该安全性专家并未与作者相关或关联。
可以以其他方式导出代码中的潜在安全漏洞。例如,可以使用加强学习来训练最佳导出策略。负责该提示(即,代码中暴露的潜在安全漏洞)中的漏洞修补代码的作者可被显示给开发人员作为参考。可从源控制或缺陷跟踪系统检索作者信息。如果存在许多提示情况,则系统可根据作者的安全性声望、提示情况的相关性、执行流的关系等将这些提示情况按照优先顺序排列。即,可将所述一个或多个提示按照优先顺序排列。可根据加强学习算法、作者声望或它们的组合中的一个或多个来按照优先顺序排列所述一个或多个提示。可使用加强学习算法识别所述一个或多个提示。
在另一个方面中,可提供协作开发环境内的社会声望系统。例如,系统可累积不同开发人员执行的活动的历史并得到开发人员的声望。如果样例模式的作者与当前开发人员相同(这指示同一人员的重复编码风格),则还可以增加指示同一人员的重复编码风格的优先级。
图3示出了本发明一个实施例中的呈现代码中发现的潜在安全漏洞和可能的修复的用户接口屏幕快照。本发明的系统和方法可以与诸如EclipseTM工具之类的开发环境工具302或另一集成开发环境(IDE)工具一起工作。在编程人员等正在例如通过工具302的编辑器308开发代码时,可以弹出对话310或类似窗口,其显示代码306中暴露的潜在安全漏洞,以及用户可响应于代码中的安全漏洞的提示而选择的操作项目304。所述提示可包括作为先前开发人员的输入的结果而存储的信息。所述提示可被提供为使能导航到所关联代码的超链接点击。从所述代码实例和先前存储的样例代码中的执行流信息导出所述一个或多个提示。
图4示出了系统如何在代码重写期间维护安全性检查信息。当代码片段402被复制和/或粘贴到另一程序404时,某些相关的安全性检查信息406也可被传输到新的程序404以用于潜在安全性提示生成。
图6示出根据本发明实施例的用于开发中的安全漏洞响应管理的系统框图600,该系统中包括:检测模块601,可操作以检测匹配安全漏洞模式的代码实例;提示生成模块602,可操作以生成与所述代码实例关联的一个或多个提示以响应检测到匹配安全漏洞模式的代码实例;操作响应检索模块,可操作以检索对匹配安全漏洞模式的代码实例的操作响应;以及关联模块,可操作以将所检索的操作响应与所述代码实例关联。
本发明的实施例的系统还包括数据库,其可操作以存储所述操作响应与所述安全漏洞模式之间的关联。可选地,还可包括:用户接口模块,其可操作以作为使能导航到所关联代码的超链接点击来提供所述一个或多个提示。所述操作响应检索模块还可操作以接收与所述操作响应相关的上下文,存储所述上下文与所述操作响应的关联、所述代码实例的位置、和所述上下文,以及响应于所述上下文被更改,重新评估所述关联,并且所述用户接口模块还可操作以提供修改所述操作响应的提醒。
其中所述上下文包括将修补安全漏洞的一个或多个位置。该系统还包括提示导出模块,可操作以从所述代码实例和先前存储的样例代码中的执行流信息导出所述一个或多个提示。
如本领域技术人员将理解的,本发明的各方面可以被体现为系统、方法或计算机程序产品。相应地,本发明的各方面可采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合此处可全部被统称为“电路”、“模块”或“系统”的硬件和软件方面的实施例的形式。此外,本发明的各方面可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述计算机可读介质中包含计算机可读程序代码。
可以使用一种或多种计算机可读介质的任意组合。所述计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是,例如但不限于,电、磁、光、电磁、红外线或半导体系统、装置、设备或它们的任意适当组合。计算机可读存储介质的更具体的实例(非穷举列表)包括以下内容:具有一条或多条连线的电连接、可移动计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPROM或闪存)、光纤、可移动光盘-只读存储器(CD-ROM)、光存储设备、磁存储设备或它们的任意适当组合。在此文档的上下文中,计算机可读存储介质可以是任何能够包含或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备有关的程序的有形介质。
计算机可读信号介质可以包括其中包含计算机可读程序代码(例如,在基带中或作为载波的一部分)的传播数据信号。此类传播信号可采取多种形式中的任何形式,包括但不限于电-磁、光或它们的任意适当组合。计算机可读信号介质可以是任何不是计算机可读存储介质并且可传送、传播或传输由指令执行系统、装置或设备使用或与指令执行系统、装置或设备有关的程序的计算机可读介质。
可以使用任何适当的介质(包括但不限于无线、有线、光缆、射频等或它们的任意适当组合)来传输计算机可读介质上包含的程序代码。
用于执行本发明的各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,包括面向对象的编程语言(如Java、Smalltalk、C++等)和传统的过程编程语言(如“C”编程语言或类似编程语言)。所述程序代码可以完全地在用户计算机上、部分地在用户计算机上、作为单独的软件包、部分地在用户计算机上并部分地在远程计算机上或完全地在远程计算机上执行。在后者的情况中,所述远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))与所述用户计算机相连,或者可以进行与外部计算机的连接(例如,利用因特网服务提供商并通过因特网)。
参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或方块图在下面描述了本发明的各方面。将理解,所述流程图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一种机器,以便通过所述计算机或其他可编程数据处理装置的处理器执行的所述指令将创建用于实现所述流程图和/或方块图方块(多个)中指定的功能/操作的装置。
这些计算机程序指令也可以被存储在能够引导计算机或其他可编程数据处理装置或其他设备以特定方式执行功能的计算机可读介质中,以便存储在所述计算机可读介质中的所述指令将产生一件包括实现在所述流程图和/或方块图方块(多个)中指定的功能/操作的指令的制品。
所述计算机程序指令还可以被加载到计算机或其他可编程数据处理装置或其他设备上以导致将在所述计算机或其他可编程装置或其他设备上执行一系列的操作步骤以产生计算机实现的过程,以便在所述计算机或其他可编程装置上执行的所述指令将提供用于实现在所述流程图和/或方块图方块(多个)中指定的功能/操作的过程。
附图中的流程图和方块图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。
还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示出为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还将指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于硬件的专用系统或专用硬件和计算机指令的组合来实现。
现在参考图5,本发明的系统和方法可在包括处理单元2的计算机系统中实现或执行,所述处理单元2容纳一个或多个处理器或核心、存储器和其他系统组件(未在图中明确示出),后者实现计算机处理系统或可执行计算机程序产品的计算机。所述计算机程序产品可包括介质,例如硬盘、诸如光盘的压缩存储介质,或其他存储设备,后者可由处理单元2通过任何本领域技术人员公知或将公知的技术读取,以便将所述计算机程序产品提供给处理系统以供执行。
所述计算机程序产品可包括允许实现此处所述的方法的所有相应特征,并且当被加载到计算机系统中时,其能够实现这些方法。当前上下文中的计算机程序、软件程序、程序或软件是指一组指令的以任何语言、代码或符号表示的任何表达,旨在使具有信息处理能力的系统直接执行特定的功能,或者执行以下两者之一或全部后执行特定的功能:a)转换为另一种语言、代码或符号;和/或b)以不同的材料形式再现。
实现本发明的系统和方法的计算机处理系统还可包括诸如监视器或显示屏4之类的显示设备,以便呈现输出显示并提供用户可通过其输入数据并与处理系统交互(例如,与诸如键盘6和鼠标设备8或指点设备之类的输入设备协作)的显示。所述计算机处理系统还可直接或经由远程连接被连接或耦合到一个或多个外围设备(如打印机10、扫描仪(未示出)、扬声器)和任何其他设备。所述计算机处理系统还可经由本地以太网、广域网连接、因特网等中的任意一个或多个或经由任何其他连接不同的计算系统并允许它们彼此通信的联网技术被连接或耦合到一个或多个其他处理系统(如服务器10、其他远程计算机处理系统14、网络存储设备12)。可以以分布方式在不同的处理系统(例如,2,14,16)上或在任何单个平台上实现或执行本发明的系统和方法的各种功能和模块,例如,访问在网络上本地存储的或以分布方式存储的数据。
在此使用的术语只是为了描述特定实施例并且并非旨在限制本发明。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特征、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组的存在或增加。
相应的结构、材料、动作以及所有装置或步骤的等同物加上以下权利要求中的功能元素旨在包括任何用于结合具体要求保护的其他元素执行功能的结构、材料或动作。出于示例和说明目的给出了对本发明的描述,但是所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域中的技术人员而言,在不偏离本发明的范围和精神的情况下,许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。
本发明的各个方面可以被体现为计算机或机器可用或可读介质内包含的程序、软件或计算机程序指令,后者当在计算机、处理器和/或机器上执行时,将导致所述计算机或机器执行所述方法的步骤。还提供了可由机器读取并有形地体现指令程序的程序存储设备,所述指令可由机器执行以实现本发明中所述的各种功能和方法。
本发明的系统和方法可在通用计算机或专用计算机系统上实现和运行。所述计算机系统可以是任何类型的公知或将公知的系统,并且典型地可包括处理器、存储器设备、存储设备、输入/输出设备、内部总线,和/或用于结合通信硬件和软件与其他计算机系统通信的通信接口等。
如本申请中可使用的术语“计算机系统”和“计算机网络”可包括固定和/或便携式计算机硬件、软件、外围设备和存储设备的各种组合。所述计算机系统可包括多个联网的或以其他方式链接以协作执行的单独组件,或可包括一个或多个独立组件。本申请的计算机系统的硬件和软件组件可包括并且可包括在诸如桌面计算机、膝上型计算机、服务器之类的固定和便携式设备内。模块可以是设备、软件、程序或系统的实现某种“功能”的组件,其可以体现为软件、硬件、固件、电子电路等。
上述实施例是示例性实例并且不应理解为本发明限于这些特定实施例。因此,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,本领域技术人员可实现各种更改和修改。

Claims (18)

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中所述的系统,还包括提示导出模块,可操作以从所述代码实例和先前存储的样例代码中的执行流信息导出所述一个或多个提示。
CN201010104980.1A 2010-01-29 2010-01-29 用于开发中的安全漏洞响应管理的方法和系统 Expired - Fee Related CN102141956B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010104980.1A CN102141956B (zh) 2010-01-29 2010-01-29 用于开发中的安全漏洞响应管理的方法和系统
US12/787,933 US8776239B2 (en) 2010-01-29 2010-05-26 In-development vulnerability response management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010104980.1A CN102141956B (zh) 2010-01-29 2010-01-29 用于开发中的安全漏洞响应管理的方法和系统

Publications (2)

Publication Number Publication Date
CN102141956A true CN102141956A (zh) 2011-08-03
CN102141956B CN102141956B (zh) 2015-02-11

Family

ID=44342805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010104980.1A Expired - Fee Related CN102141956B (zh) 2010-01-29 2010-01-29 用于开发中的安全漏洞响应管理的方法和系统

Country Status (2)

Country Link
US (1) US8776239B2 (zh)
CN (1) CN102141956B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104715204A (zh) * 2013-12-11 2015-06-17 国际商业机器公司 利用元请求对web应用程序进行安全漏洞测试
CN106603572A (zh) * 2017-01-16 2017-04-26 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置
CN106605397A (zh) * 2014-10-26 2017-04-26 迈克菲股份有限公司 安全编排框架
CN107193677A (zh) * 2017-04-18 2017-09-22 广州视源电子科技股份有限公司 代码缺陷的通知方法及系统
CN109416719A (zh) * 2016-04-22 2019-03-01 谭琳 用于确定软件代码中的缺陷和漏洞的方法
US10447714B2 (en) * 2013-09-28 2019-10-15 Mcafee, Llc Context-aware network on a data exchange layer
CN110493781A (zh) * 2014-05-30 2019-11-22 谷歌有限责任公司 动态授权的方法和系统
CN112534400A (zh) * 2018-08-03 2021-03-19 大陆-特韦斯贸易合伙股份公司及两合公司 用于分析源代码的方法
CN113596061A (zh) * 2021-08-31 2021-11-02 广州卓远虚拟现实科技有限公司 基于区块链技术的网络安全漏洞响应方法及系统

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747187B2 (en) 2010-10-27 2017-08-29 International Business Machines Corporation Simulating black box test results using information from white box testing
JP5845888B2 (ja) * 2011-12-26 2016-01-20 日本電気株式会社 ソフトウェア修正装置、ソフトウェア修正システム、ソフトウェア修正方法、及び、ソフトウェア修正プログラム
US9443086B2 (en) * 2012-02-23 2016-09-13 Infosys Limited Systems and methods for fixing application vulnerabilities through a correlated remediation approach
US9608881B2 (en) 2012-04-13 2017-03-28 International Business Machines Corporation Service compliance enforcement using user activity monitoring and work request verification
CN102932782A (zh) * 2012-10-12 2013-02-13 中国科学院软件研究所 云环境下基于二维码的移动智能终端漏洞查询与推送方法
US10521288B2 (en) * 2012-11-07 2019-12-31 International Business Machines Corporation Collaborative application testing
US20140215614A1 (en) * 2013-01-30 2014-07-31 Samsung Electronics Co., Ltd. System and method for a security assessment of an application uploaded to an appstore
US9384354B2 (en) * 2013-02-20 2016-07-05 International Business Machines Corporation Rule matching in the presence of languages with no types or as an adjunct to current analyses for security vulnerability analysis
US9176849B2 (en) 2013-04-17 2015-11-03 Globalfoundries U.S. 2 Llc Partitioning of program analyses into sub-analyses using dynamic hints
FR3005179B1 (fr) * 2013-04-25 2015-05-15 Oberthur Technologies Procede et systeme de simulation des effets d'une attaque sur un code informatique
US9195570B2 (en) * 2013-09-27 2015-11-24 International Business Machines Corporation Progressive black-box testing of computer software applications
WO2016036321A1 (en) * 2014-09-05 2016-03-10 Agency For Science, Technology And Research Methods for generating a vulnerability pattern, methods for determining a security threat, vulnerability pattern generators, and vulnerability pattern scanners
US10445505B2 (en) * 2014-09-22 2019-10-15 Mcafee, Llc Process vulnerability assessment
US9792443B1 (en) * 2015-03-12 2017-10-17 Whitehat Security, Inc. Position analysis of source code vulnerabilities
US10282550B1 (en) * 2015-03-12 2019-05-07 Whitehat Security, Inc. Auto-remediation workflow for computer security testing
IN2015CH03057A (zh) * 2015-06-18 2015-07-03 Wipro Ltd
US9965633B2 (en) 2015-12-29 2018-05-08 Sap Se Using code similarities for improving auditing and fixing of SAST-discovered code vulnerabilities
US10585776B2 (en) 2016-04-07 2020-03-10 International Business Machines Corporation Automated software code review
WO2017200942A1 (en) 2016-05-15 2017-11-23 John Steven Systems and methods for model-based analysis of software
IL259201B (en) * 2017-05-10 2021-12-01 Checkmarx Ltd Using the same query language for static and dynamic application security testing tools
US11443046B2 (en) * 2017-08-14 2022-09-13 Onapsis, Inc. Entry point finder
US11356449B2 (en) 2018-10-20 2022-06-07 Walmart Apollo, Llc Managing access to vulnerability data at scale
US11475135B2 (en) 2018-11-30 2022-10-18 Target Brands, Inc. Orchestration of vulnerability scanning and issue tracking for version control technology
US11200048B2 (en) * 2020-05-14 2021-12-14 International Business Machines Corporation Modification of codified infrastructure for orchestration in a multi-cloud environment
US11709936B2 (en) 2020-07-08 2023-07-25 International Business Machines Corporation Automatic integrity vulnerability detection in an integrated development environment
US11836258B2 (en) 2020-07-28 2023-12-05 Checkmarx Ltd. Detecting exploitable paths in application software that uses third-party libraries
US20230179623A1 (en) * 2021-12-08 2023-06-08 Accurics, Inc Breach path prediction and remediation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725759A (zh) * 2004-07-21 2006-01-25 微软公司 蠕虫遏制
CN1841394A (zh) * 2005-03-29 2006-10-04 国际商业机器公司 源代码修复方法和代码管理库系统
US20080115219A1 (en) * 2006-11-13 2008-05-15 Electronics And Telecommunications Research Apparatus and method of detecting file having embedded malicious code
CN100432954C (zh) * 2005-09-23 2008-11-12 中兴通讯股份有限公司 一种面向方面的嵌入式系统测试方法及其系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174354B2 (en) * 2002-07-31 2007-02-06 Bea Systems, Inc. System and method for garbage collection in a computer system, which uses reinforcement learning to adjust the allocation of memory space, calculate a reward, and use the reward to determine further actions to be taken on the memory space
US7603714B2 (en) * 2004-03-08 2009-10-13 International Business Machines Corporation Method, system and computer program product for computer system vulnerability analysis and fortification
US7634813B2 (en) * 2004-07-21 2009-12-15 Microsoft Corporation Self-certifying alert

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725759A (zh) * 2004-07-21 2006-01-25 微软公司 蠕虫遏制
CN1841394A (zh) * 2005-03-29 2006-10-04 国际商业机器公司 源代码修复方法和代码管理库系统
CN100432954C (zh) * 2005-09-23 2008-11-12 中兴通讯股份有限公司 一种面向方面的嵌入式系统测试方法及其系统
US20080115219A1 (en) * 2006-11-13 2008-05-15 Electronics And Telecommunications Research Apparatus and method of detecting file having embedded malicious code

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10447714B2 (en) * 2013-09-28 2019-10-15 Mcafee, Llc Context-aware network on a data exchange layer
CN104715204A (zh) * 2013-12-11 2015-06-17 国际商业机器公司 利用元请求对web应用程序进行安全漏洞测试
US9705910B2 (en) 2013-12-11 2017-07-11 International Business Machines Corporation Testing web applications for security vulnerabilities with metarequests
CN104715204B (zh) * 2013-12-11 2017-10-24 国际商业机器公司 利用元请求对web应用程序进行安全漏洞测试
US9900340B2 (en) 2013-12-11 2018-02-20 International Business Machines Corporation Testing web applications for security vulnerabilities with metarequests
CN110493781B (zh) * 2014-05-30 2022-09-13 谷歌有限责任公司 动态授权的方法和系统
CN110493781A (zh) * 2014-05-30 2019-11-22 谷歌有限责任公司 动态授权的方法和系统
CN106605397B (zh) * 2014-10-26 2021-08-24 迈克菲股份有限公司 安全编排框架
CN106605397A (zh) * 2014-10-26 2017-04-26 迈克菲股份有限公司 安全编排框架
CN109416719A (zh) * 2016-04-22 2019-03-01 谭琳 用于确定软件代码中的缺陷和漏洞的方法
CN106603572B (zh) * 2017-01-16 2020-07-14 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置
CN106603572A (zh) * 2017-01-16 2017-04-26 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置
CN107193677A (zh) * 2017-04-18 2017-09-22 广州视源电子科技股份有限公司 代码缺陷的通知方法及系统
CN112534400A (zh) * 2018-08-03 2021-03-19 大陆-特韦斯贸易合伙股份公司及两合公司 用于分析源代码的方法
CN113596061A (zh) * 2021-08-31 2021-11-02 广州卓远虚拟现实科技有限公司 基于区块链技术的网络安全漏洞响应方法及系统
CN113596061B (zh) * 2021-08-31 2022-07-26 广州卓远虚拟现实科技有限公司 基于区块链技术的网络安全漏洞响应方法

Also Published As

Publication number Publication date
US20110191855A1 (en) 2011-08-04
CN102141956B (zh) 2015-02-11
US8776239B2 (en) 2014-07-08

Similar Documents

Publication Publication Date Title
CN102141956B (zh) 用于开发中的安全漏洞响应管理的方法和系统
Gurbuz et al. Model-based testing for software safety: a systematic mapping study
Li et al. Two decades of Web application testing—A survey of recent advances
Utting et al. Recent advances in model-based testing
de Franco Rosa et al. Towards an ontology of security assessment: a core model proposal
Uzun et al. Model-driven architecture based testing: A systematic literature review
Qin et al. Testmig: Migrating gui test cases from ios to android
CN104715204A (zh) 利用元请求对web应用程序进行安全漏洞测试
Ricca et al. Three open problems in the context of e2e web testing and a vision: Neonate
Amankwah et al. Bug detection in Java code: An extensive evaluation of static analysis tools using Juliet Test Suites
Mishra et al. A review on security requirements specification by formal methods
Chen et al. Clone refactoring inspection by summarizing clone refactorings and detecting inconsistent changes during software evolution
El‐Attar A framework for improving quality in misuse case models
Anda et al. An investigation of use case quality in a large safety-critical software development project
Canfora et al. Patchworking: Exploring the code changes induced by vulnerability fixing activities
Shippey Exploiting abstract syntax trees to locate software defects
Mohammed et al. A search-based approach for detecting circular dependency bad smell in goal-oriented models
Horsman Forming an investigative opinion in digital forensics
Delima et al. Automatic Requirements Engineering: Activities, Methods, Tools, and Domains–A Systematic Literature Review
Eichhoff et al. Designing the same, but in different ways: determinism in graph-rewriting systems for function-based design synthesis
Zorn Interactive elicitation of resilience scenarios in microservice architectures
Wen et al. A formal approach for consistency management in UML models
Abushark et al. A framework for automatically ensuring the conformance of agent designs
Ferreira et al. In Cyber-Space No One Can Hear You S CREAM: A Root Cause Analysis for Socio-Technical Security
Kundu Software Engineering: A Systematic Approach

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150211

Termination date: 20210129