具有防止网络犯罪威胁的安全措施的方法和计算机与流程

文档序号:19012070发布日期:2019-10-30 00:34阅读:257来源:国知局
具有防止网络犯罪威胁的安全措施的方法和计算机与流程

本发明涉及根据权利要求1的前序部分所述的用于保护计算机以防网络犯罪威胁的方法,以及根据权利要求7的前序部分所述的具有防止网络犯罪威胁的完全措施的计算机。



背景技术:

连接到数据网络、在此特别是互联网的所有类型的计算机通常都配备有防止网络犯罪威胁的安全措施。网络犯罪威胁存在多种形式,尤其是作为计算机病毒、计算机蠕虫、特洛伊木马、后门程序、间谍软件、恐吓软件、勒索软件等。这些威胁通常也归入“恶意软件”这一通用术语。

所提到的威胁或攻击通常涉及单个程序、例程、运行库或其他可执行程序代码,其在下文中将包含在通用术语“模块”下。此类模块可能具有相应的安全漏洞,有时称为“漏洞利用(exploit)”。一旦这些安全漏洞变得已知或者有可用的专用于这些安全漏洞的恶意程序,根据经验,受影响计算机已经暴露于越来越多的试图利用这些漏洞的攻击之下。

在工业自动化装置中,其中使用的数据处理设备,特别是可编程逻辑控制器,在第一代产品中没有连接到因特网,也就是说它们以数据技术方面的孤岛式运行来运行,因此只有很少或没有针对“外部的”威胁提供安全措施;仅提供了本地安全措施、例如通过密码进行访问保护等。随着网络化自动化系统、物联网(工业物联网iiot)(通常概括到通用术语“工业4.0”下)的广泛引入,工业控制系统(ics)也越来越多地受到网络犯罪威胁的影响。因此,还为工业部件提供了针对此类威胁的安全措施。

就“易受攻击”的软件或模块而言,通常更改防火墙或其他过滤器中的设置是不够的,而唯一的措施通常是停用或卸载受影响的模块,直到模块的改进版本可用并且可以安装。通常,越来越多地使用安全措施,这提高了针对网络犯罪威胁或“恶意软件”的安全性,但是以牺牲一般计算机、特别是工业自动化系统的性能和可用性为代价。在模块的停用方面,这意味着应用程序和使用这种模块的操作系统部分不再可用,并且利用程序或操作系统模块提供的相应功能不再可用,导致功能和舒适性受到相应限制。然而,另一方面,重要的核心功能不能或不应该被关闭,因此与安全重大相关的模块的停用在具体情况中是不可行的,或者至少将伴随有计算机可用性的不可接受的损失。这导致了,用于工业环境中的计算机的保护性或防御性措施总是在安全级别(securitylevel)一方与适用性(性能、可用性、舒适性)一方之间的折中方案。

这样做的缺点在于,由于要选择折中方案,通常既不能最优地设定性能/可用性/舒适性也不能最优地设定安全性。

当例如通过媒介或者其他报告获知有针对性的威胁时,过去经常通过手动控制复杂的措施、例如卸载易受攻击或“易受侵害”的软件以及其他措施来解决这个问题。

然而,这种方法只是响应性的,这意味着通常只是在观察和认识到特定威胁或攻击后很长时间才采取某些措施,而且选择性较低,因为通常“整个程序”已经“出于预防原因”被卸载了。



技术实现要素:

因此,本发明的一个目的是更快、更容易并目标准确地选择在计算机上使用的防止网络犯罪威胁的安全措施。

根据本发明的解决方案的核心思想是,为计算机以及在此尤其是为工业自动化系统的组件(ics)管理多个安全级别(securitysettings),其中安全级别分别定义,计算机或自动化装置或相关的计算机控制的自动化组件的哪些功能在相应的安全级别中是必不可少的,并且哪些功能是可选的,也就是说如有需要允许停用的。提供相应功能或功能性的应用程序和操作系统部分在此由各个模块构成,特别是可执行程序、程序部分或运行库(dll),其中,各个模块也可以是多个应用程序和操作系统的多个部分的组成部分。只要其中一个模块存在风险,例如通过发布关于相应模块的安全警告,那么根据本发明该模块以及与之相关的应用程序或与之相关的操作系统的部分仅在不涉及在目前安全级别下不可或缺的功能的情况下被停用。在严格的安全级别的情况下,这仅适用于那些与核心功能相对应的功能,这些功能在任何情况下都不应该失效。在例如可适用于系统测试或不太重要的单元的情况的较低的安全级别中,可以大范围地封锁功能、特别是舒适功能以防止停用,使得即使在发生威胁时也可以不停用这种舒适功能和其他功能。由此可以根据通过安全级别来控制在发生威胁时出现的功能或舒适性的损失。

该目的尤其通过根据权利要求1的方法和根据权利要求7的计算机来实现。

在此提出了一种用于保护计算机、特别是工业自动化组件以防网络犯罪威胁的方法,其中,在计算机上安装有多个应用程序,其中,应用程序分别由多个模块、特别是dll和其他可执行程序组件构成,并且其中,对于计算机的不同功能,需要不同的应用程序和模块。为计算机定义至少两个安全级别,为每个安全级别定义如下的功能,该功能在相关网络犯罪威胁的情况下不允许被停用和/或该功能在相关网络犯罪威胁的情况下允许被停用,其中,根据对于受网络犯罪威胁影响的模块中的至少一个的当前网络犯罪威胁的信息来识别受网络犯罪威胁影响的功能,其中,根据当前的安全级别选择已识别功能和模块中的允许停用的功能和模块,并且其中,所选择的模块被封锁并且受网络犯罪威胁影响的功能被停用。由此,可以根据相应的网络犯罪威胁并根据计算机的安全级别来动态地断开可选的软件模块,因此,计算机的可用功能范围总是能够以最优的方式来匹配于威胁情况和相应的当前运行条件,该目的还通过一种计算机,特别是工业自动化组件来实现,其具有防止网络犯罪威胁的安全措施,其中,应用程序分别由多个模块,特别是dll和其他可执行程序组件构成,并且其中,需要不同的应用程序以及模块用于计算机的不同功能。为计算机定义至少两个安全级别,其中,为每个安全级别定义如下的功能,该功能在相关网络犯罪威胁的情况下不允许被停用和/或功能在相关网络犯罪威胁的情况下允许被停用,以及计算机被配置为,接收对于受网络犯罪威胁影响的模块中的至少一个的当前网络犯罪威胁的信息,并且根据该信息识别受网络犯罪威胁影响的功能,根据当前的安全级别选择已识别功能和模块中允许停用的功能和模块,并且其中,所选择的模块被封锁并且受影响的功能被停用。由这样的计算机能够实现关于方法方面所描述的相同的优点。

在从属权利要求中给出了本发明的有利实施例,其中它们的特征和优点可以单独地实现,也可以彼此有意义地组合实现。

当同一个模块由不同的应用程序和/或计算机的操作系统使用并对于提供计算机的多个不同功能而言是必要的时,使用该方法是有利的。在这种情况下有利地,检查受威胁影响的模块是否用于至少一个不可停用的功能或与之关联的应用程序和/或操作系统部分。如果是这种情况,则不能停用或卸载模块本身,但是,可以有利地停用允许在当前有效安全级别下停用的功能以及与这些功能相关联的应用程序或操作系统部分。因此,虽然受影响的模块本身没有被删除或封锁,但其使用受到限制,这不能完全消除整个计算机对模块的漏洞,但可以减少。

在许多情况下,模块有不同的版本或版次,其中,不是每个版本或每个版次都同样容易受到攻击或具有安全技术方面的缺点。在这种情况下,当利用关于网络犯罪威胁的信息,还为模块提供相应的模块的特定版本或版次的信息时,则是有利的。只有在安装了模块的危急版本时,才根据本发明执行模块或相应的应用程序、操作系统部分和所得到的功能的停用。有利地,在这种情况下,特别是在相应模块的网络或制造商侧搜索较新的、可能没有受到威胁的模块版本,并且可能通过更好的版本替换已安装的安全危急模块。

类似于通过相应应用程序提供的应用程序级功能并且其中应用程序可以包含不同的模块,这些或其他模块也可以是操作系统的组成部分。在这种情况下,如果受影响模块存在漏洞,如果它不是核心功能并且根据当前安全级别相应的功能不是必需的,则也可以停用操作系统的相应功能。因此,有利地,安全级别的定义还可以包括模块化操作系统的相应功能。这同样适用于由操作系统的部分以及应用程序形成的计算机的功能。

对运行中的模块受网络犯罪威胁影响的认识的反应可能导致不同的响应,但响应也可能取决于安全级别。例如,在不太严重的情况下,可以仅停用相应的模块,即不再使用的模块。但是在此还要指出的是,例如通过更改文件名或在文件名中附加相应的注释将相应的模块标记为关键模块。例如,还可以将这样的模块移动到单独的存储区域中,即将其复制到硬盘的单独区域中,或者使模块的程序代码不可执行,例如通过加密程序代码。如果稍后证明模块的威胁不再存在,例如,因为适当的过滤器被放置在防火墙中或采取了其他措施,这些措施可以撤销。在稍后转换安全级别的情况下,例如再次需要启用模块的情况下,也可以撤销相应的措施,例如,再次需要启用模块。对于这种情况,当然,最终不会删除受影响计算机的相关模块。相反,也可以将必须继续根据当前安全级别运行的模块标记为相关的,或在备注存储器中输入相应的备注,以便可以在安全级别发生变化后立即再次检查,受影响的模块是否还能或还必须不被关闭或停用。

附图说明

下面将参考附图说明根据本发明的方法的实施例。该示例还用于解释根据本发明的计算机。该图是配备有多个模块化应用程序和模块化操作系统并具有用于执行该方法的装置的计算机(工业部件)的示意图。

唯一的附图以示意图的形式示出了作为计算机的工业自动化组件,其具有各种模块(软件模块)和用于执行根据本发明的方法的设备。

具体实施方式

在该图中,示出了计算机id(工业设备),其上安装有操作系统os(operatingsystem)和两个应用程序aw1、aw2。操作系统os和应用程序aw1、aw2基本上由该简化示例中的模块m11、...、m36组成,其中,这些模块m11、...、m36例如是运行库(dll),可执行文件(“excel文件”)。计算机id还具有威胁注册单元vt(漏洞跟踪器)和安全控制器smo(安全模式编排器)。

假设计算机id具有不同的功能f1、f2,其中,每个功能f1、f2使用多个应用程序aw1、aw2以及进而用于执行相应功能f1、f2的多个模块m11、...、m36。功能f1、f2也同时使用优选模块化操作系统os的某些部分。同一模块m11、...、m36可以由多个应用程序aw1、aw2使用,并且同时或替代地也可以由操作系统os使用。对于该示例,可以假设功能f1是工业控制应用,利用该应用来控制工业过程或工业自动化过程等。功能f2例如可以是电子邮件程序,计算机id的用户或应用程序aw1、aw2中的一个应用程序可以与之通信。

在该图的简化实施例中,例如,仅将模块m11、m12配属给应用程序aw1,而将其他模块m21、m22配属给应用程序aw2。此外,应用程序aw2还访问模块m11,模块m11也由应用程序aw1使用。在此,模块m11实际上是在计算机id上实际安装两次或者一次并没有关系,但由两个应用程序aw1、aw2使用。

模块m11、...、m36的实例例如可以是加密模块(例如,openssl)或标准库(例如,glibc-gnu-c库)。通常,软件开发人员或网络安全组织会定期发现和发布软件模块的安全漏洞。某些威胁也列在公共目录中(例如,国家漏洞数据库)。

图中所示的计算机id显示了其他的两个模块,即威胁注册单元vt(“漏洞跟踪器”)和安全控制器smo(“安全模式编排器”)。

威胁注册单元vt列出由计算机id使用的所有模块m11、...、m36的列表,即应用程序aw1、aw2,并且优选地还包括操作系统os。单元vt还监视或注册这些模块m11,…,m36上可用的关于网络犯罪威胁的信息(漏洞)。只要有新模块添加到计算机,该列表就会更新,例如由于安装了其他的功能。相反,即使在卸载特征或功能f1、f2时,也会调整列表中的信息。

例如,威胁注册单元vt可以周期性地从计算机id或应用程序aw1、aw2的制造商或者从先前描述的外部数据库之一(例如,国家漏洞数据库)获得关于安全技术引人注目的模块m11、...、m36的信息。还可以设置有用户界面,使得用户可以手动输入或编辑威胁信息等。在一个实施例中,单元vt还可以自动地将安全值或威胁值(危急度分数)分配给各个模块m11、...、m36,例如基于所接收的信息或基于自己的观察,其中,自己的观察例如确定模块的偏离,特别是增加的通信行为或模块的异常存储器访问。基本上,威胁注册单元可以具有在模块m11、...、m36中的每一个上关于当前网络犯罪威胁的程度的判断。此外,在一个实施例中,威胁注册表vt还可以接收或已经包括如何运行受威胁模块的指令,例如在高安全风险时“卸载”并且以中等风险时“限制使用”或“限制对存储器的访问”等等。

安全控制器smo(安全模式编排器)为计算机id实施多个安全级别,例如安全级别s1和安全级别s2。对于每个安全级别s1、s2,控制器smo列出如下的功能f1、f2以及相应模块m11、...、m35的列表,这些功能在相应的安全级别s1、s2有效时允许被停用,或者反之不允许被停用。此列表还可以通过网络由制造商或中央管理员“在线”调整,或通过上述可选用户界面手动调整。smo安全控制器可以访问威胁注册单元vt的信息。基于该信息,安全控制器smo确定哪些功能f1、f2受对于模块m11、...、m36已知的当前威胁影响。在此,作为二进制信息的替代(受影响:是或否),也可以处理渐变值(威胁级别:x%),其中,应该为关于可以使用模块的决定来定义阈值。根据当前设置的安全级别s1、s2,(如有需要,它们也各自定义了自身的阈值,然后安全控制器smo决定允许将那些功能与相关的模块断开,之后安全控制器smo要求准许断开的应用aw1、aw2以及操作系统os的相应部分停止操作,并随后停用“易受攻击”的模块。

在一个可选实施例中,安全控制器smo还可以基于全局可用的网络安全信息(cyber-securitylevelindicator,例如,symantecthreatcon)动态地设置安全级别s2、s2。

作为示例,可以假设计算机id是具有操作系统os和作为功能的控制程序的plc(可编程逻辑控制器)。控制程序是控制器plc的核心功能。此外,控制器plc上的用户程序可以提供另一个功能,该功能从控制程序获取报警和事件,并通过加密的电子邮件通信将它们发送到用户的外部电子邮件地址。例如,该用户程序可以使用众所周知的openssl模块进行加密。

进一步假设所描述的控制器在生产设施中运行,并且控制器plc的所有功能和程序在安全级别s1中被启用。进一步假设,被设置为发送加密电子邮件的用户程序是可选功能,并且可以在安全级别s2中被停用。应当注意,这里描述的安全级别是任意选择的,并且在实际实现中可以完全不同地定义。

下面描述了对计算机id执行该方法所执行的步骤,假设此处控制器在安全级别s2上运行。

在第一步骤中,威胁注册单元vt接收关于当前威胁的信息,在该实施例中,该信息涉及用于加密电子邮件通信的开放ssl模块。

在下一步骤中,安全控制器smo接收在威胁注册单元vt中标记为受威胁的模块列表(以下称为l1)。这包括上述openssl模块。

在下一步骤中,安全控制器smo基于列表l1确定与安全关键模块一起工作的功能列表(以下称为列表f1)。包括使用openssl模块的电子邮件服务。

在下一步骤中,安全控制器smo基于列表f1并基于当前有效的安全级别来决定可以关断哪个模块(s2),并且例如将该列表存储在列表f2中。

在下一步骤中,安全控制器smo请求应用程序和/或操作系统os从列表f2中停用功能;这将停止电子邮件通信应用程序,然后封锁或卸载受影响的危险模块,包括openssl模块。

因此,与该实施例相关的是,在检测到对开放ssl模块的安全性严重威胁的情况下,只要该模块对于功能来说不是必须的,该功能在当前的安全级别下不是必不可少的(在该情况中也就是核心功能),控制器将其停用和/或卸载。因此,如果在所示的示例中,模块openssl对于控制器plc的核心功能也是必需的,则应封锁用户程序的电子邮件功能,因此限制使用openssl模块,但在这种情况下,openssl模块不允许被完全封锁或完全卸载。在这种情况下,危及安全的威胁不能由当前易受攻击的模块完全阻挡,但至少通过限制模块的使用来减少。

如果在稍后时间点用于校正openssl模块的“安全补丁”可用并被使用并因此消除对控制器plc的威胁,则可以重新启用openssl模块并恢复控制器plc的全部功能。

在一个有利的设计方案中,计算机id以及由此描述的模块之一、特别是模块smo主动地搜索不受安全漏洞威胁的模块openssl的较新版本,并确保安装该新版本。

原则上,当相应的模块已知有安全重大相关的威胁时,上述方法适用于动态地停用或隔离可选软件模块,即对于特定操作模式或特定安全级别不一定需要的软件模块或者类似。

安全更新和所谓的安全补丁的应用以及相应软件组件的更新是一个复杂的过程,通常很少执行,因为这样的系统维护很复杂并且经常伴随着业务中断。在这种情况下,在现有技术中,许多自动化系统长时间不处于当前的安全水平。因此,这些系统相对容易受到安全风险的影响。随着诸如工业物联网(iiot)等现代范例的引入,越来越多的自动化系统和工业计算机连接到因特网,这些以前是在与因特网隔离的情况下运行的。此类系统特别容易受到网络犯罪威胁,只要它们不是最新的。

上述方法降低了对这些先前“未修补”系统的攻击的可能性。

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