用于识别至少一个软件包中的潜在数据泄露攻击的方法与流程

文档序号:37500373发布日期:2024-04-01 14:08阅读:13来源:国知局
用于识别至少一个软件包中的潜在数据泄露攻击的方法与流程

本发明涉及软件包的检查以防止数据泄露攻击。本发明还涉及一种计算机程序以及一种用于数据处理的设备。


背景技术:

1、众所周知,在使用公开可用的软件包时数据泄露攻击(data exfiltrationattacks)是一种严重风险。定期就知道发生了针对软件供应链的攻击(software supplychain attacks),在这些攻击中已知的软件包(例如python包、php包、ruby包或rust包)受到操纵,以从开发人员或用户的系统中提取敏感信息。

2、操纵软件包可能会导致数据泄露。这意味着诸如开发人员的环境变量的敏感数据(可能包括登录数据和登录密钥)将被传输到外部服务器。在迄今为止已知的数据泄露攻击的情况下,通常在受到操纵的软件包的初始化期间收集所有环境变量并发送到外部服务器。

3、因此,通过审核、验证和渗透测试(pentesting)检查应用的安全性通常不再足以识别和防止数据泄露攻击。更糟糕的是,应用所使用的软件包形式的任何外部依赖性都可能带来数据泄露的风险。然而一般来说,尤其是在安全关键的应用中,例如对于诸如家用电器或机器人的设备的软件(固件),期望采取特殊的预防措施来避免这种攻击。


技术实现思路

1、本发明的主题是具有权利要求1的特征的方法、具有权利要求10的特征的计算机程序以及具有权利要求11的特征的设备。本发明的进一步的特征和细节从相应的从属权利要求、说明书和附图中得出。在此,结合根据本发明的方法描述的特征和细节当然也结合根据本发明的计算机程序和根据本发明的设备适用,反之亦然,从而关于本公开可以总是相互参考本发明的各个方面。

2、在此,该方法用于识别信息技术领域中的潜在的攻击,具体地说是用于识别至少一个软件包中的潜在的数据泄露攻击。在这种关联系下,“潜在”意味着数据泄露攻击可能尚未发生并且可以通过根据本发明的方法来防止。当然,这也应当理解为识别出可能已经发生的攻击,然后可以基于该识别来采取对策。还可以理解为仅识别数据泄露攻击的概率和/或危险。

3、在根据本发明的方法中可以规定,优选地自动地和/或通过计算机和/或先后地和/或重复地和/或连续地执行以下步骤:

4、-例如基于软件包的版本历史和/或由软件包更新的发布触发地跟踪(tracking)对软件包的至少一个改变,优选地是软件包的代码的改变和/或软件包的更新,以及

5、-对经过改变的软件包检测适合于数据泄露的操纵,优选地以用于基于检测到的操纵来识别所述潜在的数据泄露攻击。

6、这样做的优点是可以识别出潜在的数据泄露攻击,必要时甚至可以及时阻止。根据本发明的方法在此情况下提供了在软件包的整个生命周期期间使用对这种攻击的连续跟踪、检测以及必要时预防的组合的可能性。此外可以想到,可以借助于识别和预防策略的指南来进行细粒度控制。

7、根据本发明的方法例如用作将软件包分发到至少一个设备(“rollout,推广”)之前的上游步骤。使用经过改变的软件包的设备例如是家用电器或机器人或车辆或用于机器的控制装置等。经过改变的软件包优选地是更新的软件,因此代表新的软件版本。然而,假设除了更新之外,改变潜在地也可能包括有害的操纵。

8、根据进一步的步骤,响应于操纵的检测,还可以执行预防(即,预防数据泄露攻击),所述预防包括至少一种合适的预防措施,以用于仍然防止数据泄露攻击。这可以例如包括防止推广,即防止将软件包分发到至少一个设备。

9、本发明的基本思想是,在数据泄露攻击中,所涉及的软件包的版本历史经常显示异常。例如,软件包可能已经多年不再更新并且突然以新版本出现。在跟踪的范围中,可以通过版本管理的监视来检测这种异常。

10、根据本发明的方法特别用于自动识别和/或防止外部软件包中的潜在数据泄露攻击,所述外部软件包例如是用诸如pip、npm、gem等包管理系统提供的软件包。

11、如果跟踪至少包括以下步骤以识别源代码改变形式的所述软件包的至少一个改变,则可以在本发明的范围内实现进一步的优点:

12、-基于软件包的版本管理、优选地基于版本管理的版本历史来识别所述至少一个改变,其中为此经由网络、特别是互联网来访问所述版本管理。

13、例如,github是基于网络的用于软件开发项目的版本管理服务。通过这种服务可以透明地跟踪更新后软件包代码的改变。

14、此外,在本发明的范围内可以规定,所述检测包括以下检查方法中的至少两种:

15、-基于签名的检查,其中在经过改变的软件包中搜索至少一种代码模式(也称为签名),其中所述至少一种代码模式可以特定于数据泄露,

16、-动态检查,其中执行不同版本的软件包并将这些执行进行相互比较,

17、-基于清单的检查,其中基于预定义的清单来检查所述经过改变的软件包,其中所述清单可以包括软件包的允许的功能和/或允许的输出连接的列表,

18、-异常值检测,其中使用诸如至少一个人工神经网络的经过训练的模型来检测操纵,

19、-基于模型的检查,其中执行所述软件包并且可以基于预定义模型来检查该执行,

20、其中优选地所述检测的检测结果表明操纵,优选地通过存在所述操纵和/或适合于数据泄露的概率说明来表明。

21、根据本发明的方法在此有利地是灵活的、可扩展的并且与工具和方法无关,即,可以毫无问题地使用其他识别方法或将其他识别方法添加到上述检查方法中。

22、软件包的相应执行可以例如通过至少一个数据处理设备和/或设置在所述至少一个数据处理设备上的操作系统和/或例如在网络服务器上的解释器和/或在沙箱中执行。在此,沙箱可以表示操作系统和/或软件环境和/或it环境和/或所述数据处理设备中的隔离区域,在该隔离区域内任何措施都不会对外部环境产生影响。这例如可以是单独的操作系统和/或虚拟系统。带有所述软件包的软件与系统的其余部分隔离,近似于被放置在沙箱中,在所述沙箱中一方面所述软件不可能造成任何损害,另一方面可以记录该软件的影响。

23、另外,在本发明的范围内可以想到的是,在检测时进行至少一次基于签名的检查,所述基于签名的检查可以至少包括以下步骤:

24、-提供至少一种代码模式,特别是签名,所述至少一种代码模式特定于数据泄露并且为此例如已被手动预定义,并且优选地表征适合于启动输出网络连接的功能和/或另外的软件包,

25、-在所述经过改变的软件包的源文本中搜索所述至少一种代码模式,

26、-基于所述搜索的结果来确定检测结果。

27、这样做的优点是可以借助于有害的行为已知的这种签名以高可靠性识别出对所述软件包的有问题的操纵。

28、此外可以规定,在检测时进行至少一次动态检查,所述动态检查至少包括以下步骤:

29、-选择所述经过改变的软件包的至少两个不同的、特别是彼此相继的或随机的版本,优选地基于所述版本管理系统,

30、-执行不同的版本,优选在沙箱环境中,

31、-捕获版本的执行的行为,其中所述行为优选地包括产生输出网络连接,

32、-将捕获的不同版本的行为相互比较,

33、-基于所述比较来确定检测结果。

34、该执行可以例如包括以下软件执行,为了该执行将该软件包连同另外的软件包一起使用。在此有可能建立意外的和/或对于所述软件包而言非典型的网络连接。然后可以将该行为识别为恶意行为,该恶意行为表明适合于数据泄露的操纵。

35、如果在检测时进行至少一次基于清单的检查,则可以实现本发明范围内的进一步的优点,所述基于清单的检查至少包括以下步骤:

36、-提供预定义的清单,所述清单包括所述经过改变的软件包的允许的功能和/或允许的输出连接的列表,优选地以基于文本的文件和/或结构化文件的形式,例如xml(可扩展标记语言)、yaml或json(javascript对象表示法),其中所述清单可以被设计为机器可读的,

37、-基于所提供的清单检查所述经过改变的软件包,其中该检查包括静态分析,特别是将源文本与清单进行比较,和/或包括动态分析,优选地是将捕获的所述经过改变的软件包的执行的行为与清单进行比较,

38、-基于所述检查来确定检测结果。

39、为了捕获所述行为,软件包可以例如在沙箱中执行并记录所述行为。所述清单可以例如事先已手动预定义,因此对应于软件包的行为的预给定规范。

40、此外可以想到的是,在检测时进行至少一次异常值检测,所述异常值检测至少包括以下步骤:

41、-基于不同版本的软件包来训练模型,特别是分类器和/或至少一个人工神经网络,

42、-应用经过训练的模型,其中将经过改变的软件包作为所述经过训练的模型的输入,

43、-基于所述经过训练的模型的输出来确定检测结果。

44、在此情况下,因此不同版本的软件包可以作为训练数据用于所述训练,以实现基于机器学习的操纵检测。

45、根据本发明的有利扩展可以规定,在检测时进行至少一次基于模型的检查,所述基于模型的检查至少包括以下步骤:

46、-提供所述软件包的模型,

47、-执行所述经过改变的软件包,优选在沙箱环境中,

48、-捕获所执行的软件包的行为,其中该行为优选地包括产生输出网络连接,

49、-将捕获的行为与提供的模型进行比较,

50、-基于所述比较来确定检测结果。

51、该模型可以例如对软件包的行为进行建模,特别是关于输出网络连接,但必要时也关于其他标准,例如处理器和存储器利用率或响应时间。该模型可以是可执行模型,例如软件包的可执行版本,必要时也以其他编程语言或在其他抽象层上实现,例如作为纯行为模型。此外,该模型还可以包括单元测试的集合,这些单元测试包含每个输入的预期输出。替代地或附加地,所述模型还可以包含执行软件包时的预期副作用的描述。例如,该模型可以包含关于以下方面的文本描述(或任意结构化符号):将建立哪些输出连接或对于该软件包的功能预期什么样的执行时间或什么样的功耗(例如,作为所检查的软件包的各个方法之间的比较/关系)。由此可以通过基于模型设定期望的行为来进行可靠的检测。

52、还可以想到的是,在检测之后启动预防,在所述预防中执行以下步骤的至少一个:

53、-撤回针对目标系统的软件包更新,在所述目标系统上使用或打算使用所述软件包,

54、-停用所述目标系统,

55、-限制所述目标系统的运行。

56、所述目标系统在此例如是被分发了所述软件包的上述设备。

57、本发明的主题还涉及一种计算机程序,特别是一种计算机程序产品,包括指令,所述指令在该计算机程序由计算机执行时促使所述计算机执行根据本发明的方法。因此,根据本发明的计算机程序带来了与参考根据本发明的方法详细描述的相同的优点。

58、作为计算机可以例如设置执行所述计算机程序的数据处理设备。所述计算机可以具有用于执行所述计算机程序的至少一个处理器。还可以设置非易失性数据存储器,在所述非易失性数据存储器中存储所述计算机程序并且所述处理器可以从所述非易失性数据存储器读出所述计算机程序以供执行。

59、本发明的主题还可以涉及一种计算机可读存储介质,其包括根据本发明的计算机程序。所述存储介质例如被构造为数据存储器,例如硬盘驱动器和/或非易失性存储器和/或存储卡。所述存储介质可以例如集成到所述计算机中。

60、本发明的主题还涉及一种用于数据处理的设备,优选地是计算机,所述设备被设置为执行根据本发明的方法。

61、另外,根据本发明的方法还可以作为计算机实现的方法来执行。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1