一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

监视和审核安全软件构建的制作方法

2022-06-08 19:33:36 来源:中国专利 TAG:


1.本发明总体上涉及计算机软件的构建(build)过程,并且更具体地涉及用于监视和审核安全软件构建的计算机实现的方法。本发明还涉及用于监视和审核安全软件构建的相关构建系统以及计算机程序产品。


背景技术:

2.为了提供机密计算和可信平台,it(信息技术)供应商已经做出了重大努力以便保护软件程序。供应商之一已经启动了称为超级保护虚拟服务器(hpvs)的产品,它是z架构型计算机系统上的机密计算平台。该产品的主要优点之一是它可以提供云提供者既不能检查也不能改进代码或数据的技术安全性。hpvs提供超出可信执行环境的安全性以运行应用并且还用于安全软件构建过程。安全软件构建过程的目的是确保:(i)在可信执行环境内构建代码,使得代码正被构建的任何管理员不可以进行修改,(ii)用于对所得二进制文件进行签名的密钥(通常是oci[open container initiative]映像)被可信执行环境保护,以及(i ii)在构建二进制文件的同时创建清单。清单包括由构建使用的源和构建的二进制文件的散列。清单通过由可信执行环境保护的密钥来签名。清单然后可由作者用来检查没有恶意代码被添加到所述二进制文件。
[0003]
hpvs已经由若干独立软件供应商(isv)针对内部部署(on-premise)和云计算环境两者被引入,主要在针对hpvs创建映像的数字资产领域中。已经接收到如下反馈:虽然清单是非常有用的安全工具,但是由于用于构建oci映像的所有源,它们在实践中相当困难。所述源为:(i)基础操作系统(例如,ubuntu、red hat、alpine等),(ii)不同的中间件运行时和库(例如,python、npm、java等),以及(iii)从互联网下载的任何其他程序,诸如tarball、zip等、artifactory等,以及(iv)来自git储存库的源。
[0004]
因此,可能需要解决方案来管理和减少清单中的这种大量输出,并且仍然能够检测潜在的恶意代码。
[0005]
存在涉及用于监视和审核安全软件构建的计算机实现的方法的一些公开。文件us 2020/0304526a1公开了通过计算机访问至少部分地构建在虚拟机实例内部的容器映像。根据所使用的技术,针对安全问题扫描容器映像和虚拟实例的映像,并且由计算机显示扫描的结果。
[0006]
文件us 2019/021319a1公开了一种为软件容器提供安全性的方法,该方法包括接收软件容器映像,该软件容器映像具有被加密并且包括软应用的软应用层并且具有包括安全代理的单独的安全代理层。根据该方法,接收将软容器映像实例化为软件容器的请求。所述方法还包括基于所述请求,启动所述安全代理,并且利用所述安全代理来解密和认证所述软件应用层,以及基于所述认证来控制软应用的操作。
[0007]
然而,上述可用解决方案中没有一个解决对用于高度可信执行环境的高度安全软件程序构建过程的要求。
[0008]
因此,仍然有提供能够管理和减少清单中的这种大量输出并且仍然能够识别潜在
的恶意代码的解决方案的上述需要。


技术实现要素:

[0009]
根据本发明的一个方面,可以提供一种用于监视和审核安全软件构建的计算机实现的方法。该方法可以包括接收包括构建指令的序列的构建文件,并且在执行构建指令的同时,对于每个构建指令:设置与监视级别相对应的指标值,以及根据所述指标值选择所需日志记录的级别。
[0010]
根据本发明的另一方面,可以提供一种用于监视和审核安全软件构建的构建系统。所述系统可以包括可操作地耦合到处理器的存储器,其中所述存储器存储程序代码部分,所述程序代码部分在被执行时可以使得处理器能够接收包括构建指令的序列的构建文件,并且在执行所述构建指令的同时,对于每个构建指令:设置与监视级别相对应的指标值,以及根据所述指标值来选择所需日志记录的级别。
[0011]
所提出的用于监视和审核安全软件构建的计算机实现的方法可以提供多个优点、技术效果、贡献和/或改进:
[0012]
新提出的概念可以增加用于从多个源构建软件应用的安全级别。如此构建的软件能够在高度可信执行环境中操作,潜在地在构建过程期间没有被危及的任何风险。用户可以在内部部署中以及在云计算环境中受益于此。同样,诸如isv的第三方提供者可受益于新提出的有利概念,主要是针对z架构型计算系统。然而,本发明构思不限于刚刚提到的架构类型。通常,它可以在每个硬件架构和每个操作系统环境上实现。
[0013]
另一方面,可以避免在构建过程期间追踪日志文件可能过大比例地增长,使得清单或清单文件也可能在体积上过大比例地增长。追踪日志文件可仅存储那些可疑的构建指令和相关结果。结果,这里提出的概念可以实现关于什么被记录日志以及以什么深度记录的高度可配置性。所涉及和有利的概念之一是设置与监视级别对应的指标值,并且根据该指标值选择所需日志记录的级别。使用该概念,可将日志文件中捕获的追踪的细粒度控制给予负责构建过程的管理员。可以针对每种类型的构建指令(因此,构建过程的细粒度控制)不同地设置监视级别以及因此不同地设置指标值。
[0014]
最后,可以通过这里提出的发明构思实现至少两个策略目标:(i)适合于高度可信执行环境的构建过程,(ii)对被追踪并存储在日志文件中的量的细粒度控制,并且根据指标值来选择所需日志记录的级别,以及(iii)清单的量的限制,其结果是,可以允许管理员出于质量原因而更快地检查。
[0015]
在下文中,将描述适用于该方法以及相关系统的本发明构思的附加实施例。
[0016]
根据有利实施例,所述方法还可包括,在执行构建指令的同时,针对每个构建指令执行:在日志文件中记录执行所执行的构建指令的系统的详细追踪。因此,稍后——例如,在分析阶段期间——快速且直接的根本原因分析的所有需要的信息可以完全可用于进一步检查。
[0017]
根据另一个有利实施例,所述方法还可包括在执行所述构建指令的同时,针对每个构建指令执行:基于对所述日志文件的分析,确定所述日志文件的每个条目是否对应于授权的事务。因此,已经在构建过程期间,如果在构建指令中已经找到未授权的事务,那么可分析日志文件并且可生成事件。这样的事件可用于采取进一步的动作,例如停止构建过
程。
[0018]
根据另一可能的实施例,该方法还可包括在执行构建指令的同时,针对每个构建指令执行:将对日志文件的分析的相应结果添加到审核轨迹(audit trail)。
[0019]
这可允许操作者在构建过程完成或中止之后的稍后时间点经历构建构造序列并进一步调查以找到潜在恶意构建序列的根本原因。
[0020]
根据增强的实施例,所述方法可进一步包括在检测到未授权的事务后中止构建指令序列的执行。这可以是最后手段,以便保护可信计算环境免于潜在的恶意代码元素。
[0021]
根据该方法的一个优选实施例,该指标值可以取决于可配置的识别的关键指令来设置。此类可配置的识别的关键指令的配置可由管理员在开始构建过程之前设置。可以基于特定计算环境和/或安全管理员的经验来设置可配置的识别的关键指令,例如,受限的和/或未允许的指令。
[0022]
根据所述方法的另一优选实施例,可以基于硬编码的映射表来选择所需日志记录的监视级别。而且,这样的硬编码映射表可以是可编辑的并且可由安全管理员控制。该表可以使用标准编辑工具来编辑和/或可以具有web界面。硬编码表可以包括针对关键的和潜在可疑的或恶意的构建指令的未允许列表和/或针对安全构建指令的允许列表。
[0023]
根据所述方法的另一有用实施例,详细追踪可包括从由网络使用、传入通信消息、传出消息、系统进程数据、被调用例程、命令级接口输入和相应度量组成的组中选择的至少一个。这可以构建潜在可观察的攻击方法的代表性集合。其他的可以被添加。
[0024]
根据该方法的进一步增强的实施例,中止构建指令序列的执行还可包括将日志文件条目与允许列表中的条目和/或拒绝列表中的条目进行比较。这样的未允许列表和/或允许列表可以表示双重检查,以便不错过任何恶意代码,所述恶意代码可以稍后被启用以危及由于恶意程序代码导致的计算机系统的功能。未允许列表还可被表示为块列表,其指示构建指令的未允许/块列表中的所列元素或指令属于应被阻止的潜在未允许指令。相反,允许列表中的指令被允许;因此,允许列表也可被表示为

被允许列表’。
[0025]
根据有用的实施例,该方法还可包括对清单文件签名,该清单文件作为完整执行构建指令的结果而被构建。该清单文件可以与典型的清单文件一致,使得可以使用用于清单文件的已经存在的管理工具。此外,清单文件还可以变得可用(例如,呈现)给审核者以用于质量保证。
[0026]
此外,实施例可以采取相关计算机程序产品的形式,其可从计算机可用或计算机可读介质访问,该计算机可用或计算机可读介质提供用于由计算机或任何指令执行系统使用或与其结合使用的程序代码。出于本说明的目的,计算机可用或计算机可读介质可为可包含用于存储、通信、传播或传输程序以供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置使用的装置的任何设备。
附图说明
[0027]
应注意的是,参考不同的主题描述了本发明的实施例。特别地,一些实施例参考方法类型权利要求来描述,而其他实施例参考装置类型权利要求来描述。然而,本领域的技术人员将从以上和以下描述中得出,除非另有说明,否则除了属于一种类型的主题的特征的任何组合之外,与不同主题相关的特征之间(尤其是在方法类型权利要求的特征与装置类
型权利要求的特征之间)的任何组合也被认为是在本文件内被公开。
[0028]
以上定义的各方面以及本发明的其他方面从下文将要描述的实施例的例子中是清楚的并且参考实施例的示例进行解释,但是本发明不限于此。
[0029]
将仅以举例方式并且参考以下附图来描述本发明的优选实施例:
[0030]
图1示出用于监视和审核安全软件构建的本发明的计算机实现的方法的实施例的框图。
[0031]
图2示出了可以集成这里提出的概念的现实的安全构建过程的框图。
[0032]
图3示出了这里提出的概念的接近实现实施例的第一部分的框图。
[0033]
图4示出了这里提出的概念的接近实现实施例的第二部分的框图。
[0034]
图5示出了针对每个执行的构建指令的子例程执行步骤的示例性流程图。
[0035]
图6示出用于监视和审核安全软件构建的本发明的构建系统的实施例的框图。
[0036]
图7示出了包括根据图6的构建系统的计算系统的实施例。
具体实施方式
[0037]
在本说明的上下文中,可以使用以下惯用语、术语和/或表达:
[0038]
术语“软件构建”或更完整的“软件构建过程”可以表示将源代码文件转换成可以在计算机上运行的独立软件工件的过程,或者这样做的结果。这可以涉及——在端到端过程中——像版本控制、管理代码质量以及将源代码编译成机器可读代码的活动。因此,术语“构建(build)”也可以与在此定义的活动和/或结果相关。
[0039]
术语“构建文件”可以表示软件构建过程的结果文件。
[0040]
术语“构建指令”可以表示(例如,在逐行过程中)描述可以采取哪些步骤和哪些源可以用于软件构建过程的命令。
[0041]
术语“指标值”可以表示例如指示对于软件构建过程要使用的监视级别的字母数字项或缩写或人类可读表达。
[0042]
术语“监视级别”可以表示例如追踪活动的深度和在软件构建过程期间执行的测试的数量和测试的类型。
[0043]
术语“所需日志记录的级别”可以表示指标值不可表达并且因此监视级别不可表达的预定义值,该预定义值描述什么特定事件和这些事件的结果何时可以存储在日志文件中。
[0044]
术语“详细追踪”可以表示软件构建过程的追踪过程的结果。
[0045]
术语“审核轨迹”可以表示在根据此处提出的概念的软件构建过程期间捕获的日志事件和结果的序列。
[0046]
术语“未授权事务”可以表示与在软件构建过程期间的潜在的(特别是预定义的)危险的、恶意的或可疑的活动相关的指令。它可以涉及软件构建过程期间的未知软件代码部分、未知网络连接或类似的可疑链接。
[0047]
术语“可配置的识别的关键指令”可以表示所接收的用于执行软件构建过程的构建指令之一。可以被表示为关键的构造类型能够以精细的方式配置以允许清单的高度安全性。
[0048]
术语“硬编码映射表”可以表示定义例如授权事务(即,不关键的构建指令)的表,
所有那些已知为例如潜在危险的并且因此是不能允许的构建指令。
[0049]
术语“允许列表”可以表示在允许的构建指令的列表中列出的构建文件中的所有那些指令,即,已知为不宜危及的指令。
[0050]
术语“拒绝列表”(或未允许列表)可以表示潜在地是构建文件的一部分的所有那些指令,所述构建文件具有作为关键指令的某个风险。
[0051]
术语“清单文件”或简单地“清单”可以表示包括作为一个设置或连贯单元的一部分的一组伴随文件的元数据的文件。作为示例,计算机程序的文件可以具有描述可执行软件程序的名称、版本号、许可和构成文件以及可能的其他元数据的清单。此外,安全构建过程可以创建清单文件。清单可以包括构建所使用的源和构建的二进制文件的散列。清单还可通过由可信执行环境保护的密钥来签名。清单然后可由作者用来检查没有恶意代码被添加到二进制文件。
[0052]
术语“docker(程序坞)”可以表示使用操作系统级虚拟化来递送被称为容器的软件包的平台即服务(paas)产品的集合。容器彼此隔离,并捆绑它们自己的软件、库和配置文件。它们能够通过明确定义的信道彼此通信。关键特性之一是全部运行在单个操作系统上,并且因此使用比传统虚拟机更少的资源。还可以注意到,这里提出的发明构思可以有利地在当前流行的docker计算环境中实现。
[0053]
在下文中,将给出附图的详细描述。附图中的所有指示都是示意性的。首先,给出用于监视和审核安全软件构建的本发明的计算机实现的方法的实施例的框图。之后,将描述进一步的实施例以及用于监视和审核安全软件构建的构建系统的实施例。
[0054]
图1示出用于监视和审核安全软件构建的计算机实现的方法100的优选实施例的框图。方法100包括例如从git或另一代码储存库接收(102)包括构建指令序列的构建文件,并且在执行(104)构建指令时,针对每个构建指令进行以下操作:设置(106)与监视级别相对应的指标值,其可以具体地是特定于指令的,但是对于所有构建指令,该指标值也可以是相同的;以及取决于该指标,选择(108)所需日志记录的级别。
[0055]
核心方法的扩展版本还可以包括:具体地,针对每个构建指令并且当执行所述构建指令时,在日志文件中记录(110)执行所执行的构建指令的系统的详细追踪;以及基于对所述日志文件的分析来确定(112)日志文件的每个条目是否对应于授权的事务。这可以使序列(即,步骤114的循环)更完整和更接近实现。
[0056]
图2示出了可以集成这里提出的概念的现实的安全构建过程的框图200。构建流水线可以开始于对形成的应用映像的选择202,并且继续将源代码上传(204)到源代码储存库。还可以添加其他源。在步骤206中,生成安全构建代码并执行安全背书208。该过程继续以从例如docker储存库自动部署210,使得用户可使用(228)安全代码。
[0057]
图2的右侧示出(与左侧的处理步骤相对)所涉及的数据相关元素。这尤其适用于映像212、源代码储存库214(scr)、其他源216、安全构建218、清单220、(docker)映像222和docker储存库224,用户可以从中使用(228)超级保护虚拟服务器(hpvs)226中的安全代码。可以注意到,三个后续图涉及生成安全构建的步骤206。
[0058]
图3示出了这里提出的概念的接近实现实施例的第一部分300的框图。该过程开始于流程图图标302。在304,可例如从git储存库306或另一代码储存库获得或接收构建文件。在308解析该文件,从而生成解析树310,并且在312建立(即,发起)追踪过程,以构建追踪日
志314的基础。然后,对于构建指令文件中的每个步骤,监视日志文件或追踪315(在图4中继续),同时开始构建过程316。
[0059]
如果构建指令的所有指令可被正确地执行,则构建过程完成(318),并且该过程在图标320处结束。然而,带圆圈的字母是与图4中描述的更详细的监视的连接点。
[0060]
图4示出了在此提出的概念的接近实现实施例的第二部分400的框图。从图3至图4的自然切换点是“e”。对于每个构建指令,执行子例程404,这在图5中详细描述。所以,图5示出了在此提出的概念的接近实现实施例的第三部分500的框图。
[0061]
首先,需要找到追踪日志中的命令502。然后,对于每个网络连接和下载文件,执行循环504。在此循环中,针对未允许的潜在恶意指令或具有访问恶意代码部分或网络连接的可能的那些指令的列表进行检查506。
[0062]
并行地(经由切换点“f”),对映像文件的访问与校验和和url(统一资源定位符)一起被添加到审核轨迹。
[0063]
作为子例程404中的下一步骤,检查是否列出已对照未允许列表检查的构建指令508。如果是这种情况,则图4的流程图分支到中止构建过程408,并且经由“c”将控制返回至图3的流程图部分(316)。
[0064]
接下来,在根据图5的子例程的流程图中,针对构建指令的允许列表执行检查(510),并且在该构建指令被列出的情况下(判定512的“是”情况),过程返回至以动作框504开始的循环。如果该构建指令不包括在允许列表中(判定512的“否”情况),则向审核轨迹310(比较图3)添加警告410,并且检查(412)当前构建过程是否在强制模式中执行。构建过程可在强制模式或非强制模式下操作。在强制模式中,如果创建了例如针对不包含在允许列表中的构建指令的警告,则中止构建过程。在非强制模式中,如果创建了警告,则构建过程继续。
[0065]
如果是这种情况(情况“是”),则中止构建过程408,并且经由“c”将控制给予回到图3的流程图(316)。如果同样在这里构建过程未在强制模式中执行412(情况“否”),映像文件名与校验和和url一起被添加(406)到审核轨迹310。
[0066]
可以注意到,图3、4和5中的实线涉及处理流程,而虚线涉及数据相关性或数据流。因此,审核轨迹410经由“d”链接回到构建“完整构建文件”动作(318)。此外,流控制箭头经由“a”将解析树402中的每个构建命令的控制框连接至用于构建构建文件的循环(316)。此外,可以观察到用于中止(408)构建文件到根据图3的总体流程图的结束点图标320的另一控制流程。
[0067]
图6示出用于监视和审核安全软件构建的发明性构建系统600的实施例的框图。该系统包括可操作地耦合到处理器604的存储器602。存储器602存储程序代码部分,所述程序代码部分在被执行时使处理器604能够(具体地使用接收器606)接收包括构建指令序列的构建文件,并且在执行构建指令时,针对每个构建指令:具体地由指标设置单元608设置与监视级别相对应的指标值,并且具体地由级别选择单元610取决于所述指标值来选择所需日志记录的级别。
[0068]
可选地,在本发明的构建系统600中可存在适于在日志文件中记录执行所执行的构建指令的系统的详细追踪的日志记录单元612,以及适于基于对日志文件的分析来确定日志文件的每个条目是否对应于授权的事务的确定单元614。
[0069]
还可以注意到,构建系统600的所有单元、模块和其他实体可以按一对一的方式互连,用于交换电信号和/或数据。另选地,构建系统600的单元、模块和其他实体可由系统内部总线系统616互连以用于数据和命令交换。
[0070]
本发明的实施例可以与几乎任何类型的计算机一起实现,而不管适于存储和/或执行程序代码的平台是什么。图7作为示例示出适于执行与所提出的方法相关的程序代码的计算系统700。
[0071]
计算系统700仅是合适的计算机系统的一个示例,并且不旨在对在此描述的本发明的实施例的用途或功能的范围提出任何限制,而不管计算机系统700是否能够被实现和/或执行上文阐述的任何功能。在计算机系统700中,存在可与许多其他通用或专用计算系统环境或配置一起操作的组件。可以适合于与计算机系统/服务器700一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统和包括上述系统或设备中的任一个的分布式云计算环境等。计算机系统/服务器700可以在由计算机系统700执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器700可在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可位于本地和远程计算机系统存储介质(包括存储器存储设备)两者中。
[0072]
如图中所示,计算机系统/服务器700以通用计算设备的形式示出。计算机系统/服务器700的组件可以包括但不限于一个或多个处理器或处理单元702、系统存储器704以及将包括系统存储器704的不同系统组件耦合到处理器702的总线706。总线706表示若干类型的总线结构中的任何总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和外围组件互连(pci)总线。计算机系统/服务器700通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器700访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质两者。
[0073]
系统存储器704可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(ram)708和/或高速缓存存储器710。计算机系统/服务器700还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统712可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。虽然未示出,但是可以提供用于从可移除非易失性磁盘(例如,“软盘”)读取和向可移除非易失性磁盘写入的磁盘驱动器,以及用于从可移除非易失性光盘(诸如cd-rom、dvd-rom或其他光学介质)读取或向可移除非易失性光盘写入的光盘驱动器。在这样的实例中,每一个都可以通过一个或多个数据介质接口连接到总线706。如下面将进一步描绘和描述的,存储器704可以包括至少一个程序产品,该程序产品具有被配置为执行本发明的实施例的功能的程序模块的集合(例如,至少一个)。
[0074]
具有一组(至少一个)程序模块716的程序/实用工具以及操作系统、一个或多个应
用程序、其他程序模块和程序数据可以通过示例而非限制的方式存储在存储器704中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一者或其某一组合可包含联网环境的实施例。程序模块716通常执行本发明的实施例的功能和/或方法,如本文所述。
[0075]
计算机系统/服务器700还可以与一个或多个外部设备718通信,诸如键盘、定点设备、显示器720等;使得用户能够与计算机系统/服务器700交互的一个或多个设备;和/或使计算机系统/服务器700能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由输入/输出(i/o)接口714发生。此外,计算机系统/服务器700可以经由网络适配器722与诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,互联网)之类的一个或多个网络通信。如所描绘的,网络适配器722可以经由总线706与计算机系统/服务器700的其他部件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器700结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据归档存储系统等。
[0076]
另外,用于监视和审核安全软件构建的构建系统600可被附连到总线系统606。
[0077]
已经出于说明的目的呈现了本发明的不同实施例的描述,但并不旨在是穷尽性的或局限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。这里使用的术语被选择以最佳地解释实施例的原理、实际应用或对市场上存在的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
[0078]
本发明可以体现为系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质,所述计算机可读程序指令用于致使处理器执行本发明的方面。
[0079]
该介质可以是用于传播介质的电子、磁性、光学、电磁、红外或半导体系统。计算机可读介质的示例可包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、刚性磁盘和光盘。光盘的当前示例包括致密盘只读存储器(cd-rom)、致密盘读/写(cd-r/w)、dvd和蓝光盘。
[0080]
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式致密盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、机械编码设备(诸如穿孔卡或沟槽中的凸起结构,其上记录有指令)以及前述各项的任何合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
[0081]
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收
计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0082]
用于执行本发明的操作的计算机可读程序指令可以是汇编器指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言,如smalltalk、c 等)和常规的过程式编程语言(如“c”编程语言或类似的编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以完全地在用户的计算机上执行、部分地作为独立软件包在用户的计算机上执行、部分地在用户的计算机上部分在远程计算机上执行、或者完全地在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
[0083]
本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
[0084]
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个块中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,所述计算机可读存储介质可以指引计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得具有存储在其中的指令的计算机可读存储介质包括制品,所述制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
[0085]
计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置、或另一设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置、或另一设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
[0086]
附图中的流程图和/或框图图示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中所标注的功能可以不以图中所标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
[0087]
在此使用的术语仅用于描述具体实施例的目的并且不旨在限制本发明。如在此使用的,单数形式“一个”、“一种”和“该”旨在也包括复数形式,除非上下文另外清楚地指示。将进一步理解的是,当在本说明书中使用术语“包括”和/或“包含”时,其指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整体、步骤、
操作、元件、组件和/或其组的存在或添加。
[0088]
所附权利要求中的所有装置或步骤加上功能元件的对应结构、材料、动作和等效物旨在包括用于结合其他要求保护的元件(如具体要求保护的)来执行功能的任何结构、材料或动作。本发明的描述是出于说明和描述的目的而呈现的,但不旨在是穷尽性的或局限于所公开的形式的本发明。在不脱离本发明的范围和精神的情况下,许多修改和变化对本领域的普通技术人员将是显而易见的。选择和描述这些实施例是为了最好地解释本发明的原理和实际应用,并且使得本领域的普通技术人员能够针对适合于所考虑的具体用途的具有不同修改的不同实施例理解本发明。
[0089]
概括地,本发明构思可总结为以下条款:
[0090]
1.一种用于监视和审核安全软件构建的计算机实现的方法,所述方法包括:
[0091]-接收包括构建指令的序列的构建文件,
[0092]-在执行所述构建指令时,对于每个构建指令:
[0093]-设置对应于监视级别的指标值,并且
[0094]-根据所述指标值选择所需日志记录的级别。
[0095]
2.根据条款1所述的方法,还包括
[0096]-在执行所述构建指令时,对于每个构建指令:
[0097]-在日志文件中记录执行所执行的构建指令的系统的详细追踪。
[0098]
3.根据条款2所述的方法,还包括
[0099]-在执行所述构建指令时,对于每个构建指令:
[0100]-基于对所述日志文件的分析来确定所述日志文件的每个条目是否对应于授权的事务。
[0101]
4.根据条款3所述的方法,还包括
[0102]-在执行所述构建指令时,对于每个构建指令:
[0103]-将所述日志文件的所述分析的对应结果添加到审核轨迹。
[0104]
5.根据条款3所述的方法,进一步包括
[0105]-在检测到未授权事务后中止构建指令的序列的执行。
[0106]
6.根据前述条款中任一项所述的方法,其中取决于可配置的识别的关键指令来设置所述指标值。
[0107]
7.根据前述条款中任一项所述的方法,其中基于硬编码的映射表来选择所需日志记录的所述监视级别。
[0108]
8.根据条款2至7中任一项所述的方法,其中所述详细追踪包括从由以下各项组成的组中选择的至少一项:网络使用、传入通信消息、传出消息、系统进程数据、调用的例程、命令级接口输入、以及相应的度量。
[0109]
9.根据权利要求5至8中任一项所述的方法,其中中止构建指令的所述序列的执行包括:
[0110]-将日志文件条目与允许列表中的条目和/或拒绝列表中的条目进行比较。
[0111]
10.根据前述条款中任一项所述的方法,还包括对清单文件进行签名,所述清单文件作为完成执行所述构建指令的结果而被构建。
[0112]
11.一种用于监视和审核安全软件构建的构建系统,所述系统包括:
[0113]-可操作地耦合至处理器的存储器,其中该存储器存储程序代码部分,该程序代码部分在被执行时使该处理器能够执行根据权利要求1至10中任一项所述的方法的步骤。
[0114]
12.一种用于监视和审核安全软件构建的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由一个或多个计算系统或控制器执行以使得所述一个或多个计算系统执行根据权利要求1至10中任一项所述的方法的步骤。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献