首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 权利要求 / 用于识别原始程序中的弱点的方法、设备和测试程序

用于识别原始程序中的弱点的方法、设备和测试程序

阅读:264发布:2020-05-28

专利汇可以提供用于识别原始程序中的弱点的方法、设备和测试程序专利检索,专利查询,专利分析的服务。并且一种使用测试程序(2)来识别原始程序(1)中弱点的方法,该原始程序被配置为当在预定的运行时环境(3)中被执行时对输入数据(D)执行预定的功能(4),并且所述测试程序被配置为当在预定的运行时环境中被执行时对输入数据执行相同的预定功能,包括:在预定的运行时环境中在相同的输入数据上并行执行(S1)原始程序和测试程序;获取(S2)表征该测试程序的执行的测试信息;基于测试信息与指示用于识别弱点的条件的预定弱点信息的比较,确定(S3)原始程序是否具有弱点。可以动态地确定程序的弱点,而不必在人工测试环境中执行耗时的测试。,下面是用于识别原始程序中的弱点的方法、设备和测试程序专利的具体信息内容。

1.一种用于使用测试程序(2)来识别原始程序(1)中的弱点的方法,所述原始程序(1)被配置为当在预定的运行时环境(3)中被执行时对所述输入数据(D)执行预定功能(4),并且所述测试程序(2)被配置为当在预定的运行时环境(3)中被执行时对所述输入数据(D)执行与所述原始程序(1)相同的预定功能(4),包括:
在所述预定的运行时环境(3)中,对相同的输入数据(D)并行地执行(S1)所述原始程序(1)和所述测试程序(2);
获取(S2)表征所述测试程序(2)的所述执行的测试信息;以及
基于所述测试信息与指示用于识别弱点的条件的预定弱点信息的比较,确定(S3)所述原始程序(1)是否具有弱点。
2.根据权利要求1所述的方法,
其中所述原始程序(1)和所述测试程序(2)彼此独立地被执行。
3.根据权利要求1或2所述的方法,还包括:
对在执行所述测试程序(2)时发生的事件进行日志记录以获取日志条目作为所述测试信息。
4.根据权利要求3所述的方法,还包括:
监视所述日志条目以识别所述原始程序(1)的弱点。
5.根据权利要求1至4之一所述的方法,其中所述测试信息至少包括:
所述测试程序(2)的代码的预定部分的执行时间;
在执行所述测试程序(2)时发生的异常;
关于在执行所述测试程序(2)时使用的加密密钥的信息;和/或
在执行所述测试程序(2)时发生的事件的顺序。
6.根据权利要求1至5之一所述的方法,还包括:
如果确定所述原始程序(1)具有弱点,则向用户提供(S4)指示已识别出弱点的警告信息。
7.根据权利要求1至6之一所述的方法,其中,由所述测试程序(2)执行获取(S2)测试信息以及确定(S3)所述原始程序(1)是否具有弱点的步骤。
8.根据权利要求1至7中的一项所述的方法,还包括:
鉴于所识别的弱点,更新(S5)所述原始程序(1)和/或所述测试程序(2)。
9.根据权利要求1至8之一的方法,
其中所述原始程序(1)和所述测试程序(2)被存储在同一硬件实体上,或者其中所述原始程序(1)和所述测试程序(2)被存储在不同的硬件实体上。
10.一种用于识别原始程序(1)中的弱点的测试程序(2),所述原始程序(1)被配置为当在预定的运行时环境(3)中被执行时对输入数据(D)执行预定功能(4),所述测试程序(2)被配置为:
当在预定的运行时环境(3)中被执行时,对所述输入数据(D)执行与所述原始程序(1)相同的预定功能(4);
在所述预定的运行时环境(3)中,对与所述原始程序(1)相同的输入数据(D)与所述原始程序(1)并行地被执行;
提供表征所述测试程序(2)的所述执行的测试信息;以及
基于所述测试信息与指示用于识别弱点的条件的预定弱点信息的比较,确定所述原始程序(1)是否具有弱点。
11.根据权利要求10所述的测试程序,其被配置为在根据权利要求1至9之一的方法中被使用作为测试程序(2)。
12.一种用于使用测试程序(2)来识别原始程序(1)中的弱点的设备(10),所述原始程序(1)被配置为当在预定的运行时环境(3)中被执行时对输入数据(D)执行预定功能(4),并且所述测试程序(2)被配置为当在预定的运行时环境(3)中被执行时对所述输入数据(D)执行与所述原始程序(1)相同的预定功能(4),包括:
执行实体(11),用于在预定的运行时环境(3)中对相同的输入数据(D)并行地执行所述原始程序(1)和所述测试程序(2);
获取实体(12),用于获取表征所述测试程序(2)的所述执行的测试信息;和确定实体(13),用于基于所述测试信息与指示用于识别弱点的条件的预定弱点信息的比较,确定所述原始程序(1)是否具有弱点。
13.根据权利要求12所述的设备,其被配置为执行根据权利要求1至9之一所述的方法。
14.一种计算机程序产品,包括用于执行根据权利要求1至9之一所述的方法的程序代码。

说明书全文

用于识别原始程序中的弱点的方法、设备和测试程序

技术领域

[0001] 本发明涉及一种用于使用测试程序来识别原始程序中的弱点的方法、一种用于识别原始程序中的弱点的测试程序以及一种用于使用测试程序来识别原始程序中的弱点的设备。

背景技术

[0002] 可能期望对新开发的原始程序执行测试以识别其弱点并确保其按预期运行。例如,可以在人工测试环境中测试原始程序,在其中在执行原始程序时将人工创建的数据使用作为输入。然后可以由安全分析人员分析在人工测试环境中执行的测试的结果,以检测原始程序的弱点。

发明内容

[0003] 本发明的一个目的是改善对原始程序中的弱点的识别。
[0004] 根据第一方面,提供了一种用于使用测试程序来识别原始程序中的弱点的方法,该原始程序被配置为当在预定的运行时环境被执行时对输入数据执行预定功能,并且该测试程序被配置为当在预定的运行时环境中被执行时对输入数据执行与原始程序相同的预定功能。该方法包括:在预定的运行时环境中,对相同的输入数据并行地执行该原始程序和该测试程序;
获取表征该测试程序的执行的测试信息;以及
基于该测试信息与指示用于识别弱点的条件的预定弱点信息的比较来确定该原始程序是否具有弱点。
[0005] 预定的运行时环境可以是在其中可以成功地执行原始和/或测试程序的环境。为了成功地执行原始程序和/或测试程序,预定的运行时环境尤其包括足够的库、诸如数据库的子系统、网络基础设施等。
[0006] 原始程序可以包括指令集,该指令集当在预定的运行时环境中被执行时执行预定功能。例如,预定功能可以是利用来自工业网络中的传感器的数据所实现的计算。可以将原始程序存储在硬件实体上以形成原始设备。原始程序本身可以是软件
[0007] 测试程序可以包括与原始程序相同的指令集。特别地,在被执行时,测试程序可以执行原始程序可以执行的所有功能。可以将测试程序看作是原始程序的副本。除了被配置为在被执行时执行与原始程序相同的功能之外,测试程序还可以执行诸如测试功能之类的附加功能,这将在下面描述。可以将测试程序存储在硬件实体上以形成测试设备,或者也可以将它存储在与原始设备相同的硬件上。测试程序本身可以是软件。
[0008] 可以恒定地与原始程序并行地运行或执行测试程序。在本申请中,“并行”特别意指同时且具有相同的输入数据。特别地,测试程序接收与原始数据相同的输入数据,并执行相同的预定功能,例如相同的计算。在实施例中,可以最初将输入数据提供给原始程序,并且然后传送给测试程序,可以最初将输入数据提供给测试程序,并且然后传送给原始程序,或者可以将输入数据同时提供给原始程序和测试程序二者,例如通过接口,特别是通过广播接口。
[0009] 特别地,当测试程序被执行时,它从预定的运行时环境中访问与原始程序相同的库和数据库,并以与原始程序相同的方式使用来自库和数据库的信息。可以在与原始程序相同的运行时环境中运行或执行测试程序。
[0010] 可以在执行测试程序时生成测试信息。测试信息可以指示如何执行测试程序。特别地,它跟踪在执行测试程序时发生的事件。将在下面进一步讨论测试信息示例。
[0011] 弱点可能是原始程序和/或测试程序中的缺陷,特别是其代码中的缺陷。例如,如果针对给定的输入数据不能按预期执行预定功能,则检测到弱点。例如,在出现竞争条件、不安全的应用编程接口(API)使用、被看狗计时器杀死的无限循环、引发的异常等等的情况下,就识别出弱点。
[0012] 预定弱点信息可以指示用于识别弱点的条件或要求。特别地,将预定弱点信息预先存储在诸如ROM之类的存储设备中。预定弱点信息可以指示当获取特别不寻常的测试信息时弱点将被识别。例如,预定弱点信息指示如果相同事件(诸如存储或加密)重复多次,则测试程序具有弱点。在实施例中,当所获取的测试信息与预定弱点信息的条件匹配时弱点被识别。可替代地,可以应用否定逻辑。
[0013] 特别地,由于并行地执行测试程序和原始程序,因此当在测试程序中检测到弱点时,在原始程序中也存在相同的弱点。
[0014] 特别地,运行时环境不是人工测试环境而是实际环境,在其中将针对预定应用运行原始程序。原始程序的弱点因此可以在真实环境中被识别。
[0015] 在原始程序正在运行时,可以动态地执行原始程序的测试。当使用测试程序执行测试时,可以说是“被动测试”。
[0016] 可以在具有“真实”库、数据库等等的“真实”运行时环境中测试原始程序。与在人工测试环境中执行的测试相比,该测试得以改善,因为人工测试环境永远不会覆盖原始程序的所有可能应用。此外,因为不需要提供人工测试环境也不需要生成人工输入数据,所以可以简化对原始程序的测试。此外,可以用实际数据而不是测试数据来执行测试,从而显著提高了测试的完整性。
[0017] 特别地,根据第一方面的方法的原始程序的测试也比在人工测试环境中测试原始程序的耗时更少,因为可以在执行原始程序的同时执行测试。
[0018] 此外,不对原始程序本身执行原始程序的测试。相反,可以对与原始程序并行运行的测试程序执行测试,从而避免原始程序运行缓慢或崩溃。
[0019] 根据实施例,彼此独立地执行原始程序和测试程序。特别地,原始程序和测试程序不受彼此执行的影响。
[0020] 根据另一个实施例,根据第一方面的方法还包括:对在执行测试程序时发生的事件进行日志记录以获取日志条目作为测试信息。
[0021] 特别地,执行对在执行测试程序时发生的事件的日志记录。日志记录可以是获取测试信息的步骤的一部分。在执行测试程序时发生的事件可能是与安全相关的事件。这些事件可以包括数据的存储、加密、解密、接收和/或发送以及与之相关的参数。
[0022] 在实施例中,在执行测试程序时执行日志记录。特别地,日志记录功能性是测试程序的一部分。
[0023] 日志记录可以指出关于原始程序和/或测试程序的弱点的相关信息。可以将日志记录的结果表达为日志条目。日志条目可以是相关事件的列表。日志条目可以形成和/或成为已经描述的测试信息的一部分。
[0024] 根据另一个实施例,根据第一方面的方法还包括:监视日志条目以识别原始程序的弱点。
[0025] 监视可以是对日志条目的永久分析。例如,监视允许按日志记录的事件顺序识别特定的模式,从而将竞争条件或不安全的API使用识别为弱点。监视功能性可以是测试程序的一部分。
[0026] 根据另一个实施例,测试信息至少包括:测试程序的代码的预定部分的执行时间;
在执行测试程序时发生的异常;
关于在执行测试程序时使用的加密密钥的信息;和/或
在执行测试程序时发生的事件的顺序。
[0027] 特别地,当测试信息异常和/或对应于由预定弱点信息设置的条件时,弱点被识别。
[0028] 测试信息可以包括测试程序的部分代码的执行时间。如果执行时间高于或低于预期,则可以鉴于预定弱点信息检测弱点。例如,可以确定看门狗定时器已杀死无限循环。
[0029] 关于在执行测试程序时使用的加密密钥的信息可以例如包括使用哪个加密密钥及其长度。如果关于加密密钥的信息不正常,并且鉴于预定弱点信息指示弱点,则弱点可以被识别。
[0030] 测试信息还可以包括在执行测试程序时发生的事件的顺序。例如,它可以指示首先发生数据接收,然后是解密,然后是存储。如果鉴于预定弱点信息,事件的顺序不正常,则弱点可以被识别。
[0031] 根据另一个实施例,根据第一方面的方法还包括:如果确定原始程序具有弱点,则向用户提供指示已识别出弱点的警告信息。
[0032] 警告信息可以包括测试信息,特别是鉴于检测到的弱点的相关部分。例如,与检测到的弱点相关的日志条目被包括在警告信息中。警告信息还可以包括导致检测到该弱点的输入数据。
[0033] 可以将警告信息提供给在其中执行原始程序和测试程序的网络内部或外部的地址。用户可以评估警告信息,特别是手动评估。警告信息也可以是向用户通知弱点的警报。
[0034] 通过接收警告信息,用户可以知道已经发现弱点和/或可以评估弱点。特别地,用户然后可以针对检测到的弱点采取措施。例如,取决于评估的结果,用户可以决定更新原始程序和/或测试程序,将弱点通知给原始程序的制造商,避免输入原始程序无法处理的输入数据等。
[0035] 根据另一个实施例,由测试程序执行获取测试信息和确定原始程序是否具有弱点的步骤。特别地,测试程序负责执行上述日志记录和监视。
[0036] 根据另一个实施例,根据第一方面的方法还包括:鉴于识别出的弱点,更新原始程序和/或测试程序。
[0037] 特别地,可以更新原始程序和测试程序以解决检测到的弱点。例如,可以改变原始程序和/或测试程序的代码,从而改变预定功能如何被执行。由此,原始程序可以得到改善。
[0038] 可以更新测试程序的测试功能性。例如,测试程序的制造商可以为测试程序提供此类更新。测试程序本身也可能发起此类更新,特别是鉴于学习到的模式。
[0039] 在实施例中,也可以更新预定弱点信息以提供用于识别弱点的新条件。
[0040] 根据另一个实施例,将原始程序和测试程序存储在相同的硬件实体上,或者将原始程序和测试程序存储在不同的硬件实体上。
[0041] 根据第二方面,提供了一种用于识别原始程序中的弱点的测试程序,该原始程序被配置为当在预定的运行时环境中被执行时对输入数据执行预定功能。测试程序被配置为:当在预定的运行时环境中被执行时对输入数据执行与原始程序相同的预定功能;
在预定的运行时环境中,对与原始程序相同的输入数据与原始程序并行地被执行;
提供表征测试程序的执行的测试信息;以及
基于测试信息与指示用于识别弱点的条件的预定弱点信息的比较,确定原始程序是否具有弱点。
[0042] 特别地,当执行测试程序时,测试程序对输入数据执行预定功能,并且分析预定功能的执行以检测弱点。为此,测试程序可以被配置为除了预定功能之外还执行测试功能。
[0043] 根据一个实施例,根据第二方面的测试程序被配置为被使用作为根据第一方面的方法中的测试程序。
[0044] 根据第三方面,提供了一种用于使用测试程序来识别原始程序中的弱点的设备,该原始程序被配置为当在预定的运行时环境中被执行时对输入数据执行预定功能,并且测试程序被配置为当在预定的运行时环境中被执行时对输入数据执行与原始程序相同的预定功能。该设备包括:执行实体,用于在预定的运行时环境中对相同的输入数据并行地执行原始程序和测试程序;
获取实体,用于获取表征所述测试程序的执行的测试信息;和
确定实体,用于基于测试信息与指示用于识别弱点的条件的预定弱点信息的比较,确定原始程序是否具有弱点。
[0045] 可以以硬件和/或软件来实现执行实体、获取实体和确定实体。如果以硬件实现相应的实体,则其可以被体现为设备,例如被体现为计算机或被体现为处理器,或者体现为系统例如计算机系统的一部分。如果以软件实现所述实体,则其可以体现为计算机程序产品、被体现为功能、被体现为例程、被体现为程序代码或被体现为可执行对象。
[0046] 根据一个实施例,根据第三方面的设备被配置为执行根据第一方面的方法。
[0047] 根据另一个实施例,提供了一种计算机程序产品,其包括用于执行根据第一方面的方法的程序代码。
[0048] 诸如计算机程序装置之类的计算机程序产品可以被体现为存储卡、USB棒、CD-ROM、DVD或可以从网络中的服务器下载的文件。例如,可以通过从无线通信网络传输包括计算机程序产品的文件来提供这样的文件。
[0049] 参照根据第一方面的方法所描述的实施例和特征在细节上作必要修改后应用于根据第二方面的测试程序和根据本发明的第三方面的设备。
[0050] 本发明的其他可能的实现方式或替代解决方案还涵盖以上或以下关于实施例描述的特征的组合,其在本文中未明确地被提及。本领域技术人员还可以向本发明的最基本形式添加个体的或孤立的方面和特征。附图说明
[0051] 根据结合附图得到的随后的描述和从属权利要求,其他实施例、特征和优点将变得显而易见,其中:图1示出了具有原始程序和测试程序的系统的示例;
图2示出了根据第一实施例的用于识别原始程序中的弱点的方法;
图3示出了根据第二实施例的用于识别原始程序中的弱点的方法;以及
图4示出了根据实施例的用于识别原始程序中的弱点的设备。
[0052] 在附图中,除非另外指出,否则相同的参考标号指明相同或功能上等效的元件。

具体实施方式

[0053] 图1示出了包括原始程序1和测试程序2的系统7的示例。原始程序1和测试程序2是由软件代码制成的计算机程序。
[0054] 可以在预定的运行时环境3中执行原始程序1和测试程序2二者。为此目的,原始程序1和测试程序2都从接口6接收输入数据D。输入数据D可以是由工业网络(未示出)中的传感器测量的真实传感器数据
[0055] 当在运行时环境3中被执行时,原始程序1和测试程序2对输入数据D执行相同的预定功能4。对输入数据D执行的预定功能4是对输入/传感器数据D的数学评估。数学评估包括:从数据库检索附加数据,使用附加数据对输入数据D执行数学运算,对结果进行加密并存储加密的结果。
[0056] 图1的系统7被配置为执行根据第一实施例的用于识别原始程序1中的弱点的方法,如图2中所示。在下文中,将描述图1的测试程序2可以如何被用来识别原始程序1中的弱点。
[0057] 在初始化步骤S0中,提供了包括原始程序1和测试程序2的图1的系统7。
[0058] 在步骤S1中,在运行时环境3中对相同的输入数据D并行执行原始程序1和测试程序2。即,原始程序1对输入数据D执行预定功能4并且测试程序2对相同输入数据D执行相同的预定功能4。
[0059] 在步骤S2中,获取测试信息。测试信息指示当测试程序2被执行时发生的重要/相关事件的顺序。测试信息在这里是一个列表,包括:接收输入数据,检索附加数据,执行数学运算,对结果进行加密以及存储加密的结果。
[0060] 在此列表的元素是通过对在执行测试程序2时所发生的事件进行日志记录而获取的日志条目。为了获取测试信息,测试程序2执行测试功能5(参见图1),该测试功能5在测试程序2中与预定功能4一起进行定义。测试功能5包括日志记录功能性。
[0061] 在步骤S3中,通过监视在步骤S2处所确定的测试信息的日志条目来确定原始程序1是否具有弱点。
[0062] 为了确定原始程序1是否具有弱点,测试程序2的测试功能5将在步骤S2处获取的测试信息与在测试功能5中提供的预定弱点信息进行比较。
[0063] 预定弱点信息指示用于识别弱点的条件。测试程序2中的弱点等效于原始程序1中的弱点。预定弱点信息定义为当根据测试信息重复相同的事件时,原始程序1具有弱点。
[0064] 因此,测试程序2可以在相同的运行时环境3中与原始程序1并行地运行,从而允许在实际条件下对原始程序1进行动态测试。
[0065] 图1的系统7还可以执行根据第二实施例的用于识别原始程序1中的弱点的方法,如图3中所示。
[0066] 图3中所示的根据第二实施例的方法是图2中所示的根据第一实施例的方法的扩展。因此,下面仅详细描述附加的步骤S4和S5。
[0067] 只要在步骤S3中没有发现弱点,就重复步骤S1至S3。每当执行步骤S1至S3时,使用不同的输入数据以便优化弱点识别。
[0068] 如果在步骤S3中识别出弱点,则在步骤S4中向系统7的用户提供指示已识别出弱点的警告信息。即,测试程序2使用测试功能5发布警告信息,并将所述警告信息发送给用户。
[0069] 警告信息包括与所识别的弱点相关的日志条目以及针对其识别出弱点的输入数据D。用户在接收到警告信息时对其进行分析,并采取适当的措施来解决该弱点。
[0070] 在步骤S5中,鉴于识别出的弱点,对原始程序1和测试程序2进行更新。原始程序1和测试程序2的更新由用户发起。对原始程序1和测试程序2相同地进行更新。即,对原始程序1和测试程序2的代码进行校正,使得原始程序和测试程序2不再示出检测到的弱点。因此,在步骤S5中,对原始程序1和测试程序2进行改进以便具有更少的弱点。
[0071] 图4示出了根据一个实施例的用于识别原始程序1中的弱点的设备10。设备10包括可以以软件实现的执行实体11、获取实体12和确定实体13。
[0072] 执行实体11被配置为在预定的运行时环境3中对相同的输入数据D并行地执行原始程序1和测试程序2。获取实体12被用来获取测试信息。此外,确定实体13可以基于测试信息与预定弱点信息的比较来确定原始程序1是否具有弱点。
[0073] 设备10可以执行鉴于图1和图2所描述的用于识别原始程序1中的弱点的方法。
[0074] 尽管已经根据优选实施例描述了本发明,但是对于本领域技术人员而言显而易见的是,在所有实施例中修改都是可能的。例如,由原始程序1和测试程序2执行的预定功能不限于鉴于图1所描述的那些。此外,测试功能5不一定是测试程序2的一部分,而是可以作为单独的程序/功能性而被提供。测试信息可以是与测试程序2的执行相关的任何类型的信息,例如,测试程序2的部分代码的执行时间。此外,可以同时且动态地执行步骤S1、步骤S2和步骤S3,从而在执行程序1、2时识别出弱点。此外,设备10的实体11、实体12和实体13可以被实现为硬件实体。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈