CN115455425A - 防护补丁生成方法、系统、设备及存储介质 - Google Patents

防护补丁生成方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN115455425A
CN115455425A CN202211111351.0A CN202211111351A CN115455425A CN 115455425 A CN115455425 A CN 115455425A CN 202211111351 A CN202211111351 A CN 202211111351A CN 115455425 A CN115455425 A CN 115455425A
Authority
CN
China
Prior art keywords
attack
information
generating
protection patch
parameter
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
CN202211111351.0A
Other languages
English (en)
Other versions
CN115455425B (zh
Inventor
纪妙
周慧英
姚倩
东红林
殷铭
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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202211111351.0A priority Critical patent/CN115455425B/zh
Publication of CN115455425A publication Critical patent/CN115455425A/zh
Application granted granted Critical
Publication of CN115455425B publication Critical patent/CN115455425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种防护补丁生成方法、系统、设备及存储介质,所述方法包括步骤:获取攻击请求信息,以及与所述攻击请求信息对应的目标应用程序的源代码;根据所述源代码,获取与所述攻击请求信息对应的关联代码信息;根据所述攻击请求信息和所述关联代码信息,获取所述源代码的缺陷检测结果;根据所述缺陷检测结果,生成参数约束条件;根据所述攻击请求信息和所述参数约束条件,生成防护补丁;本发明降低了RASP引擎补丁规则拦截的漏报率,利于保证web应用系统安全。

Description

防护补丁生成方法、系统、设备及存储介质
技术领域
本发明涉及计算机技术领域,具体地说,涉及一种防护补丁生成方法、系统、设备及存储介质。
背景技术
基于运行时应用自我保护(RASP,Runtime Application Self-Protection)引擎,实现对web应用的安全防护,是目前较为常见的一个解决方案。补丁规则泛化能力弱是运行时应用自我保护(RASP)引擎检测中面临的难点之一,补丁规则泛化能力弱将导致针对攻击的拦截漏报率高,威胁应用系统安全。
当前针对于运行时应用中的防护补丁生成工作,通常是考虑对已确定攻击请求的URL(Uniform Resource Locator,统一资源定位器)、Parameter、Header三个字段进行精确约束配置实现的。然而一方面在生成补丁时,往往涉及大量的应用代码特征。此方法无法对代码特征进行识别,全面准确地针对脆弱性代码,即针对存在缺陷的代码生成相关补丁,导致攻击拦截的漏报率高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种防护补丁生成方法、系统、设备及存储介质,实现降低RASP引擎补丁规则拦截的漏报率。
为实现上述目的,本发明提供了一种防护补丁生成方法,所述方法包括以下步骤:
获取攻击请求信息,以及与所述攻击请求信息对应的目标应用程序的源代码;
根据所述源代码,获取与所述攻击请求信息对应的关联代码信息;
根据所述攻击请求信息和所述关联代码信息,获取所述源代码的缺陷检测结果;
根据所述缺陷检测结果,生成参数约束条件;
根据所述攻击请求信息和所述参数约束条件,生成防护补丁。
可选地,所述根据所述攻击请求信息和所述参数约束条件,生成防护补丁,包括:
根据所述攻击请求信息,提取攻击参数关键词;
根据所述攻击参数关键词和所述参数约束条件,生成防护补丁。
可选地,所述防护补丁中包括多个第一参考字段;所述方法还包括步骤:
根据所述攻击请求信息,提取得到待匹配字段组合;所述待匹配字段组合中包括多个待匹配字段;
将所述待匹配字段组合和所述第一参考字段进行一级匹配,判断是否匹配成功;
若一级匹配成功,则拦截对应的攻击请求。
可选地,所述防护补丁中还包括至少一第二参考字段;所述方法还包括步骤:
若一级匹配失败,则基于所述待匹配字段组合中的一目标待匹配字段和所述防护补丁中的多个第二参考字段进行二级匹配;
若二级匹配成功,则拦截对应的攻击请求。
可选地,所述基于所述待匹配字段组合中的一目标待匹配字段和所述防护补丁中的多个第二参考字段进行二级匹配,包括:
基于约束求解器判断所述目标待匹配字段是否为所述多个第二参考字段进行交集运算后的一个解;若是则二级匹配成功;若否则二级匹配失败。
可选地,所述根据所述源代码,获取与所述攻击请求信息对应的关联代码信息,包括:
根据所述攻击请求信息,提取得到攻击接口信息;
所述根据所述攻击请求信息,提取攻击参数关键词,包括:
根据所述攻击接口信息,提取得到攻击参数关键词。
可选地,所述根据所述攻击请求信息,提取得到攻击接口信息,包括:
获取预设安全防护引擎的攻击防护日志数据;
自所述攻击防护日志数据,提取出与所述攻击请求信息关联的攻击接口信息。
可选地,所述攻击接口信息包括原始请求参数信息和攻击执行调用参数信息;所述根据所述攻击接口信息,提取得到攻击参数关键词,包括:
对所述原始请求参数信息进行分词处理,得到分词列表;
根据所述攻击执行调用参数信息,对所述分词列表进行筛选,得到目标分词;
提取所述目标分词中的关键词,作为攻击参数关键词。
可选地,所述根据所述攻击请求信息和所述关联代码信息,获取所述源代码的缺陷检测结果,包括:
根据所述攻击请求信息和所述关联代码信息,获取目标调用链信息;
根据所述关联代码信息,生成代码流图;
根据所述关联代码信息和目标调用链信息,在所述代码流图中进行路径搜索,得到多条初始可行路径信息;
根据所述攻击请求信息,在所述多条初始可行路径信息中筛选得到目标可行路径,并获取与所述目标可行路径对应的缺陷代码片段。
可选地,所述根据所述攻击请求信息和所述关联代码信息,获取目标调用链信息,包括:
根据所述攻击请求信息,提取得到第一调用链信息;
根据所述关联代码信息,提取得到第二调用链信息;
基于所述第一调用链信息,自所述第二调用链信息中匹配得到目标调用链信息。
可选地,每一所述初始可行路径信息对应一初始参数约束条件;所述方法包括:
获取所述目标可行路径对应的初始参数约束条件,作为目标参数约束条件;
所述根据所述攻击请求信息和所述参数约束条件,生成防护补丁,包括:
根据所述攻击请求信息和所述目标参数约束条件,生成防护补丁。
可选地,所述根据所述源代码,获取与所述攻击请求信息对应的关联代码信息,包括:
根据所述攻击请求信息,提取得到攻击接口信息;
根据所述源代码,获取与所述攻击接口信息对应的关联代码信息。
可选地,所述根据所述攻击参数关键词和所述参数约束条件,生成防护补丁,包括:
将所述攻击参数关键词和所述参数约束条件填充至预设补丁模板,生成防护补丁。
本发明还提供了一种防护补丁生成系统,用于实现上述防护补丁生成方法,所述系统包括:
攻击请求分析模块,获取攻击请求信息,以及与所述攻击请求信息对应的目标应用程序的源代码;
关联代码信息获取模块,根据所述源代码,获取与所述攻击请求信息对应的关联代码信息;
脆弱性分析模块,根据所述攻击请求信息和所述关联代码信息,获取所述源代码的缺陷检测结果;
参数约束条件生成模块,根据所述缺陷检测结果,生成参数约束条件;
防护补丁生成模块,根据所述攻击请求信息和所述参数约束条件,生成防护补丁。
本发明还提供了一种防护补丁生成设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行程序;
其中,所述处理器配置为经由执行所述可执行程序来执行上述任意一项防护补丁生成方法的步骤。
本发明还提供了一种计算机可读存储介质,用于存储程序,所述程序被处理器执行时实现上述任意一项防护补丁生成方法的步骤。
本发明与现有技术相比,具有以下优点及突出性效果:
本发明提供的防护补丁生成方法、系统、设备及存储介质基于攻击请求信息和关联代码信息,识别融合代码特征,得到代码缺陷检测结果;然后获取参数约束条件,并结合对攻击请求信息的分析处理,生成防护补丁,能够利于提高攻击识别的准确度,从而降低了RASP引擎补丁规则拦截的漏报率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1为现有技术中的防护补丁生成方法的示意图;
图2为本发明一实施例公开的一种防护补丁生成方法的示意图;
图3为本发明一实施例公开的缺陷检测结果的获取流程图;
图4为本发明一实施例公开的一种防护补丁生成方法中步骤S230的示意图;
图5为本发明一实施例公开的一种防护补丁生成方法中在代码流图中进行路径搜索的流程示意图;
图6为本发明一实施例公开的一种防护补丁生成方法中防护补丁的生成流程图。
图7为本发明一实施例公开的一种防护补丁生成方法中步骤S250的示意图;
图8为本发明另一实施例公开的一种防护补丁生成方法的示意图;
图9为本发明一实施例公开的一种防护补丁生成系统的结构示意图;
图10为本发明一实施例公开的一种防护补丁生成系统中脆弱性分析模块的结构示意图;
图11为本发明一实施例公开的一种防护补丁生成系统中防护补丁生成模块的结构示意图;
图12为本发明另一实施例公开的一种防护补丁生成系统的示意图;
图13为本发明一实施例公开的一种防护补丁生成设备的结构示意图;
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本申请所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用系统,本申请中的各项细节也可以根据不同观点与应用系统,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面以附图为参考,针对本申请的实施例进行详细说明,以便本申请所属技术领域的技术人员能够容易地实施。本申请可以以多种不同形态体现,并不限定于此处说明的实施例。
在本申请的表示中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的表示意指结合该实施例或示例表示的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,表示的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本申请中表示的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于表示目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的表示中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了明确说明本申请,省略与说明无关的器件,对于通篇说明书中相同或类似的构成要素,赋予了相同的参照符号。
在通篇说明书中,当说某器件与另一器件“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种器件“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素排除在外,而是意味着可以还包括其它构成要素。
当说某器件在另一器件“之上”时,这可以是直接在另一器件之上,但也可以在其之间伴随着其它器件。当对照地说某器件“直接”在另一器件“之上”时,其之间不伴随其它器件。
虽然在一些实例中术语第一、第二等在本文中用来表示各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一接口及第二接口等表示。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
此处使用的专业术语只用于言及特定实施例,并非意在限定本申请。此处使用的单数形态,只要语句未明确表示出与之相反的意义,那么还包括复数形态。在说明书中使用的“包括”的意义是把特定特性、区域、整数、步骤、作业、要素及/或成份具体化,并非排除其它特性、区域、整数、步骤、作业、要素及/或成份的存在或附加。
虽然未不同地定义,但包括此处使用的技术术语及科学术语,所有术语均具有与本申请所属技术领域的技术人员一般理解的意义相同的意义。普通使用的字典中定义的术语追加解释为具有与相关技术文献和当前提示的内容相符的意义,只要未进行定义,不得过度解释为理想的或非常公式性的意义。
现在将结合参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
当用户访问一web应用时,向其发出一访问请求。这时需要判断该访问请求是否为外部攻击,以保护web应用的安全。如果不是外部攻击,那么即为正常行为,就予以放行。如果是外部攻击,就是恶意行为,就予以拦截。这样应用程序就只会响应正常的请求,从而达到保护应用程序的目的。为了实现这一目的,本发明公开了以下防护补丁生成方法。
如图1所示,当前现有的防护补丁生成方法包括步骤:
S110,获取历史攻击请求信息。也即获取历史访问中已确定的攻击请求的信息。
S120,提取URL、Parameter、Header字段信息。也即提取已确定的攻击请求的URL、Parameter、Header三个字段信息。
S130,基于URL、Parameter、Header字段信息配置拦截规则。
S140,生成规则库。也即基于上述配置的拦截规则生成规则库。该规则库中包括上述配置生成的多个补丁规则。
S150,接收用户请求。
S160,基于规则库的精确匹配。也即,提取用户请求中的URL、Parameter、Header字段信息,将用户请求中的这些字段信息和规则库中的每一条补丁规则进行匹配,当与一条补丁规则中的URL、Parameter、Header三个字段信息均相同时,属于匹配成功。否则属于与该规则库匹配失败。
S170,响应用户请求。当精确匹配成功后,则拦截该用户请求。当精确匹配失败,则放行该用户请求。
一方面,现有方法仅基于规则库精确匹配,未针对攻击入口相关的脆弱性代码生成相关补丁,导致无法拦截其他类似的攻击,提高了漏报率。另一方面,现有方法仅仅针对攻击URL、Parameter、Header三个字段进行规则配置,规则的泛化能力弱。
如图2所示,本发明一实施例公开了一种防护补丁生成方法,该方法包括以下步骤:
S210,获取攻击请求信息,以及与上述攻击请求信息对应的目标应用程序的源代码。具体而言,通过RASP引擎识别出攻击请求。识别出攻击请求之后,即获取对应的攻击请求信息。该攻击请求可以为用户发出的访问目标web应用的请求。该攻击请求信息可以包含有对应攻击请求的请求地址、请求参数等信息。上述目标应用程序即为用户请求访问的目标web应用,请求地址即为目标web应用的地址。示例性地,获取的源代码部分片段可以如下所示:
Figure BDA0003843344750000091
S220,根据上述源代码,获取与上述攻击请求信息对应的关联代码信息。具体而言,S220包括:
S221,根据上述攻击请求信息,提取得到攻击接口信息。
S222,根据上述源代码,获取与上述攻击接口信息对应的关联代码信息。
具体而言,根据上述攻击请求信息,获取攻击入口,即获取攻击请求调用的API(Application Programming Interface,应用程序编程接口),然后获取与调用的API相关联的信息,即为攻击接口信息,也即为攻击详细信息。具体实施时,可以先获取预设安全防护引擎的攻击防护日志数据。然后从上述攻击防护日志数据中直接提取出攻击接口信息。
本实施例中,上述攻击接口信息可以包括第一调用链信息、原始请求参数信息和攻击执行调用参数信息,还可以包括攻击的URL、攻击参数、攻击类型等,本申请对此不作限制。上述第一调用链信息即为攻击的动态方法调用链。
其中,上述关联代码信息即为攻击调用的API在上述源代码中的静态上下文信息。具体实施时,可以基于应用的源代码,进行数据流、控制流分析,获取上述代码静态上下文信息。关联代码信息中可以包括API信息、参数信息、方法调用链信息等。示例性地,下述表1举例示出了一种攻击接口信息,以及其包含的字段名称和字段值:
表1攻击接口信息
攻击URL 攻击参数 攻击调用链 攻击类型
../foo s=”sh test.sh” Line 1-3-4 命令执行
如表1所示,在该攻击接口信息中,字段攻击URL对应的字段值为”../foo”,字段攻击参数对应的字段值为s=”sh test.sh”,字段攻击调用链对应的字段值为Line 1-3-4,字段攻击类型对应的字段值为命令执行。字段攻击调用链即为上述第一调用链信息。
S230,根据上述攻击请求信息和上述关联代码信息,获取上述源代码的缺陷检测结果。具体而言,该步骤即根据攻击接口信息和上述关联代码信息,对源代码进行脆弱性分析,获取源代码的脆弱面信息,即为缺陷检测结果。如图3所示,公开了上述缺陷检测结果的获取流程。依据该流程,上述步骤S230可以包括:
S231,获取攻击请求信息31。
S232,从攻击请求信息中提取攻击接口信息32。
S233,获取目标应用程序的源代码33。
S234,获取攻击API的静态上下文信息34。其中,攻击API自攻击请求信息中提取。
S235,结合攻击接口信息32和静态上下文信息34进行脆弱性分析,得到缺陷检测结果35。
如图4所示,具体实施时,在一些实施例中,该步骤可以包括:
S236,根据上述攻击请求信息,提取得到第一调用链信息。
S237,根据上述关联代码信息,提取得到第二调用链信息。
S238,基于上述第一调用链信息,自上述第二调用链信息中匹配得到目标调用链信息。
S239,根据上述关联代码信息,生成代码流图。
S330,根据上述关联代码信息和目标调用链信息,在上述代码流图中进行路径搜索,得到多条初始可行路径信息。
S331,根据上述攻击请求信息,在上述多条初始可行路径信息中筛选得到目标可行路径,并获取与上述目标可行路径对应的缺陷代码片段。
具体而言,由于攻击接口信息和关联代码信息中均包含各自的方法调用链信息,因此可以分别提取得到第一调用链信息和第二调用链信息。比如,第一调用链信息可以为一条,第二调用链信息可以为四条,那么就对两者进行匹配,将与第一调用链信息匹配成功的第二调用链信息作为目标调用链信息。然后根据攻击接口信息中包含的攻击URL、攻击参数、攻击类型等,在多条初始可行路径信息中进行筛选。将匹配成功的多条初始可行路径信息作为目标可行路径。示例性地,在代码流图中进行路径搜索的流程示意图可参考图5。图5中的左侧箭头流向为一条路径,右侧箭头流向为另一条路径。
本实施例中,上述缺陷检测结果除了包含上述缺陷代码片段之外,还可以包括上述目标可行路径、脆弱的URL、参数等。本申请对此不作限制。示例性地,下述表2举例示出了一种缺陷检测结果,以及其包含的字段名称和字段值:
表2缺陷检测结果
脆弱URL 脆弱参数约束 脆弱路径 是否为脆弱路径
../foo s.length>MAX Line 1-3-4
../foo s.length<MIN Line 1-3-6
../foo / Line 1-3-8
如表2所示,在该缺陷检测结果中,其包含四个字段以及各自对应的字段值。四个字段分别为脆弱URL、脆弱参数约束、脆弱路径以及是否为脆弱路径。
S240,根据上述缺陷检测结果,生成参数约束条件。具体而言,每一个初始可行路径信息对应一初始参数约束条件。可以从上述关联代码信息即静态上下文信息中提取到每一个初始可行路径信息对应的初始参数约束条件。然后将与上述目标可行路径对应的初始参数约束条件,作为最终的参数约束条件,即目标参数约束条件。
S250,根据上述攻击请求信息和上述参数约束条件,生成防护补丁。具体实施时,如图6所示,公开了上述防护补丁的生成流程。依据该流程可知:根据攻击请求信息中的攻击接口信息36可以提取攻击参数关键词37。根据缺陷检测结果35,得到参数约束条件38。依据攻击参数关键词37和参数约束条件38,可以得到防护补丁39。
相应地,上述步骤S250可以包括:
S251,获取攻击请求信息中的攻击接口信息。
S252,根据上述攻击接口信息,提取攻击参数关键词。
S253,根据上述攻击参数关键词和目标参数约束条件,生成防护补丁。
具体而言,该步骤可以将上述攻击参数关键词和上述参数约束条件填充至预设补丁模板,生成防护补丁。
示例性地,下述表3举例示出了生成的一种防护补丁,以及其包含的字段名称和字段值:
表3防护补丁
URL Parameter Parameter Value Header 关键词 参数约束条件
../foo s / / sh s.length>MAX or s.length<MIN
如表3所示,在该补丁规则即防护补丁中,其包含六个字段以及各自对应的字段值。六个字段分别为URL、Parameter、Parameter Value、Header、关键词以及参数约束条件。
如图7所示,在一些实施例中,上述步骤S252可以包括:
S2521,对攻击接口信息中的原始请求参数信息进行分词处理,得到分词列表。
S2522,根据攻击接口信息中的攻击执行调用参数信息,对上述分词列表进行筛选,得到目标分词。
S2523,提取上述目标分词中的关键词,作为攻击参数关键词。
具体实施时,分词处理后得到的token列表即为上述分词列表,将与上述攻击执行调用参数信息匹配成功的分词作为目标分词。其中,分词处理时采用的分词算法可以基于现有技术实现,本实施例不再赘述。
在本申请的另一实施例中,公开了另一种防护补丁生成方法。该方法可以用于对攻击进行拦截。该方法在上述图2对应实施例的基础上,生成的防护补丁中包括多个第一参考字段和至少一第二参考字段。
如图8所示,该实施例中,公开的方法还包括步骤:
S260,根据上述攻击请求信息,提取得到待匹配字段组合。上述待匹配字段组合中包括多个待匹配字段。
S270,将上述待匹配字段组合和上述第一参考字段进行一级匹配,判断一级匹配是否成功。也即,只要各个第一参考字段对应的字段值和待匹配字段组合中相对应的待匹配字段对应的字段值相同,就属于匹配成功。否则,就是匹配失败。该一级匹配即为精确匹配。
若一级匹配成功,则执行步骤S280:拦截对应的攻击请求。
若一级匹配失败,则执行步骤S290:基于待匹配字段组合中的一目标待匹配字段和防护补丁中的多个第二参考字段进行二级匹配,判断二级匹配是否成功。
若二级匹配成功,则执行上述步骤S280:拦截对应的攻击请求。
若二级匹配失败,则执行步骤S300:对该攻击请求放行。
也即,只要上述目标待匹配字段对应的字段值属于上述多个第二参考字段进行一预设运算后的其中一个解,就是匹配成功。否则,就是匹配失败。该二级匹配即为模糊匹配。
示例性地,步骤S290中,基于约束求解器判断上述目标待匹配字段是否为上述多个第二参考字段进行求交集运算后的一个解;若是则二级匹配成功;若否则二级匹配失败。
示例性地,本实施例进行举例说明:上述待匹配字段组合中的各个待匹配字段可以分别为URL、Parameter、Header,第二参考字段中也具有这三个字段:URL、Parameter、Header,那么就分别比较各个同一字段的字段值是否相同,也即进行传统规则的精确匹配,如果相同,则匹配成功,直接拦截该攻击请求。
否则将基于得到的待匹配字段Parameter的字段值,和防护补丁中的字段关键词以及参数约束条件的字段值进行模糊匹配。比如将Parameter设为P,关键词设为K,参数约束条件设为C,通过约束求解器判断P∈K∩是否成立。若成立,则说明P是K∩C的一个解,说明该次模糊匹配成功。否则说明P不是K∩C的一个解,说明该次模糊匹配失败。
因此,本公开基于两级匹配进行拦截,拦截成功率更高,漏报率更低,利于提高应用系统的安全性能。
本公开通过进行代码的脆弱性分析,获取代码脆弱面信息;通过分词处理和脆弱面信息提取,得到攻击参数关键词和参数约束,结合关键词和约束进行补丁规则生成;针对用户发起的请求,先后进行基于规则的精确匹配和模糊匹配;实现RASP引擎中补丁规则泛化能力的提升,解决了RASP引擎中补丁规则拦截漏报率高的问题。
需要说明的是,本申请中公开的上述所有实施例可以进行自由组合,组合后得到的技术方案也在本申请的保护范围之内。
如图9所示,本发明一实施例还公开了一种防护补丁生成系统9,该系统包括:
攻击请求分析模块91,获取攻击请求信息,以及与上述攻击请求信息对应的目标应用程序的源代码。
关联代码信息获取模块92,根据上述源代码,获取与上述攻击请求信息对应的关联代码信息。
脆弱性分析模块93,根据上述攻击请求信息和上述关联代码信息,获取上述源代码的缺陷检测结果。
参数约束条件生成模块94,根据上述缺陷检测结果,生成参数约束条件。
防护补丁生成模块95,根据上述攻击请求信息和上述参数约束条件,生成防护补丁。
可以理解的是,本发明的防护补丁生成系统还包括其他支持防护补丁生成系统运行的现有功能模块。图9显示的防护补丁生成系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
本实施例中的防护补丁生成系统用于实现上述的防护补丁生成的方法,因此对于防护补丁生成系统的具体实施步骤可以参照上述对防护补丁生成的方法的描述,此处不再赘述。
本发明另一实施例还公开了一种防护补丁生成系统,如图10所示,该系统在上述图9对应实施例的基础上,脆弱性分析模块93包括:
第一提取单元931,根据上述攻击请求信息,提取得到第一调用链信息。
第二提取单元932,根据上述关联代码信息,提取得到第二调用链信息。
调用链匹配单元933,基于上述第一调用链信息,自上述第二调用链信息中匹配得到目标调用链信息。
代码流图生成单元934,根据上述关联代码信息,生成代码流图。
初始可行路径获取单元935,根据上述关联代码信息和目标调用链信息,在上述代码流图中进行路径搜索,得到多条初始可行路径信息。
目标可行路径获取单元936,根据上述攻击请求信息,在上述多条初始可行路径信息中筛选得到目标可行路径,并获取与上述目标可行路径对应的缺陷代码片段。
本发明另一实施例还公开了一种防护补丁生成系统,如图11所示,该系统在上述图9对应实施例的基础上,防护补丁生成模块95包括:
攻击接口获取单元951,获取攻击请求信息中的攻击接口信息。
分词列表获取单元952,对攻击接口信息中的原始请求参数信息进行分词处理,得到分词列表。
目标分词获取单元953,根据攻击接口信息中的攻击执行调用参数信息,对上述分词列表进行筛选,得到目标分词。
参数关键词获取单元954,提取上述目标分词中的关键词,作为攻击参数关键词。
补丁获取单元955,根据上述攻击参数关键词和目标参数约束条件,生成防护补丁。
如图12所示,本发明另一实施例还公开了一种防护补丁生成系统12,该系统在上述图9对应实施例的基础上,还包括:
待匹配字段组合获取模块96,根据上述攻击请求信息,提取得到待匹配字段组合。上述待匹配字段组合中包括多个待匹配字段。
一级匹配模块97,将上述待匹配字段组合和上述第一参考字段进行一级匹配,判断一级匹配是否成功。也即,只要各个第一参考字段对应的字段值和待匹配字段组合中相对应的待匹配字段对应的字段值相同,就属于匹配成功。否则,就是匹配失败。该一级匹配即为精确匹配。
若一级匹配成功,则执行拦截模块98:拦截对应的攻击请求。
若一级匹配失败,则执行二级匹配模块99:基于待匹配字段组合中的一目标待匹配字段和防护补丁中的多个第二参考字段进行二级匹配,判断二级匹配是否成功。
若二级匹配成功,则执行上述拦截模块98:拦截对应的攻击请求。
若二级匹配失败,则执行放行模块100:对该攻击请求放行。
也即,只要上述目标待匹配字段对应的字段值属于上述多个第二参考字段进行一预设运算后的其中一个解,就是匹配成功。否则,就是匹配失败。该二级匹配即为模糊匹配。
本发明一实施例还公开了一种防护补丁生成设备,包括处理器和存储器,其中存储器存储有所述处理器的可执行程序;处理器配置为经由执行可执行程序来执行上述防护补丁生成方法中的步骤。图13是本发明公开的防护补丁生成设备的结构示意图。下面参照图13来描述根据本发明的这种实施方式的电子设备600。图13显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图13所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述防护补丁生成方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图2中所示的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明还公开了一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述防护补丁生成方法中的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述防护补丁生成方法中描述的根据本发明各种示例性实施方式的步骤。
如上所示,该实施例的计算机可读存储介质的程序在执行时,基于攻击请求信息和关联代码信息,进行代码特征识别和分析,得到代码缺陷检测结果;然后获取参数约束条件,并结合对攻击请求信息的分析处理,生成防护补丁,结合基于补丁的精确匹配和模糊匹配实现用户攻击请求拦截,提高了RASP引擎中防护补丁的泛化能力,从而降低了RASP引擎补丁规则拦截的漏报率。
本发明一实施例公开了一种计算机可读存储介质。该存储介质是实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例提供的防护补丁生成方法、系统、设备及存储介质一方面基于攻击请求信息和关联代码信息,识别融合代码特征,得到代码缺陷检测结果;然后获取参数约束条件,并结合对攻击请求信息的分析处理,生成防护补丁,能够利于提高攻击识别的准确度;另一方面在利用多个待匹配字段进行精确匹配之后,再利用一个目标待匹配字段和补丁规则中的多个第二参考字段进行模糊匹配,提高了RASP引擎中防护补丁的泛化能力;从而降低了RASP引擎补丁规则拦截的漏报率,利于保证web应用系统安全。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (16)

1.一种防护补丁生成方法,其特征在于,包括以下步骤:
获取攻击请求信息,以及与所述攻击请求信息对应的目标应用程序的源代码;
根据所述源代码,获取与所述攻击请求信息对应的关联代码信息;
根据所述攻击请求信息和所述关联代码信息,获取所述源代码的缺陷检测结果;
根据所述缺陷检测结果,生成参数约束条件;
根据所述攻击请求信息和所述参数约束条件,生成防护补丁。
2.如权利要求1所述的防护补丁生成方法,其特征在于,所述根据所述攻击请求信息和所述参数约束条件,生成防护补丁,包括:
根据所述攻击请求信息,提取攻击参数关键词;
根据所述攻击参数关键词和所述参数约束条件,生成防护补丁。
3.如权利要求1所述的防护补丁生成方法,其特征在于,所述防护补丁中包括多个第一参考字段;所述方法还包括步骤:
根据所述攻击请求信息,提取得到待匹配字段组合;所述待匹配字段组合中包括多个待匹配字段;
将所述待匹配字段组合和所述第一参考字段进行一级匹配,判断是否匹配成功;
若一级匹配成功,则拦截对应的攻击请求。
4.如权利要求3所述的防护补丁生成方法,其特征在于,所述防护补丁中还包括至少一第二参考字段;所述方法还包括步骤:
若一级匹配失败,则基于所述待匹配字段组合中的一目标待匹配字段和所述防护补丁中的多个第二参考字段进行二级匹配;
若二级匹配成功,则拦截对应的攻击请求。
5.如权利要求4所述的防护补丁生成方法,其特征在于,所述基于所述待匹配字段组合中的一目标待匹配字段和所述防护补丁中的多个第二参考字段进行二级匹配,包括:
基于约束求解器判断所述目标待匹配字段是否为所述多个第二参考字段进行交集运算后的一个解;若是则二级匹配成功;若否则二级匹配失败。
6.如权利要求2所述的防护补丁生成方法,其特征在于,所述根据所述源代码,获取与所述攻击请求信息对应的关联代码信息,包括:
根据所述攻击请求信息,提取得到攻击接口信息;
所述根据所述攻击请求信息,提取攻击参数关键词,包括:
根据所述攻击接口信息,提取得到攻击参数关键词。
7.如权利要求6所述的防护补丁生成方法,其特征在于,所述根据所述攻击请求信息,提取得到攻击接口信息,包括:
获取预设安全防护引擎的攻击防护日志数据;
自所述攻击防护日志数据,提取出与所述攻击请求信息关联的攻击接口信息。
8.如权利要求7所述的防护补丁生成方法,其特征在于,所述攻击接口信息包括原始请求参数信息和攻击执行调用参数信息;所述根据所述攻击接口信息,提取得到攻击参数关键词,包括:
对所述原始请求参数信息进行分词处理,得到分词列表;
根据所述攻击执行调用参数信息,对所述分词列表进行筛选,得到目标分词;
提取所述目标分词中的关键词,作为攻击参数关键词。
9.如权利要求1所述的防护补丁生成方法,其特征在于,所述根据所述攻击请求信息和所述关联代码信息,获取所述源代码的缺陷检测结果,包括:
根据所述攻击请求信息和所述关联代码信息,获取目标调用链信息;
根据所述关联代码信息,生成代码流图;
根据所述关联代码信息和目标调用链信息,在所述代码流图中进行路径搜索,得到多条初始可行路径信息;
根据所述攻击请求信息,在所述多条初始可行路径信息中筛选得到目标可行路径,并获取与所述目标可行路径对应的缺陷代码片段。
10.如权利要求9所述的防护补丁生成方法,其特征在于,所述根据所述攻击请求信息和所述关联代码信息,获取目标调用链信息,包括:
根据所述攻击请求信息,提取得到第一调用链信息;
根据所述关联代码信息,提取得到第二调用链信息;
基于所述第一调用链信息,自所述第二调用链信息中匹配得到目标调用链信息。
11.如权利要求9所述的防护补丁生成方法,其特征在于,每一所述初始可行路径信息对应一初始参数约束条件;所述方法包括:
获取所述目标可行路径对应的初始参数约束条件,作为目标参数约束条件;
所述根据所述攻击请求信息和所述参数约束条件,生成防护补丁,包括:
根据所述攻击请求信息和所述目标参数约束条件,生成防护补丁。
12.如权利要求1所述的防护补丁生成方法,其特征在于,所述根据所述源代码,获取与所述攻击请求信息对应的关联代码信息,包括:
根据所述攻击请求信息,提取得到攻击接口信息;
根据所述源代码,获取与所述攻击接口信息对应的关联代码信息。
13.如权利要求2所述的防护补丁生成方法,其特征在于,所述根据所述攻击参数关键词和所述参数约束条件,生成防护补丁,包括:
将所述攻击参数关键词和所述参数约束条件填充至预设补丁模板,生成防护补丁。
14.一种防护补丁生成系统,用于实现如权利要求1所述的防护补丁生成方法,其特征在于,所述系统包括:
攻击请求分析模块,获取攻击请求信息,以及与所述攻击请求信息对应的目标应用程序的源代码;
关联代码信息获取模块,根据所述源代码,获取与所述攻击请求信息对应的关联代码信息;
脆弱性分析模块,根据所述攻击请求信息和所述关联代码信息,获取所述源代码的缺陷检测结果;
参数约束条件生成模块,根据所述缺陷检测结果,生成参数约束条件;
防护补丁生成模块,根据所述攻击请求信息和所述参数约束条件,生成防护补丁。
15.一种防护补丁生成设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行程序;
其中,所述处理器配置为经由执行所述可执行程序来执行权利要求1至13中任意一项所述防护补丁生成方法的步骤。
16.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现权利要求1至13中任意一项所述防护补丁生成方法的步骤。
CN202211111351.0A 2022-09-13 2022-09-13 防护补丁生成方法、系统、设备及存储介质 Active CN115455425B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211111351.0A CN115455425B (zh) 2022-09-13 2022-09-13 防护补丁生成方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211111351.0A CN115455425B (zh) 2022-09-13 2022-09-13 防护补丁生成方法、系统、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115455425A true CN115455425A (zh) 2022-12-09
CN115455425B CN115455425B (zh) 2024-08-27

Family

ID=84302825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211111351.0A Active CN115455425B (zh) 2022-09-13 2022-09-13 防护补丁生成方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115455425B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168847A (zh) * 2022-07-27 2022-10-11 中国电信股份有限公司 应用补丁生成方法、装置、计算机设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140096257A1 (en) * 2012-09-28 2014-04-03 Coverity, Inc. Security remediation
CN107862327A (zh) * 2017-10-26 2018-03-30 华中科技大学 一种基于多特征的安全缺陷识别系统和方法
US20180336356A1 (en) * 2015-03-12 2018-11-22 Whitehat Security, Inc. Auto-remediation workflow for computer security testing utilizing pre-existing security controls
CN112131120A (zh) * 2020-09-27 2020-12-25 北京软安科技有限公司 一种源代码缺陷检测方法及装置
US20210011985A1 (en) * 2019-07-08 2021-01-14 Cloud Linux Software Inc. Systems and methods for intrusion detection and prevention using software patching and honeypots
CN113127339A (zh) * 2021-03-24 2021-07-16 西北大学 一种Github开源平台数据的获取方法及源代码缺陷修复系统
CN114091039A (zh) * 2021-12-07 2022-02-25 何成刚 基于rasp的攻击防护系统及应用设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140096257A1 (en) * 2012-09-28 2014-04-03 Coverity, Inc. Security remediation
US20180336356A1 (en) * 2015-03-12 2018-11-22 Whitehat Security, Inc. Auto-remediation workflow for computer security testing utilizing pre-existing security controls
CN107862327A (zh) * 2017-10-26 2018-03-30 华中科技大学 一种基于多特征的安全缺陷识别系统和方法
US20210011985A1 (en) * 2019-07-08 2021-01-14 Cloud Linux Software Inc. Systems and methods for intrusion detection and prevention using software patching and honeypots
CN112131120A (zh) * 2020-09-27 2020-12-25 北京软安科技有限公司 一种源代码缺陷检测方法及装置
CN113127339A (zh) * 2021-03-24 2021-07-16 西北大学 一种Github开源平台数据的获取方法及源代码缺陷修复系统
CN114091039A (zh) * 2021-12-07 2022-02-25 何成刚 基于rasp的攻击防护系统及应用设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YU ZHOU等: "Automatic Detection and Repair Recommendation of Directive Defects in Java API Documentation", pages 1 - 20, Retrieved from the Internet <URL:《网页在线公开:https://ieeexplore.ieee.org/abstract/document/8478004》> *
刘思琦等: "基于补丁特性的漏洞扫描研究", 《网络与信息安全》, vol. 40, no. 7, 28 July 2021 (2021-07-28), pages 52 - 58 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168847A (zh) * 2022-07-27 2022-10-11 中国电信股份有限公司 应用补丁生成方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
CN115455425B (zh) 2024-08-27

Similar Documents

Publication Publication Date Title
US11250137B2 (en) Vulnerability assessment based on machine inference
US11188650B2 (en) Detection of malware using feature hashing
US11693962B2 (en) Malware clustering based on function call graph similarity
US9892261B2 (en) Computer imposed countermeasures driven by malware lineage
US8626786B2 (en) Dynamic language checking
EP3899770B1 (en) System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats
US10511617B2 (en) Method and system for detecting malicious code
US11625484B2 (en) Binary search of byte sequences using inverted indices
US11586735B2 (en) Malware clustering based on analysis of execution-behavior reports
CN113609261B (zh) 基于网络信息安全的知识图谱的漏洞信息挖掘方法和装置
US11620179B1 (en) Method, apparatus, device, storage medium and program product for log information processing
CN113961768B (zh) 敏感词检测方法、装置、计算机设备和存储介质
US20240143786A1 (en) Source code clustering for automatically identifying false positives generated through static application security testing
US20190370476A1 (en) Determination apparatus, determination method, and determination program
CN115455425B (zh) 防护补丁生成方法、系统、设备及存储介质
CN115809466B (zh) 基于stride模型的安全需求生成方法、装置、电子设备及介质
US11941115B2 (en) Automatic vulnerability detection based on clustering of applications with similar structures and data flows
US11356853B1 (en) Detection of malicious mobile apps
CN114547050A (zh) 批处理内容判重方法、系统、装置、终端设备及存储介质
CN114490400A (zh) 一种处理测试用例的方法和装置
CN111782967A (zh) 信息处理方法、装置、电子设备和计算机可读存储介质
US12032695B2 (en) Reducing malware signature redundancy
CN115391781A (zh) 恶意攻击识别方法、系统、设备及存储介质
CN116680735A (zh) 数据脱敏方法、装置、计算设备及计算机存储介质
CN117171759A (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