首页> 中国专利> 在部署前和部署后之间共享洞察以增强云工作负载安全性

在部署前和部署后之间共享洞察以增强云工作负载安全性

摘要

实施例可以提供如下技术,该技术可以通过云工作负载安全系统提供更准确并且可采取动作的警报,以便提高总体云工作负载安全性。例如,在实施例中,一种方法可以在计算机系统中实现,该计算机系统包括处理器、可由处理器访问的存储器以及存储在存储器中并且可由处理器执行的计算机程序指令,并且该方法可以包括:在软件系统的开发期间生成与软件系统有关的性能和安全信息,在软件系统的部署操作期间生成与软件系统有关的性能和安全信息,将在软件系统的开发期间生成的性能和安全信息与在软件系统的部署操作期间生成的性能和安全信息进行匹配以确定要提升的性能和安全警报,以及报告提升后的性能和安全警报。

著录项

  • 公开/公告号CN116457763A

    专利类型发明专利

  • 公开/公告日2023-07-18

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN202180073128.9

  • 申请日2021-10-26

  • 分类号G06F11/34(2006.01);

  • 代理机构中国贸促会专利商标事务所有限公司 11038;

  • 代理人郑宗玉

  • 地址 美国纽约

  • 入库时间 2024-01-17 01:16:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-04

    实质审查的生效 IPC(主分类):G06F11/34 专利申请号:2021800731289 申请日:20211026

    实质审查的生效

  • 2023-07-18

    公开

    国际专利申请公布

说明书

背景技术

本发明涉及可以通过云工作负载安全系统提供更准确并且可采取动作的警报以便提高总体云工作负载安全性的技术。

云工作负载安全性是当今增长最快的安全问题之一。运行时工作负载安全系统经常产生具有高假阳性率的警报。高假阳性率可能导致系统忽略许多阳性警报,并且因此错过一些真阳性。结果,许多攻击可能逃避安全防御。而且,部署前安全测试可能遭受相同的问题,并且由于部署前安全测试中的大量假阳性警报,真阳性(有效警报)可能有时被忽略和/或不被验证。

因此,需要可以通过云工作负载安全系统提供更准确并且可采取动作的警报以便提高总体云工作负载安全性的技术。

发明内容

实施例可以提供如下技术,该技术可以通过云工作负载安全系统提供更准确并且可采取动作的警报,以便提高总体云工作负载安全性。

实施例可以组合云软件系统的开发测试(部署前)和运行时(部署后)监测,从而在部署前软件环境和部署后软件环境之间共享洞察,以提供更准确并且可采取动作的警报。例如,诸如应用日志分析之类的处理可以用于共享洞察。同样,调用图可以用于本地-日志-序列共享。此外,错误处理可以用作安全弱点的指示。

例如,在实施例中,一种方法可以在计算机系统中实现,该计算机系统包括处理器、可由处理器访问的存储器以及存储在存储器中并且可由处理器执行的计算机程序指令,并且该方法可以包括在软件系统的开发期间生成与软件系统有关的性能和安全信息,在软件系统的部署操作期间生成与软件系统有关的性能和安全信息,将在软件系统的开发期间生成的性能和安全信息与在软件系统的部署操作期间生成的性能和安全信息进行匹配,以确定要提升的性能和安全警报,以及报告提升后的性能和安全警报。

在实施例中,在软件系统的开发期间生成与软件系统有关的性能和安全信息可以包括以下各项中的至少一个:在软件系统的开发期间执行软件系统的代码的静态和动态测试,以收集在测试期间生成的警报的历史;在软件系统的开发期间执行软件系统的代码的子系统的动态测试,以生成用于所产生的警报的应用日志;以及在软件系统的开发期间执行软件系统的代码单元的动态测试,以生成用于所产生的警报的错误处理日志。该方法还可以包括使用所生成的表示软件系统中的例程之间的调用关系的调用图来将每个所生成的警报与即时(immediate)日志序列相关联。在软件系统的部署操作期间生成与软件系统有关的性能和安全信息可以包括监测软件的部署操作并且收集通过监测而产生的警报。在软件系统的部署操作期间生成与软件系统有关的性能和安全信息可以包括收集关于配置改变的信息和/或关于配置改变的警报,并且该匹配包括将所收集的关于配置改变的信息和/或关于配置改变的警报与在软件系统的部署操作期间生成的性能和安全信息进行匹配,以确定要提升(escalate)的性能和安全警报。将在软件系统的开发期间生成的性能和安全信息与在软件系统的部署操作期间生成的性能和安全信息进行匹配可以包括使用在测试期间生成的警报的历史来确定通过监测而产生的警报的根本原因,并且当通过监测而产生的警报的根本原因与在测试期间生成的警报的历史中的最近警报相匹配时,提升通过监测而产生的警报或者提升通过监测而产生的警报和在测试期间生成的警报的历史中的警报两者。将通过监测而产生的警报的根本原因与警报历史中的最近警报进行匹配可以基于类似的日志序列或日志组,并且可以使用机器学习技术来执行。将在软件系统的开发期间生成的性能和安全信息与在软件系统的部署操作期间生成的性能和安全信息进行匹配还可以包括基于类似的日志序列或日志组并且使用机器学习技术来执行而将通过监测而产生的警报的根本原因与警报历史中的最近警报进行匹配,通过使用最近时间窗口检查应用日志来将在测试期间生成的警报的单元测试错误处理日志与通过监测而产生的警报进行匹配,搜索与问题的已知日志签名的匹配,并且在找到至少一个匹配时,提升通过监测而产生的警报的严重性,并且将与通过监测而产生的警报有关的信息与导致在测试期间生成的警报的源代码相关联。

在实施例中,系统可以包括处理器、可由处理器访问的存储器以及存储在存储器中并且可由处理器执行的计算机程序指令,以执行在软件系统的开发期间生成与软件系统有关的性能和安全信息,在软件系统的部署操作期间生成与软件系统有关的性能和安全信息,将在软件系统的开发期间生成的性能和安全信息与在软件系统的部署操作期间生成的性能和安全信息进行匹配以确定要提升的性能和安全警报,以及报告提升后的性能和安全警报。

在实施例中,计算机程序产品可以包括非暂态计算机可读存储装置,该非暂态计算机可读存储装置具有体现在其中的程序指令,该程序指令可由计算机执行,以使计算机执行方法,该方法包括在软件系统的开发期间生成与软件系统有关的性能和安全信息,在软件系统的部署操作期间生成与软件系统有关的性能和安全信息,将在软件系统的开发期间生成的性能和安全信息与在软件系统的部署操作期间生成的性能和安全信息进行匹配以确定要提升的性能和安全警报,以及报告提升后的性能和安全警报。

附图说明

通过参考附图,可以最好地理解本发明的关于其结构和操作的细节,在附图中,相同的附图标记和标号(designation)指代相同的元件。

图1示出了根据本技术的实施例的示例性环境,其中可以在生产部署中开发、测试和使用云工作负载应用。

图2是根据本技术的实施例的操作处理的示例性流程图。

图3是计算机系统的示例性框图,其中可以实现本文中描述的实施例中涉及的处理。

具体实施方式

实施例可以提供如下技术,该技术可以通过云工作负载安全系统提供更准确并且可采取动作的警报,以便提高总体云工作负载安全性。

实施例可以组合云软件系统的开发测试(部署前)和运行时(部署后)监测,从而在部署前软件环境和部署后软件环境之间共享洞察,以提供更准确并且可采取动作的警报。例如,诸如应用日志分析之类的处理可以用于共享洞察。同样,调用图可以用于本地-日志-序列共享。此外,错误处理可以用作安全弱点的指示。

持续集成(CI)是一种编码技术,其中可以实现对代码的小改变,并且频繁地将其检查到版本控制系统的版本控制储存库中。这允许CI提供用于建立、封装和测试应用的一致并且自动的方式。这允许更频繁地提交代码改变,这导致更好的协作和软件质量。持续交付(CD)自动将应用交付到所选择的基础设施环境。大多数团队在除了生产之外的多个环境下工作,诸如开发和测试环境,并且CD确保存在自动化的方式来将代码改变推送给他们。持续集成和持续交付(CI/CD)将这两种技术组合成集成编码和测试工作流。

图1中示出了示例性环境100,其中可以在生产部署中开发、测试和使用云工作负载应用。在该示例中,环境100可以包括CI/CD开发环境102和云生产部署104。CI/CD开发环境102可以包括处理块,诸如代码合并块106、静态测试块108、构建块110、动态测试块112和部署块114。代码合并块106可以执行代码合并(也被称为集成),这是协调对在版本控制下的软件源代码文件所作的多个改变的操作。例如,如果文件在两个独立分支上被修改,则不同的分支可以被合并以形成包含所有改变集合的单个文件集合。在实施例中,可以由CI/CD开发环境102中的版本控制系统来执行自动合并,以协调同时发生的改变(在逻辑意义上)。如果自动合并无效或不起作用,则如果需要,可以执行手动合并。

静态测试块108可以在没有实际执行程序的情况下执行对计算机软件的测试和分析,例如从代码合并块106输出的源代码和/或目标代码的合并版本。在实施例中,这样的分析可以由自动化工具来执行。构建块110可以执行完整应用或软件系统的构建,包括将源代码编译为目标代码、链接目标代码和库目标代码、以及其它软件资源等,以形成可以执行的代码集合。动态测试块112可以执行对计算机软件的分析,该分析是通过在真实或虚拟处理器上执行程序以监测软件在操作时的实际行为来执行的。部署块114可以执行计算机软件的部署,包括例如生成安装包,允许软件容易地安装,以及安装该软件、操作所需的相关联软件等。

云生产部署104可以提供用于计算机软件应用和系统的实时或生产操作的环境,并且可以提供用户(人、客户端计算机、其他服务器等)可以直接与之交互的环境。云生产部署104可以包括云工作负载监测块116和CI/CD洞察118。云工作负载监测块116可以监测云生产部署104中的部署软件的操作和工作负载参数,并且可以基于所监测的操作来生成警报。CI/CD洞察118可以包括从CI/CD开发环境102获得的关于部署软件的操作的信息,诸如警报历史,并且可以被云工作负载监测块116用来提供关于所部署的软件云生产部署104的操作的增强信息。

在图2中示出了根据本实施例的操作的示例性处理200。最好结合图1来查看图2。处理200开始于202,在202中,可以执行CI/CD测试,并且可以将来自这样的测试的警报历史保存在例如CI/CD洞察118中。这样的CI/CD测试可以包括例如静态测试(诸如由静态测试块108执行的配置测试和代码测试)以及由动态文本块112执行的动态测试。在静态测试期间,可以创建调用图来表示计算机软件中的例程之间的调用关系。每个生成的警报可以与如调用图中所记录的它的可能的即时日志序列(有限的步骤)相关联。在204处,可以执行CI/CD子系统动态测试,并且可以收集所产生的警报的应用日志。所收集的应用日志可以被保存在例如CI/CD洞察118中。在206处,可以执行CI/CD单元测试,并且可以收集错误处理日志,该错误处理日志可以包括指示非预期控制流的序列。此外,可以收集关于配置改变的信息和/或关于配置改变的警报。此外,可以对错误处理单元测试的日志签名进行特征化。所收集的错误处理日志和特征可以被保存在例如CI/CD洞察118中。

一旦软件已经被部署到云生产部署104,即在部署后,在208处,云工作负载监测块116可以监测云生产部署104的操作,并且可以收集通过这样的监测产生的所有警报。当发生这样的工作负载警报时,可以使用最近的时间窗口来检查应用日志,以检测最近的日志异常。在210处,CI/CD警报历史118可以用于每个工作负载警报的根本原因分析。在212处,如果工作负载警报根本原因与CI/CD警报历史118中的最近警报相匹配,则可以提升该工作负载警报的警报分数、或者提升该工作负载警报和CI/CD警报历史118中的警报两者的警报分数,并且可以报告根本原因分析,例如,在GitHub上将其发布给CI。例如,处理200可以基于代码提交而连接到Git提交。即,与警报有关的信息可以与被确定为在CI/CD开发环境102的版本控制系统中导致警报的源代码相关联。

可以基于类似的日志序列(或日志组)来确定工作负载警报与在静态分析期间找到的警报(CI/CD警报历史118)之间的匹配。例如,可以使用匹配技术来确定匹配,该匹配技术可以包括机器学习技术,并且还可以包括诸如一对一(One2One)匹配、序列比对、DNA比较等技术。例如,可以经由DNN(深度神经网络)分类器来进行匹配,该DNN分类器训练并且尝试将在开发阶段期间的静态测试结果、配置改变、Git日志和配置警报日志以及来自测试和初始部署阶段的顺序应用日志数据相关联。这些然后可以在时间上与在运行时间期间的警报相匹配。在214处,单元测试错误处理日志可以与工作负载警报相匹配。实施例可以通过使用最近时间窗口检查在204处收集的应用日志来执行这样的匹配。然后,在206处,处理200可以搜索与有问题的场景的已知日志签名的匹配。在找到一个或多个这样的匹配时,工作负载警报的严重性可以被提升或提高,并且可以例如通过连接到代码来报告。即,与警报有关的信息可以与被确定为在CI/CD开发环境102的版本控制系统中导致警报的源代码相关联。此外,可以将在部署后阶段处找到的警报与在CI/CD测试期间收集的关于配置改变的信息和/或关于配置改变的警报进行匹配。

在图3示出了计算机系统300的示例性框图,其中可以实现本文中描述的实施例中所涉及的处理。计算机系统300可以使用一个或多个经编程的通用计算机系统来实现,诸如嵌入式处理器、片上系统、个人计算机、工作站、服务器系统以及小型计算机或大型计算机,或者可以被实现在分布式的联网计算环境中。计算机系统300可以包括一个或多个处理器CPU 302A-302N、输入/输出电路304、网络适配器306和存储器308。CPU 302A-302N执行程序指令,以便执行本通信系统和方法的功能。通常,CPU 302A-302N是一个或多个微处理器。图3示出了这样的实施例,其中计算机系统300被实现为单个多处理器计算机系统,其中多个处理器CPU 302A-302N共享系统资源,诸如存储器308、输入/输出电路304和网络适配器306。然而,本通信系统和方法还包括这样的实施例,其中计算机系统300被实现为多个联网计算机系统,这些联网计算机系统可以是单处理器计算机系统、多处理器计算机系统或其混合。

输入/输出电路304提供向计算机系统300输入数据或从计算机系统300输出数据的能力。例如,输入/输出电路可以包括诸如键盘、鼠标、触摸板、轨迹球、扫描仪、模数转换器等输入设备,诸如视频适配器、监视器、打印机等输出设备,以及诸如调制解调器等输入/输出设备。网络适配器306将计算机系统300与网络310进行接口连接。网络310可以是任何公共或专有LAN或WAN,包括但不限于因特网。

存储器308存储由CPU 302A-302N执行的程序指令以及由CPU 302A-302N使用和处理的数据,以执行计算机系统300的功能。存储器308可以包括例如电子存储器设备,诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、闪存等,以及机电存储器,诸如磁盘驱动器、磁带驱动器、光盘驱动器等,其可以使用集成驱动电子(IDE)接口、或者其变型或增强,诸如增强IDE(EIDE)或超直接存储器存取(UDMA),或者基于小型计算机系统接口(SCSI)的接口、或者其变型或增强,诸如快速SCSI、宽SCSI、快速和宽SCSI等,串行或高级技术附件(SATA)、或者其变型或增强,或者光纤通道仲裁环路(FC-AL)接口。

存储器308的内容可以根据计算机系统300被编程为执行的功能而变化。在图3中所示的示例中,示出了代表用于上述处理的实施例的例程和数据的示例性存储器内容。然而,本领域技术人员将认识到,这些例程以及与这些例程有关的存储器内容可以不被包括在一个系统或设备上,而是可以基于已知的工程考虑而分布在多个系统或设备之间。本系统和方法可以包括任何和所有这样的布置。

在图3中所示的示例中,存储器308可以包括CI/CD例程312和云生产部署324,该CI/CD例程312可以包括代码合并例程314、静态测试例程316、构建例程318、动态测试例程320和部署例程322,该云生产部署324可以包括云工作负载监测例程326、CI/CD洞察数据328和操作系统330。CI/CD例程312可以包括软件例程,以实现图1中所示的CI/CD开发环境102,如上所述。代码合并例程314可以包括软件例程,以执行代码合并(也被称为集成),这是协调对在版本控制下的软件源代码文件所作的多个改变的操作,如上所述。静态测试例程316可以包括软件例程,以在没有实际执行程序的情况下执行对计算机软件的测试和分析,如上所述。构建例程318可以包括软件例程,以执行完整应用或软件系统的构建,包括将源代码编译为目标代码、链接目标代码和库目标代码、以及其它软件资源等,以形成可以执行的代码集合,如上所述。动态测试例程320可以包括软件例程,以执行对计算机软件的分析,该分析是通过在真实或虚拟处理器上执行程序来监测软件在操作时的实际行为来执行的,如上所述。部署例程322可以包括软件例程,以执行计算机软件的部署,包括例如生成安装包,允许软件容易地安装,以及安装该软件、操作所需的相关联软件等,如上所述。云生产部署324可以包括软件例程,以提供用于计算机软件应用和系统的实时或生产操作的环境,并且可以提供用户(人、客户端计算机、其他服务器等)可以直接与之交互的环境,如上所述。云工作负载监测例程326可以包括软件例程,以执行监测云生产部署中的部署软件的操作和工作负载参数,并且可以基于所监测的操作来生成警报,如上所述。CI/CD洞察数据328可以包括从CI/CD开发环境102获得的关于部署软件的操作的信息,诸如警报历史,并且可以用于提供关于所部署的软件云生产部署的操作的增强信息,如上所述。操作系统330可以提供整体系统功能。

如图3中所示,本通信系统和方法可以包括在提供多处理器、多任务、多进程和/或多线程计算的一个或多个系统上的实现方式,以及在仅提供单处理器、单线程计算的系统上的实现方式。多处理器计算涉及使用多于一个处理器来执行计算。多任务计算涉及使用多于一个操作系统任务来执行计算。任务是操作系统概念,其指的是正被执行的程序和由操作系统所使用的簿记(bookkeeping)信息的组合。每当程序被执行时,操作系统都为其创建新任务。该任务类似于程序的信封,因为它利用任务号来标识该程序并且向其附连其它簿记信息。许多操作系统能够同时运行许多任务,并且被称为多任务操作系统。多任务是操作系统同时执行多于一个可执行程序的能力。每个可执行程序在其自己的地址空间中运行,这意味着可执行程序无法共享其存储器中的任何一个。这具有优点,因为任何程序不可能损坏在系统上运行的任何其它程序的执行。然而,除了通过操作系统(或通过读取存储在文件系统上的文件)之外,程序无法交换任何信息。多进程计算类似于多任务计算,因为术语任务和进程经常可互换地使用,尽管一些操作系统在两者之间进行区分。

本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。计算机可读存储介质可以是可以保留和存储供指令执行设备使用的指令的有形设备。

计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、其上记录有指令的机械编码装置(诸如打孔卡或凹槽中的凸起结构),以及前述各项的任何合适的组合。如本文中所使用的计算机可读存储介质不应被解释为暂态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤光缆传送的光脉冲)、或通过导线传输的电信号。

本文中描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设定数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,诸如Smalltalk、C++等)和过程编程语言(诸如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)在内的电子电路可以通过利用计算机可读程序指令的状态信息使电子电路个性化来执行计算机可读程序指令。

本文中参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。将理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。

这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图中的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个框中指定的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的一个或多个框中指定的功能/动作。

附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替选实现方式中,框中所注明的功能可以不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以由执行指定功能或动作或者执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。

尽管已经描述了本发明的具体实施例,但是本领域技术人员将理解,存在与所描述的实施例等同的其它实施例。因此,应当理解,本发明不受具体示出的实施例的限制,而仅受所附权利要求的范围的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号