CN110389867B - 用于自动测试硬件和软件系统的方法 - Google Patents
用于自动测试硬件和软件系统的方法 Download PDFInfo
- Publication number
- CN110389867B CN110389867B CN201811211045.8A CN201811211045A CN110389867B CN 110389867 B CN110389867 B CN 110389867B CN 201811211045 A CN201811211045 A CN 201811211045A CN 110389867 B CN110389867 B CN 110389867B
- Authority
- CN
- China
- Prior art keywords
- threat
- implementing
- components
- benefits
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 147
- 238000012360 testing method Methods 0.000 title claims abstract description 38
- 230000008901 benefit Effects 0.000 claims description 99
- 239000013598 vector Substances 0.000 claims description 55
- 230000009471 action Effects 0.000 claims description 33
- 238000013461 design Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012938 design process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
本文中公开了用于自动测试硬件和软件系统的方法和系统。示例性方法包括:接收描述被设计的系统的架构的形式化架构描述;接收描述对与所述被设计的系统类似的系统的威胁的形式化威胁描述;通过处理器基于所述形式化架构描述建立使用模型;通过处理器基于所述形式化威胁描述建立威胁模型;通过处理器通过将所述威胁模型与所述使用模型相比较来确定所述系统的使用的种类;以及通过处理器基于所述使用的种类确定所述系统的组件。
Description
技术领域
本发明总体涉及测试系统,并且更具体地涉及用于自动测试硬件和软件系统的方法和系统。
背景技术
硬件和软件系统及复合体的架构通常被设计为实现先前由在硬件-软件系统中有利益或对硬件-软件系统关注的相关方(例如利益相关者)制定的一个或多个既定目标。根据行业标准,各方的利益被表达为权益或问题。关于系统的利益的示例为:功能性、可行性、适用性、系统特性、系统属性、已知限制、结构、行为、运行、资源利用、可靠性、功能安全性(例如,如在行业标准中针对电气、电子、可编程电子、安全相关系统的安全性所定义的)、数据完整性、按需保证的可用性等等。
在设计过程中,仅硬件-软件系统的授权用户(也被称为权限持有者)被视为相关方。这意味着仅将被允许在系统中执行特定操作以实现其利益、或其利益需要被标准(诸如建立对于功能安全性的要求的标准)的授权所考虑的用户(团体、组织)为相关方。因此,创建的系统满足授权用户的要求和功能安全性要求,但是不保证创建的系统的信息安全性,其中,信息安全性包括数据安全性、数据保密性、个人数据(隐私)的安全性等。在这些系统中,后来经常使用附加部件来解决信息安全性,这些部件经常最初不由架构提供,并且在部件使用期间、在授权用户利益的实现和功能安全性要求的遵守具有显著反映。也可以通过由架构提供的部件来保证信息安全性,而不考虑授权用户的利益和功能安全性要求也可能在后来使用系统时对授权用户利益的实现和功能安全性要求的遵守产生影响。
因此,技术问题在于如下事实:系统的架构保证达成由授权用户规定的目标并遵守功能安全性要求,但不保证信息安全性。为了达到信息安全性的目标,采用架构未提供的附加部件,或采用由架构提供的部件,而如在第一实例中,未考虑授权用户的利益和功能安全性要求。
发明内容
本发明描述了用于自动测试硬件和软件系统的方法和系统,以便检测阻止达成信息安全性目标的漏洞(将授权用户的利益和功能安全性的要求考虑在内)。
所公开的方法和系统的技术效果在于,在自动测试硬件和软件系统的过程中保证易受攻击的软件和硬件的检测,其中,漏洞的存在妨碍达成信息安全性目标。在考虑授权用户的利益和功能安全性要求的情况下执行测试。通过使用威胁模型对系统进行测试以及将该威胁模型与使用模型相比较来实现技术效果,其中,比较结果揭示了被测系统的组件/要素易受如下项的攻击:
●系统的一种未经授权的使用(在后文中,指示的一种未经授权的使用);
●针对系统的一种使用而实现威胁的方法(在后文中,指示的实现威胁的方法),该种使用反映违反者和授权用户二者的、但由各个相关方以不同方法实现的利益;
●在系统上的动作矢量(在后文中,指示的在系统上的动作矢量),该动作矢量用于针对系统的一种使用而实施实现威胁的方法,该种使用反映违反者和授权用户二者的且以类似方法实现的利益。
根据一个方面,提供一种自动测试硬件和软件系统的示例性方法。所述方法包括:接收描述被设计的系统的架构的形式化架构描述;接收描述对与所述被设计的系统类似的系统的威胁的形式化威胁描述;通过处理器基于所述形式化架构描述建立使用模型;通过处理器基于所述形式化威胁描述建立威胁模型;通过处理器通过将所述威胁模型与所述使用模型相比较来确定所述系统的使用的种类,以及通过处理器基于所述使用的种类确定所述系统的组件。
在所述方法的另一方面中,所述使用模型包括如下项中的一者或多者:反映授权用户的利益的所述系统的使用的种类、实现所述使用所利用的所述系统的要素、或利用所述要素实现该种类的使用的方法。
在所述方法的另一方面中,所述威胁模型包括如下项中的一者或多者:威胁的种类,其中,所述威胁为反映违反者的利益的所述系统的未经授权的使用;实现该种类的威胁所利用的要素;利用所述要素实现所述威胁的方法;或在所述系统上的执行实现所述威胁的方法的动作矢量。
在所述方法的另一方面中,所述系统的所述使用的种类反映如下项之一:仅违反者的利益,违反者和授权用户二者的、但由各个相关方以不同方式实现的利益,或违反者和授权用户二者的且以类似方式实现的利益。
在所述方法的另一方面中,反映授权用户的利益的所述系统的所述使用的种类以及用于实现该种类的使用的方法满足功能安全性要求。
在所述方法的另一方面中,所述系统的所述组件易受如下项之一攻击:所述系统的一种未经授权的使用;针对所述系统的一种使用而实现威胁的方法,该种使用反映违反者和授权用户二者的、但由各个相关方以不同方法实现的利益;或在所述系统上的动作矢量,所述动作矢量用于针对所述系统的一种使用而实施实现威胁的方法,该种使用反映违反者和授权用户二者的且以类似方法实现的利益。
在所述方法的另一方面中,当所述系统的组件不限制指示的所述系统的一种未经授权的使用时,所述组件易受该种使用的攻击,其中,如果所述组件不限制指示的所述实现威胁的方法,则所述组件被认为易受指示的所述实现威胁的方法的攻击,其中,如果所述组件不限制指示的在所述系统上的所述动作矢量,则所述组件被认为易受指示的在所述系统上的所述动作矢量的攻击。
在所述方法的另一方面中,对该种使用、指示的所述实现威胁的方法、或指示的所述动作矢量的限制的不可能性由实现被测试的所述系统的要素的所述组件的配置的功能能力来决定。
在另一方面中,所述方法还包括:基于所述使用模型与所述威胁模型的所述比较选择硬件和软件组件,用以实现限制所述系统的该种未经授权的使用、限制所述实现威胁的方法、且限制在所述系统上的所述动作矢量的所述系统要素。
在所述方法的另一方面中,所述形式化架构描述根据公认的标准来产生且至少包含:包括系统组件和在所述系统组件之间的链接的系统要素、以及授权用户关于所述系统的利益。
在本发明的另一方面中,提供一种用于自动测试硬件和软件系统的系统,所述系统包括硬件处理器,所述硬件处理器被配置成:接收描述被设计的系统的架构的形式化架构描述;接收描述对与所述被设计的系统类似的系统的威胁的形式化威胁描述;基于所述形式化架构描述建立使用模型;基于所述形式化威胁描述建立威胁模型;通过将所述威胁模型与所述使用模型相比较来确定所述系统的使用的种类;以及确定所述系统的易受各个所述种类的使用的攻击的组件。
在本发明的另一方面中,提供一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储用于自动测试硬件和软件系统的指令。所述指令包括:接收描述被设计的系统的架构的形式化架构描述;接收对与所述被设计的系统类似的系统的威胁的形式化威胁描述;基于所述形式化架构描述建立使用模型;基于所述形式化威胁描述建立威胁模型;通过将所述威胁模型与所述使用模型相比较来确定所述系统的使用的种类;以及确定所述系统的易受各个所述种类的使用的攻击的组件。
以上对示例性方面的简要概述用于提供对本发明的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的或主要的要素,也不旨在勾画本发明的任何方面或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述内容,本发明的一个或多个方面包括在权利要求中所描述的且示例性指出的特征。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同具体实施方式一起用来阐述这些示例性方面的原理和实现方式。
图1为根据本发明的示例性方面的用于硬件和软件系统的自动化设计的系统的框图;
图2a示出了根据本发明的示例性方面的使用模型,以及图2b示出了根据本发明的示例性方面的用于被设计的视频监控系统的威胁模型;
图3表示根据本发明的示例性方面的被设计的视频监控系统的示意图;
图4a至图4c表示根据本发明的示例性方面的使用模型和威胁模型的比较结果;
图5表示根据本发明的示例性方面的以模型的形式表达的使用模型和威胁模型的比较结果;
图6表示根据本发明的示例性方面的用于硬件-软件系统和复合体的自动化设计的方法;
图7表示根据本发明的示例性方面的被设计的视频监控系统的变型实现;
图8表示根据本发明的示例性方面的用于自动测试硬件-软件系统和复合体的方法;
图9表示可以用于实现本发明的各个方面的通用计算机系统的示例。
具体实施方式
本文中在用于自动测试硬件和软件系统的系统、方法和计算机程序产品的范畴内描述示例性方面。本领域的普通技术人员能够认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。如下为贯穿本发明使用的一列术语及其定义。
(系统或复合体的)架构为该系统在环境中的基本概念或属性,体现在其要素、关系、及其设计和开发的具体原理上。系统要素至少指的是:系统组件和在系统组件之间的链接,或在复合体的情况下,指在该复合体的系统之间的链接。系统要素可以由硬件和/或软件组件来实现。在系统设计过程中确定硬件和软件的变型实现。
架构描述为用于表达架构的工作产品。在特定方面中,通过统一建模语言(Unified Modeling Language,UML)来形式化该架构描述。根据ISO/IEC/IEEE 42010,架构描述包含在系统的整个生命周期内关于各个相关方的许多应用;形式化的架构描述也被用作用于建模、系统仿真和分析的自动化工具包(诸如CAD)的输入。
系统的利益(可替选地称为关注)为在被设计的硬件-软件系统中关于一个或多个相关方的权益或(一个或多个)问题。
相关方(例如利益相关者)为在系统中有利益的个体、团队、组织、或这些项的群组。
授权用户为构成相关方之一的、被允许在系统中执行特定操作(使用系统)实现利益的用户。
使用模型为授权用户对系统的变型使用的形式化描述。使用模型可以包括如下项中的一者或多者:
●反映授权用户的利益的系统的使用的种类;
●实现该使用所用的系统要素(后文中,要素);
●通过所述要素实现给定种类的使用的方法。
在本发明的一个方面中,使用模型包括上述全部三个要素:反映授权用户的利益的系统的使用的种类、实现该使用所用的系统要素、以及用所述要素实现给定种类的使用的方法。
违反者(未经授权的用户)为构成相关方之一的、没有权限在被设计的系统中执行特定操作以实现其利益的用户。
威胁为可能违反被设计的系统的正常运行且由此直接地或间接地造成损害的潜在事件。对系统的威胁的种类是多种多样的且具有许多类别;在本发明的范畴内,使用根据违反的性质的类别,即:
●违反数据的保密性;
●违反数据完整性/数据的替换;
●违反系统可操作性(包括拒绝服务);
●未经授权干预系统运行;
●等等。
威胁模型为对关于被设计的系统的信息安全性的威胁的形式化描述。威胁模型包括如下项中的一者或多者:
●威胁的种类,其中,该威胁为反映违反者的利益的、系统的未经授权的使用;
●实现给定种类的威胁所利用的要素;
●利用指示的要素实现威胁的方法;
●在系统上执行实现威胁的方法的动作矢量(攻击矢量)。
在本发明的一些方面中,威胁模型包括上文所列项的全部,而在一些方面中,威胁模型可以仅包括上文所列项的一部分。
实现威胁的方法或攻击为违反者在实现对特定种类的安全性的威胁时的动作。对于系统的每个要素,可以以不同方式实现特定种类的威胁,包括其它系统组件的参与。
攻击矢量为由违反者在实现对安全性的威胁时作用于系统的方向或特定方式。在本申请的范畴内,属性“攻击矢量”等同于属性“在系统上执行实现威胁的方法的动作矢量”。定义攻击矢量的特性可以为如下项中的一者或多者:
●攻击的来源或来源组;
●作为攻击的目标的要素或要素组;
●动作的种类;
●动作的手段。
在一些方面中,定义攻击矢量的特性包括上文所列项的全部或一部分。
对于相同的系统或复合体,威胁模型和使用模型在任何方面(除了攻击矢量)可以在形式上彼此没有区别。可以将一个模型与另一个模型区分开来的分类属性为如下事实:使用模型反映了授权用户的利益,而威胁模型反映了违反者的利益。将在下文给出用于实际系统的模型的示例。
在本发明的一个方面中,通过使用有别于其使用模型的威胁模型的系统的设计来解决指出的现有技术中的技术问题。因此,相关方被视为不仅有授权用户、而且还有违反者。授权用户的利益与违反者的利益截然相反,并且系统架构必须提供授权用户的利益的实现,且限制违反者的利益的实现。
所公开的方法和系统的技术效果在于,在硬件和软件系统(或复合体)的自动测试的过程中保证易受攻击的硬件和软件的检测,其中,漏洞的存在妨碍达成信息安全性目标。在考虑授权用户的利益和功能安全性要求的情况下执行测试。通过使用威胁模型来测试系统以及将该威胁模型与使用模型相比较来实现上述技术效果,其中,比较结果揭示了被测系统的组件/要素易受如下项的攻击:
●系统的一种未经授权使用(在后文中,指示的一种未经授权使用);
●针对系统的一种使用而实现威胁的方法(在后文中,指示的实现威胁的方法),该种使用反映违反者和授权用户二者的、但由各个相关方以不同方法实现的利益;
●在系统上的动作矢量(在后文中,指示的在系统上的动作矢量),该动作矢量用于针对系统的一种使用而实施实现威胁的方法,该种使用反映违反者和授权用户二者的且以类似方法实现的利益。
本发明的主题是一种通过自动化设计系统测试硬件和软件系统的方法,其中,CAD模块在其输入端接收被设计的系统(后文中,系统)的架构的形式化描述。然后,基于该描述,CAD模块建立使用模型,包括:反映授权用户的利益的系统的使用的种类;实现该使用所利用的系统的要素(后文中,要素);利用指示的要素实现该种使用的方法。CAD模块还从威胁数据库接收对与被设计的系统类似的系统的已知威胁的形式化描述,以及基于已知威胁的形式化描述,建立与使用模型种类相同的威胁模型,包括:威胁的种类,其中,该威胁为系统的未经授权的使用,其反映了违反者的利益;实现给定种类的威胁所利用的要素;利用指示的要素实现该威胁的方法;在系统上执行实现该威胁的方法的动作矢量。在建立这些结构之后,通过比较方法将威胁模型与使用模型相比较,该比较方法被设计为比较给定类型的模型,以便确定反映如下项的系统的使用的种类:
●仅违反者的利益;
●违反者和授权用户二者的、但由各个相关方以不同方式实现的利益;
●违反者和授权用户二者的且以类似方式实现的利益。
获得了比较结果,揭示了被测系统的要素/组件易受如下项的攻击:
●系统的一种未经授权的使用(在后文中,指示的一种未经授权的使用);
●针对系统的一种使用而实现威胁的方法(在后文中,指示的实现威胁的方法),该种使用反映违反者和授权用户二者的、但由各个相关方以不同方法实现的利益;
●在系统上的动作矢量(在后文中,指示的在系统上的动作矢量),该动作矢量用于针对系统的一种使用而实施实现威胁的方法,该种使用反映违反者和授权用户二者的且以类似方法实现的利益。
如果组件或要素不限制指示的、系统的该种未经授权的使用,则该组件或要素被认为易受指示的该种使用的攻击;如果组件或要素不限制指示的实现威胁的方法,则该组件或要素被认为易受指示的实现威胁的方法的攻击;如果组件或要素不限制指示的在系统上的动作矢量,则该组件或要素被认为易受指示的在系统上的动作矢量的攻击。限制的不可能性由实现被测系统的要素的配置的功能能力或方法来决定。
在特定情况下,CAD在其输入端接收形式化架构描述,该形式化架构描述根据公认的标准来产生且至少包含:系统要素,所述系统要素包括系统组件和在组件之间的链接;授权用户关于系统的利益。
在本发明中,可以认为具有相同目的或至少一个相同要素的系统是类似的。
在特定情况下,反映授权用户的利益的系统的该种使用以及实现该种使用的方法满足功能安全性要求。
在特定情况下,基于模型的比较,选择模块附加地选择用于实现系统要素的硬件和软件,使得这类要素的配置的功能能力或方法:
●限制指示的系统的该种未经授权的使用;
●限制指示的实现威胁的方法;和/或
●限制指示的在系统上的动作矢量。
将某些推荐的要素和/或组件与被测系统的要素和/或组件相比较,并且如果被测系统的要素和/或组件不对应于推荐的要素和/或组件,则认为被测系统的要素和/或组件是易受攻击的。要素和/或组件的比较可以通过比较要素和/或组件的版本或要素和/或组件的类型来完成,并且在给定情况下,如果要素和/或组件的类型或版本不对应于推荐的要素和/或组件,则这些要素和/或组件被认为是易受攻击的要素和/或组件。在另一情况下,要素和/或组件的比较通过将为实现该要素而推荐的要素和/或组件的配置的功能能力或方法与在被测系统中实现该要素的要素和/或组件的功能能力相比较来完成,且然后,如果这些要素和/或组件的配置的功能能力或方法不存在于推荐的要素和/或组件中,则这些要素和/或组件被认为是易受攻击的。为了执行该比较方法,首先基于被测系统的架构的形式化描述来确定实现被测系统的要素的软件和硬件的配置的功能能力和方法。
通过计算机辅助的自动化设计系统100(在后文中,CAD)来完成硬件-软件系统和复合体的设计,在图1中示出了CAD的变型实现。CAD 100在其输入端接收被设计的系统的架构的形式化架构描述,至少包括:系统要素,所述系统要素包括系统组件和在组件之间的链接;授权用户关于系统的利益。CAD 100输出用于实现被设计的系统的要素的硬件和软件。CAD 100包括如下模块:
●建模模块102;
●比较模块104;
●选择模块106。
CAD 100在其处理侧具有数据库,这些数据库包含:
●关于威胁的信息(在后文中,威胁数据库110);
●威胁模型和使用模型(在后文中,模型数据库112);
●模型的比较结果(在后文中,结果数据库114);
●系统和复合体的要素的变型硬件和软件实现(在后文中,实现数据库116)。
在特定情况下,为了实现系统要素也选择属于抵抗物理动作、黑客行为、伪造(防篡改、抗篡改)的硬件类别的硬件。
威胁数据库110包含关于威胁的形式化信息。通过列举威胁的主要特性来描述该威胁。
例如:
威胁的种类;系统要素;实现威胁的方法:攻击矢量。
根据本发明的一个方面,随着信息安全专家和分析师发现新的威胁种类、威胁实现的方法、和先前未知的攻击矢量,信息安全专家和分析师持续地更新威胁数据库110;也扩展易受特定种类的威胁的攻击的系统要素的列表。同一种威胁(未经授权的控制、对信息的未经授权的访问、拒绝服务等)将与整个系统有关,并且可以针对系统的不同组件和其它要素来实现,使要素单独地、以及与系统作为整体地妥协。对于不同的系统要素,可以重复威胁描述,但是攻击、对系统的影响、关于威胁的风险和这些威胁的抵消可以是不同的。对于每个要素,可以以不同方式实现限定种类的威胁,包括其它系统组件的参与。例如,为了产生对于有权通过网络服务器访问因特网的视频监控系统的摄影机的拒绝服务(在威胁描述中,该摄影机为系统要素),首先需要使网络服务器妥协(参看图2b,WEB_VULN)。
根据本发明的一个方面,模型数据库112包含构造的使用模型和威胁模型。在由CAD 100的建模模块102直接执行的建模过程中以及在外部当将已构造的模型加载到模型数据库112中时,填充模型数据库112。建模模块102可以将存储在模型数据库112中的模型转换为用于进一步比较的形式。使用模型和威胁模型可以具有相同形式。例如,对于上文给定的威胁的描述,可以使用树模型,其中,特性(“威胁的种类”、“系统要素”、和“实现威胁的方法”)为树的节点。
图3示出了被设计的视频监控系统300的图,其中,视频监控摄影机3021至视频监控摄影机302N连接到视频服务器304和视频服务器306,该视频服务器304和视频服务器306实现来自这些摄影机的视频流的接收、分派和存储。存储设备308用于存储。授权用户可以从内部(经由终端310)和从外部(经由网络服务器312)访问存储设备308中的视频流。可以通过终端310访问用于控制系统300的视频服务器304或视频服务器306。通过网络设备314链接系统组件。因此,在这方面,使用模型包括如下种类的使用(如在图2a的模型中所反映,但是可以设想其它使用):
●通过在视频服务器304和/或视频服务器306上的认证、从终端310经由视频服务器304或视频服务器306实现的对系统300的控制;
●通过在网络服务器312上的认证、通过存储设备308实现的对存储设备308中包含的视频流的访问;
●通过如下方式实现的视频记录:
o摄影机,借助通过摄影机3021至摄影机302N中的一者或多者对光学信号(视频流)的模数转换(Analog-Digital Conversion,ADC)
(在图2a中,ADC);
o视频服务器304和视频服务器306,通过接收和处理转换的信号(在图2a中,接收/转换(RECEPTION/CONVERT));
o存储设备308,通过保存接收和处理的信号(在图2a中的保存
(SAVE))。
图2a和图2b示出了用于被设计的系统(如图3所示)的使用模型(图2a)和威胁模型(图2b)的示例。将在讨论建模模块102时讨论用于该系统的威胁模型。
根据本发明的一个方面,结果数据库114包含使用模型与威胁模型的比较结果。在数据库中包含的结果的形式不同且可以取决于模型种类和比较方法。例如,对于树模型,该模型将包含节点和分支,如在图4a至图4c中所示的示例中所示。图5呈现了在图2a和图2b中呈现的模型的(通过交叉方法执行的)比较结果的示例,同样也构成树模型。将在描述比较模块104和选择模块106时讨论这些示例。
根据本发明的一个方面,实现数据库116包含:软件和硬件的描述、以及将软件和硬件配置为用于选择被设计的系统的要素的实现的方法。该描述包括实际的软件和硬件组件(包括其版本)、其配置变型、以及由以特定方式(单独地和与其它组件组合地)配置的软件/硬件组件提供的功能能力。组件的描述同样也包含关于如下项的信息:这些组件经受或不经受哪些种类的威胁或攻击、以及这些组件可以如何与其它组件组合以变得抵抗特定类型的威胁或攻击。
根据本发明的一个方面,建模模块102可以基于被设计的系统的架构描述来构造使用模型和威胁模型。所述模型被构造以便将威胁的描述和使用的描述转换为相同的形式,从而进行比较。模块102基于如在CAD 100的输入端的形式化架构描述中获得的授权用户关于系统的利益(在特定情况下,对于系统的要求)构造使用模型。在图3的示例中,清楚地,对于被设计的系统的这类利益为假设授权用户的如下使用的开发利益:
●视频记录;
●对视频记录系统的控制;
●对保存的视频流的访问。
架构描述同样也指示实现前述使用所利用的要素以及实现方法。在此基础上,建模模块102编制使用的种类且构造模型,其一个示例在图2a中示出。
建模模块102还基于违反者关于系统的利益构造威胁模型。违反者的利益被表达为在威胁数据库110中包含的威胁。基于被设计的系统的特性(系统要素、要素的目的和与系统作为整体的目的)选择威胁,以便建模模块102从威胁数据库110提取对与被设计的系统类似的系统(具有相同目的和/或目标的系统)的已知威胁、且针对在被设计的系统中包含的要素单独提取已知威胁。如从该示例可理解,违反者关于被设计的系统的利益同样也为假设违反者的如下使用的开发利益:
●对视频记录系统的未经授权的控制;
●对保存的视频流的未经授权的访问。
另一利益可以为将系统置于非操作状态——拒绝服务。
在特定情况下,模型数据库112或威胁数据库110可以已包含针对被设计的系统的模型化威胁描述;在该情况下,建模模块102将该模型重新布置为进行比较所需的形式。
威胁描述(如上文在描述威胁数据库110时所提及的)指示实现威胁所利用的要素和实现威胁(攻击)的方法、以及攻击矢量。在此基础上,建模模块102构造模型,其一个示例在图2b中示出。对于图3中所示的示例的被设计的系统,威胁为:
●利用视频服务器通过如下方式来实现的未经授权的控制:
○用于在视频服务器上认证的被盗密码(AUTH_PWD),其中,用于该方法的攻击矢量为:
■利用网络服务器的漏洞(WEB_VULN)侵入内部网络;
■之后在该网络中截获提及的密码(SNIFF);
●利用存储设备通过如下方式实现的未经授权的访问:
○用于在网络服务器上认证的被盗密码(WEB_AUTH_PWD),其中,用于执行该方法的攻击矢量为:
■通过在从外部网络获得访问的授权用户与网络服务器之间的连接上进行窃听来截获所述密码(SNIFF);
○利用网络服务器的漏洞(WEB_VULN);
●利用摄影机通过如下方式实现的拒绝服务:
○信道耗尽(CHANNEL_EXHAUSTION),其中,用于该方法的攻击矢量为:
■利用网络设备(尤其网络服务器)的漏洞(WEB_VULN)直接从外部网络访问摄影机;
■之后是对摄影机(已获得对其的直接访问权)的分布式攻击(DDOS)。
尽管先前的威胁针对于视频监控系统300,但是这些威胁可以等同地适用于其它系统。也预期其它威胁或其它种类的威胁,但未完全详细地描述。
根据本发明的一个方面,比较模块104可以比较使用模型和威胁模型。比较方法自身取决于模型种类。对于树模型,一种比较方法使用交叉,其结果在图中示出,其中,比较结果为模型(图5)或模型的一部分(图4a至图4c),其指示:
-仅反映违反者的利益的被设计的系统的使用的种类(图4a);
-反映违反者和授权用户二者的、但由各个相关方以不同方式实现的利益的被设计的系统的使用的种类(图4b);和/或
-反映违反者和授权用户二者的且以类似方式实现的利益的被设计的系统的使用的种类(图4c)。
比较结果同样也包含反映授权用户的利益的实现方法(关于系统组件的要求)(在图4a至图4c中所示,且在图5中用虚线突出显示)。
图4a示出了仅反映违反者的利益的使用种类。在使用模型中不存在这样的使用种类(诸如拒绝服务),但是拒绝服务通过“摄影机”系统要素来实现,该摄影机在使用模型中用以实现授权用户的利益。因此,比较结果被补充了关于实现授权用户的利益的方法的信息(在图4a中,这为ADC 410),且这将由选择模块106考虑在内。通过关于信道耗尽(在图4a中,CHANNEL_EXHAUSTION 411)的攻击来实现拒绝服务,这通过如下方式是可行的:利用网络设备(诸如网络服务器)的漏洞(在图4a中,WEB_VULN 412)从外部网络直接访问摄影机,此后对摄影机执行分布式攻击(在图4a中,DDOS 414)。
图4b示出了反映违反者和授权用户二者的、但由各个相关方以不同方式实现的利益的系统的使用的种类。诸如访问的这种使用反映违反者和授权用户二者的利益。但是,实现威胁的方法不同于实现反映授权用户的利益的使用的方法。为了实现威胁,利用网络服务器的漏洞(在图4b中,表示为WEB_VULN 412)。在使用模型中使用存储设备308以实现授权用户的利益(视频记录),并且因此比较结果被补充了关于实现授权用户的利益的方法的信息(在图4b中,这为SAVE 415),并且这将被选择模块106在确定用于实现的软件和硬件组件的功能能力的要求时考虑在内。
图4c示出了反映违反者和授权用户二者的且以类似方式实现的利益的使用的种类。诸如“控制”的这种使用反映了违反者和授权用户二者的利益。此外,该使用以类似方式、通过利用密码(在图4c中,AUTH_PWD 417)在视频服务器上认证来实现,不同之处是如何获得该密码。违反者通过利用网络服务器的漏洞(WEB_VULN 412)获得该密码,该漏洞令他侵入链接视频监控系统的组件的网络,之后在该网络中使用嗅探技术(SNIFF 420)截获该密码。在图4c中,攻击矢量被表示为WEB_VULN 412和SNIFF 420。诸如访问的这类使用反映了违反者和授权用户二者的利益且可以由违反者来实现,包括(并且图4b示出了另一种可能的实现方法——利用网络服务器的漏洞)以与授权用户通过用密码在网络服务器上认证的使用方法类似的方式。违反者通过从授权用户截获从外部网络去往网络服务器的通信(SNIFF 420)来获得该密码。
根据本发明的一个方面,选择模块106可以选择将实现系统要素的组件,该选择基于模型的比较结果来进行。选择用于实现系统要素的软件和硬件,从而这些要素保证实现授权用户的利益,但是这些要素的配置(包括安全策略设置)的功能能力或方法:
●当给定种类的使用仅反映违反者的利益时,限制系统的该种类的使用;
●当系统的给定种类的使用反映违反者和授权用户二者的、但由各个相关方以不同方法实现的利益时,限制实现威胁的方法;和/或
●当系统的给定种类的使用反映违反者和授权用户二者的且以类似方法实现的利益时,限制在系统上用于执行实现威胁的方法的动作矢量。
因此,对于在图4a中所示的情况,根据一个方面,限制(且在一些情况下,完全排除)反映违反者的利益的使用(威胁)种类。然而,通过要素“摄影机”实现该种使用,该要素“摄影机”也用于实现授权用户的利益(视频记录)。因此,在限制使用时,也必须将授权使用考虑在内(在图4a中,ADC)。通过使用指示的要求,选择模块106查询实现数据库116,其指示需要实现什么(在该情况下,ADC)以及需要限制(在该情况下,DDOS或WEB_VULN或CHANNEL_EXHAUSTION)或直接排除什么(使用的种类:拒绝服务)。响应于该查询,实现数据库116返回可在被设计的系统中使用的系统硬件和软件组件的可能变型;在该示例中,这可以为尼尔-康塞曼卡口(Bayonet Neill-Concelman,BNC)类型的摄影机,该摄影机在理论上不受CHANNEL_EXHAUSTION攻击。
对于在图4b中所示的情况,根据一个方面,期望限制(且在特定情况下,完全排除)通过利用网络服务器的漏洞实现威胁的方法。通过使用指示的要求,选择模块106查询实现数据库116,其指示在系统中需要限制什么(在该情况下,WEB_VULN 412)。响应于查询,实现数据库116可以提出使用补丁控制软件(补丁管理器)或利用预防软件或硬件、或隔离区(Demilitarization Zone,DMZ)组件。
根据在图4c中所示的本发明的方面,期望限制(且在特定情况下,完全排除)在系统上执行实现威胁的方法的动作矢量。为了限制攻击矢量,根据一个方面,可以阻止攻击矢量的分量之一(也为攻击矢量的特性)或致使其实现变得不可能,所述分量包括:
●攻击的来源或来源组;
●作为攻击的目标的要素或要素组;
●动作的种类;
●动作的手段。
因此,选择模块106查询实现数据库116,其指示需要实现什么(在该情况下,为在来自外部网络的授权用户与网络服务器之间的连接)以及需要限制什么(在该情况下,为截获用于在网络服务器上进行认证的密码)。作为响应,数据库返回指示在授权用户与网络服务器之间的受保护连接的使用(加密的使用)的结果,从而限制攻击矢量。在该方面,仍可以拦截通信,但是不可能从该通信提取密码,因为该连接的是加密的。
使用在图1中所示的CAD 100来执行用于硬件和软件系统的自动化设计的方法。在图6中示出了该方法600。首先,在步骤610中,CAD的输入端获得被设计的系统(在后文中,系统)的形式化架构描述,该形式化架构描述至少包括:
●系统要素,所述系统要素包括系统组件和在组件之间的链接;
●授权用户关于系统的利益。
基于所获得的描述,在步骤620中,建模模块102构造使用模型,该使用模型包括:
●反映授权用户的利益的系统的使用的种类;
●实现这类使用所用的系统要素(后文中,要素);
●通过所述要素实现给定种类的使用的方法。
由建模模块102构造的模型被保存在模型数据库中。在步骤630中,从威胁数据库110获得对与被设计的系统类似的系统的已知威胁的形式化描述,以及基于威胁描述,在步骤640中,建模模块102构造与使用模型的种类相同的威胁模型,该威胁模型包括:
●威胁的种类,其中,该威胁为反映违反者的利益的系统的未经授权的使用;
●实现给定种类的威胁所利用的要素;
●利用所述要素实现威胁的方法;
●在系统上执行实现威胁的方法的动作矢量。
接着,在步骤650中,比较模块从模型数据库112提取构造的模型,并通过为了比较给定种类的模型所设计的比较方法将威胁模型与使用模型相比较,以便确定:
●仅反映违反者的利益的系统的使用的种类;
●反映违反者和授权用户二者的、但由各个相关方以不同方式实现的利益的系统的使用的种类;
●反映违反者和授权用户二者的、且以类似方式实现的利益的系统的使用的种类。
在步骤660中,选择模块106基于比较来选择用于实现系统要素的硬件和软件(使得可以实现授权用户的利益),使得这类要素的配置的功能能力或方法至少:
●当给定种类的使用仅反映违反者的利益时,限制系统的该种类的使用;
●当系统的给定种类的使用反映违反者和授权用户二者的、但由各个相关方以不同方法实现的利益时,限制实现威胁的方法;
●当系统的给定种类的使用反映违反者和授权用户二者的且以类似方法实现的利益时,限制在系统上用于执行实现威胁的方法的动作矢量。
在特定情况下,这类组件的配置的功能能力或方法保证不仅实现授权用户的利益,而且还实现功能安全性要求。在某些情况下,功能安全性要求为相关方之一的利益。
在图7中示出了来自本示例的被设计的系统的要素的变型实现。为了保证授权用户的利益,且使违反者的威胁不能实现,在架构的实现中的关键要素为:
●BNC摄影机7021至702M;
●在授权用户与网络服务器之间的受保护的信道720;
●网络服务器所在的隔离区(DMZ)710。
确保系统的安全性是贯穿系统的服务时段持续进行的动作。在服务时段期间,威胁模型、使用模型中可以发生改变,以及可以在系统的硬件和软件上进行改变。在这些情况下,在本发明的一个方面中,期望执行系统测试,以便发现可能不提供系统或其安全性的所需使用的硬件和/或软件组件,这致使该系统易受攻击,等等。
因此,在本发明的另一方面中,在图1中所示的CAD 100也可以执行硬件和软件系统的自动测试。在图8中示出自动测试方法800。首先,在步骤810中,CAD的输入端获得被测系统的形式化架构描述,该形式化架构描述至少包括:
●系统要素,所述系统要素包括系统组件和在组件之间的链接,且在特定实例中包括实现这些系统要素的软件和硬件;
●授权用户关于系统的利益。
基于所获得的描述,在步骤820中,建模模块102构造使用模型,该使用模型包括:
●反映授权用户的利益的系统的使用的种类;
●实现这类使用所用的系统要素(后文中,要素);
●通过指示的要素实现给定种类的使用的方法。
由建模模块102构造的模型被保存在模型数据库112中。基于形式化描述、尤其实现系统要素的硬件和软件的形式化描述,从实现数据库116获得那些要素的配置的功能能力和方法。在特定情况下,如果在系统的设计阶段期间已建立模型,则可以不建立模型而是从模型数据库112获得模型。在该情况下,不需要获得形式化架构描述;在特定实例中,仅获得关于要素以及实现系统要素的硬件和软件的信息就足够。这类信息可以涉及:
●要素的功能能力;
●组件的配置方法和与其它要素的关系;
●要素的模型或版本、要素的类型;
●其它技术特性。
在步骤830中,从威胁数据库110获得对与被设计的系统类似的系统的已知威胁的形式化描述,以及基于威胁描述,在步骤840中,建模模块102构造与使用模型的种类相同的威胁模型,该威胁模型包括:
●威胁的种类,其中,该威胁为反映违反者的利益的系统的未经授权的使用;
●实现给定种类的威胁所利用的要素;
●利用所述要素实现威胁的方法;
●在系统上执行实现威胁的方法的动作矢量。
接着,在步骤850中,比较模块从模型数据库112提取构造的模型,并通过为了比较给定种类的模型所设计的比较方法将威胁模型与使用模型相比较,以便确定:
●仅反映违反者的利益的系统的使用的种类(未经授权的使用的种类);
●反映违反者和授权用户二者的、但由各个相关方以不同方式实现的利益的系统的使用的种类;
●反映违反者和授权用户二者的、且以类似方式实现的利益的系统的使用的种类。
在特定实例中,在步骤851中使用比较结果确定用于实现的所推荐的组件,这可以如在方法600的步骤660中那样来实现。然后,在步骤852中,将所推荐的组件与实现被测系统的要素的组件相比较。也可以按推荐而不获得实际的要素/组件,而是获得它们的技术和其它特性、配置的功能能力或方法等等,以及相应地鉴于这些完成与所实现组件的比较,对此首先获得关于所实现组件的对应信息。
在步骤860中,选择模块106检测被测系统的易受攻击的组件,这些组件易受威胁、实现威胁的方法以及攻击矢量的攻击。易受攻击意味着这类组件:
●当给定种类的使用仅反映违反者的利益时,不限制系统的这种未经授权的使用;
●当系统的给定种类的使用反映违反者和授权用户二者的、但由各个相关方以不同方式实现的利益时,不限制实现威胁的方法;
●当系统的给定种类的使用反映违反者和授权用户二者的且以类似方法实现的利益时,不限制在系统上用于执行实现威胁的方法的动作矢量。
在特定情况下通过用于实现要素的配置的功能能力或方法来确定限制的不可能性。在另一特定实例中,这类不可能性由软件的版本(或通过硬件的型号)来确定。例如,通过利用示例性漏洞“CVE 2018-XXXX”,网络服务器版本1.01的软件经受攻击矢量,其中,在使用开发的情况下,“XXXX”指的是漏洞的任何编号/标识符,而版本1.02排除这类可能性,因为它不包含该漏洞。也可以通过组件的类型来确定不可能性。例如,IP类型的摄影机可以用于DDoS攻击,且自身也可以经受该攻击,而BNC类型的摄影机排除这类可能性。
通过将实现的组件(诸如其类型、版本等)、其配置的功能能力和方法与所推荐的组件相比较来执行易受攻击的组件的检测。例如,在系统中的摄影机的一种使用存在,该种使用反映违反者的利益——拒绝服务。为了限制这种使用,将要求置于系统中的摄影机要素上(进行推荐)——用于实现要素的组件应当为BNC类型。因此,如果摄影机为IP类型,则选择模块106在比较类型时将发现当前实现中的组件的类型与所推荐的类型之间的差异。为了获得在系统上对于推荐形成的要求,在威胁模型与使用模型之间进行比较,以及基于比较结果,选择模块106进行请求以获得所推荐的组件、组件的类型、组件的版本等等。对于所讨论的示例,该请求指示需要限制的使用(威胁)种类——拒绝服务,以及需要针对其限制该使用的系统要素——摄影机。响应于该请求,从数据库获得响应,其中,所推荐的用于实现摄影机要素的组件为BNC类型的摄影机。选择模块将推荐类型的组件与当前实现(在步骤810、步骤820期间获得)相比较,如果存在差异,则会发现所实现的系统组件不限制这种威胁——即,由于当前实现偏离所推荐的组件,因此该系统是易受攻击的。因此,选择模块106检查所有的系统要素并将其要求与当前实现相比较。关于易受攻击的结论的有效性取决于更新的且完整的实现数据库116和威胁数据库110。根据数据库的结构和请求,对该请求的响应可以包含多个所推荐的组件的模型、组件的类型、组件的版本等,其中,安全组件应当对应于至少一个推荐。例如,所实现的组件的模型不对应于所推荐的模型(由于不完整的实现数据库116),但是配置的功能能力或方法对应于所推荐模型,因此该组件不被视为易受攻击的。
在特定情况下,所实现的组件应当保证不仅实现授权用户的利益,而且还实现功能安全性要求。在某些情况下,功能安全性要求为相关方之一的利益。
在本发明的方面中,CAD模块指的是真实的设备、系统、组件、组件组,这些设备、系统、组件、组件组利用硬件(诸如集成微电路(专用集成电路,ASIC)或现场可编程门阵列(FPGA))或例如以软件和硬件的组合(诸如微处理器系统和一组程序指令)的形式、以及神经形态(神经突触)芯片来实现。CAD模块的功能可以排外地通过硬件以及以组合形式(其中,一些功能通过软件来实现,且一些功能通过硬件来实现)来实现。在特定变型方面中,可以在通用计算机(诸如在图9中所示的通用计算机)的处理器上实现CAD模块中的一些模块。数据库可以通过所有可行方法来实现,且可以被包含在本地或远程布置的单一物理介质上或各种介质上。
图9为示出根据示例性方面的其上可实施本发明的各个方面的通用计算机系统20的框图。应当注意,计算机系统20可以对应于系统100和/或系统100的各个组件。
如图所示,该计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各种系统组件的系统总线23,各种系统组件包括与中央处理单元21相关联的存储器。如将由本领域的普通技术人员能够理解的,系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。系统存储器可以包括永久存储器(ROM)24和随机存取存储器(Random-Access Memory,RAM)25。基本输入/输出系统(Basic Input/Output System,BIOS)26可以存储用于在计算机系统20的各元件之间的信息传输的基本程序,诸如在使用ROM 24加载操作系统时的那些基本程序。
计算机系统20还可以包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移动光盘31(诸如CD-ROM、DVD-ROM和其它光学介质)的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34连接到系统总线23。驱动器和相应的计算机信息介质为用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。
示例性方面包括使用经由控制器55连接到系统总线23的硬盘27、可移动磁盘29和可移动光盘31的系统。由本领域的普通技术人员能够理解的,也可以利用能够以计算机可读的形式存储数据的任何类型的介质56(固态驱动器、闪存卡、数字盘、随机存取存储器(RAM)等等)。
计算机系统20具有可以存储操作系统35的文件系统36、以及附加程序应用37、其它程序模块38和程序数据39。计算机系统20的用户可以使用键盘40、鼠标42、或本领域普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描仪等)输入命令和信息。这些输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是本领域的普通技术人员能够理解,输入设备也可以以其它方式来连接,诸如但不限于经由并行端口、游戏端口、或通用串行总线(Universal Serial Bus,USB)来连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以配备有其它的外围输出设备(未示出),例如扬声器、打印机等。
计算机系统20可以使用与一个或多个远程计算机49的网络连接而工作在网络环境中。一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括在描述计算机系统20的性质时使用的上述元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(Local-Area computer Network,LAN)50和广域计算机网络(Wide-Area computer Network,WAN)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机20系统可以采用调制解调器54或本领域的普通技术人员所熟知的实现与广域计算机网络(诸如因特网)的通信的其它模块。可以是内部设备或外部设备的调制解调器54,可以通过串行端口46连接到系统总线23。本领域的普通技术人员能够理解,所述网络连接是使用通信模块建立一个计算机与另一个计算机的连接的许多熟知方式的非限制性示例。
在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其它类型的电存储介质、磁存储介质或光存储介质、或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。
在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、组件、或使用硬件(例如通过专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA))实现的组件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令组(该指令组在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以被执行在通用计算机(例如上文在图9中更详细描述的通用计算机)的处理器上。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所列举的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。
Claims (17)
1.一种自动测试硬件和软件系统的方法,包括:
接收描述被设计的系统的架构的形式化架构描述,其中所述形式化架构描述至少包括所述系统的组件和所述系统的组件之间的链接;
接收描述对系统的威胁的形式化威胁描述,其中,所述形式化威胁描述被接收的所述系统具有与所述被设计的系统相同的目的或目标;
通过处理器基于所述形式化架构描述建立使用模型,其中,所述使用模型包括如下项中的一者或多者:反映授权用户的利益的所述系统的使用的种类、实现所述使用所利用的所述系统的要素、以及利用所述要素实现该种类的使用的方法;
通过处理器基于所述形式化威胁描述建立威胁模型,其中,所述威胁模型包括如下项中的一者或多者:威胁的种类,其中,所述威胁为反映违反者的利益的所述系统的未经授权的使用;实现该种类的威胁所利用的要素;利用所述要素实现所述威胁的方法;以及在所述系统上执行实现所述威胁的方法的动作矢量;
通过处理器通过将所述威胁模型与所述使用模型相比较来确定所述系统的使用的种类;以及
通过处理器基于所述系统的所述使用的种类确定所述系统的组件。
2.如权利要求1所述的方法,其中,所述系统的使用的种类反映如下项中的一者:
仅违反者的利益;
违反者和授权用户二者的、但由各个相关方以不同方式实现的利益;和
违反者和授权用户二者的且以类似方式实现的利益,其中,通过密码实现认证,并且其中,所述密码是使用与所述授权用户使用的方法不同的方法由所述违反者获得的。
3.如权利要求2所述的方法,其中,反映所述授权用户的利益的所述系统的使用的种类以及用于利用所述要素实现所述系统的该种类的使用的所述方法满足功能安全性要求。
4.如权利要求1所述的方法,其中,所述系统的所述组件易受如下项中的一者或多者攻击:
所述系统的一种未经授权的使用,
针对所述系统的一种使用而实现威胁的方法,该种使用反映违反者和授权用户二者的、但由各个相关方以不同方法实现的利益,以及
在所述系统上的动作矢量,所述动作矢量用于针对所述系统的一种使用而实施实现威胁的方法,该种使用反映违反者和授权用户二者的利益,其中,所述实现威胁的方法由攻击矢量定义。
5.如权利要求4所述的方法,其中,当所述系统的组件不限制指示的所述系统的该种未经授权的使用时,所述组件易受该种使用的攻击,
其中,如果所述组件不限制指示的所述实现威胁的方法,则所述组件被认为易受指示的所述实现威胁的方法的攻击,以及
其中,如果所述组件不限制指示的在所述系统上的所述动作矢量,则所述组件被认为易受指示的在所述系统上的所述动作矢量的攻击。
6.如权利要求5所述的方法,其中,对该种使用、指示的所述实现威胁的方法、或指示的所述动作矢量的限制的不可能性由实现被测试的所述系统的要素和/或所述组件的配置的功能能力来决定。
7.如权利要求4所述的方法,还包括:
基于所述使用模型与所述威胁模型的所述比较选择硬件和软件组件,用以实现限制所述系统的该种未经授权的使用、限制所述实现威胁的方法、以及限制在所述系统上的所述动作矢量的所述系统的要素。
8.如权利要求1所述的方法,其中,所述形式化架构描述根据公认的标准来产生且还至少包含:包括所述系统的组件和在所述系统的组件之间的链接的所述系统的要素,以及授权用户关于所述系统的利益。
9.一种用于自动测试硬件和软件系统的系统,包括硬件处理器,所述硬件处理器被配置成:
接收描述被设计的系统的架构的形式化架构描述,其中所述形式化架构描述至少包括所述系统的组件和所述系统的组件之间的链接;
接收描述对系统的威胁的形式化威胁描述,其中,所述形式化威胁描述被接收的所述系统具有与所述被设计的系统相同的目的或目标;
基于所述形式化架构描述建立使用模型,其中,所述使用模型包括如下项中的一者或多者:反映授权用户的利益的所述系统的使用的种类、实现所述使用所利用的所述系统的要素、以及利用所述要素实现该种类的使用的方法;
基于所述形式化威胁描述建立威胁模型,其中,所述威胁模型包括如下项中的一者或多者:威胁的种类,其中,所述威胁为反映违反者的利益的所述系统的未经授权的使用;实现该种类的威胁所利用的要素;利用所述要素实现所述威胁的方法;以及在所述系统上执行实现所述威胁的方法的动作矢量;
通过将所述威胁模型与所述使用模型相比较来确定所述系统的使用的种类;以及
基于所述系统的所述使用的种类确定所述系统的组件。
10.如权利要求9所述的系统,其中,所述系统的所述使用的种类反映如下项中的一者:
仅违反者的利益;
违反者和授权用户二者的、但由各个相关方以不同方式实现的利益;和
违反者和授权用户二者的且以类似方式实现的利益,其中,通过密码实现认证,并且其中,所述密码是使用与所述授权用户使用的方法不同的方法由所述违反者获得的。
11.如权利要求10所述的系统,其中,反映所述授权用户的利益的所述系统的使用的种类以及用于利用所述要素实现所述系统的该种类的使用的所述方法满足功能安全性要求。
12.如权利要求9所述的系统,其中,所述系统的所述组件易受如下项中的一者或多者攻击:
所述系统的一种未经授权的使用,
针对所述系统的一种使用而实现威胁的方法,该种使用反映违反者和授权用户二者的、但由各个相关方以不同方法实现的利益,以及
在所述系统上的动作矢量,所述动作矢量用于针对所述系统的一种使用而实施实现威胁的方法,该种使用反映违反者和授权用户二者的利益,其中,所述实现威胁的方法由攻击矢量定义。
13.如权利要求12所述的系统,其中,当所述系统的组件不限制指示的所述系统的该种未经授权的使用时,所述组件易受该种使用的攻击,
其中,如果所述组件不限制指示的所述实现威胁的方法,则所述组件被认为易受指示的所述实现威胁的方法的攻击,以及
其中,如果所述组件不限制指示的在所述系统上的所述动作矢量,则所述组件被认为易受指示的在所述系统上的所述动作矢量的攻击。
14.如权利要求13所述的系统,其中,对该种使用、指示的所述实现威胁的方法、或指示的所述动作矢量的限制的不可能性由实现被测试的所述系统的要素和/或所述组件的配置的功能能力来决定。
15.如权利要求12所述的系统,其中,所述硬件处理器还被配置成:
基于所述使用模型与所述威胁模型的所述比较选择硬件和软件组件,用以实现限制所述系统的该种未经授权的使用、限制所述实现威胁的方法、以及限制在所述系统上的所述动作矢量的所述系统的要素。
16.如权利要求9所述的系统,其中,所述形式化架构描述根据公认的标准来产生且还至少包含:包括所述系统的组件和在所述系统的组件之间的链接的所述系统的要素,以及授权用户关于所述系统的利益。
17.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储用于自动测试硬件和软件系统的指令,所述指令包括:
接收描述被设计的系统的架构的形式化架构描述,其中所述形式化架构描述至少包括所述系统的组件和所述系统的组件之间的链接;
接收描述对系统的威胁的形式化威胁描述,其中,所述形式化威胁描述被接收的所述系统具有与所述被设计的系统相同的目的或目标;
基于所述形式化架构描述建立使用模型,其中,所述使用模型包括如下项中的一者或多者:反映授权用户的利益的所述系统的使用的种类、实现所述使用所利用的所述系统的要素、以及利用所述要素实现该种类的使用的方法;
基于所述形式化威胁描述建立威胁模型,其中,所述威胁模型包括如下项中的一者或多者:威胁的种类,其中,所述威胁为反映违反者的利益的所述系统的未经授权的使用;实现该种类的威胁所利用的要素;利用所述要素实现所述威胁的方法;以及在所述系统上执行实现所述威胁的方法的动作矢量;
通过将所述威胁模型与所述使用模型相比较来确定所述系统的使用的种类;以及
基于所述系统的所述使用的种类确定所述系统的组件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018114433A RU2715025C2 (ru) | 2018-04-19 | 2018-04-19 | Способ автоматизированного тестирования программно-аппаратных систем и комплексов |
RU2018114433 | 2018-04-19 | ||
US16/123,093 US11030319B2 (en) | 2018-04-19 | 2018-09-06 | Method for automated testing of hardware and software systems |
US16/123,093 | 2018-09-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389867A CN110389867A (zh) | 2019-10-29 |
CN110389867B true CN110389867B (zh) | 2024-04-16 |
Family
ID=68237899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811211045.8A Active CN110389867B (zh) | 2018-04-19 | 2018-10-17 | 用于自动测试硬件和软件系统的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11030319B2 (zh) |
CN (1) | CN110389867B (zh) |
RU (1) | RU2715025C2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11500997B1 (en) * | 2018-09-20 | 2022-11-15 | Bentley Systems, Incorporated | ICS threat modeling and intelligence framework |
US10705810B2 (en) * | 2018-11-30 | 2020-07-07 | Sap Se | Automatic code generation |
US11416623B2 (en) * | 2019-07-31 | 2022-08-16 | International Business Machines Corporation | Automatic penetration testing enablement of regression buckets |
CN111176965B (zh) * | 2019-12-19 | 2023-10-13 | 广州方硅信息技术有限公司 | 推荐系统预发布测试方法、装置及电子设备 |
CN111078572B (zh) * | 2019-12-23 | 2023-08-11 | 北京同有飞骥科技股份有限公司 | 自动化交互的测试方法及系统 |
US20220019676A1 (en) * | 2020-07-15 | 2022-01-20 | VULTARA, Inc. | Threat analysis and risk assessment for cyber-physical systems based on physical architecture and asset-centric threat modeling |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761208A (zh) * | 2005-11-17 | 2006-04-19 | 郭世泽 | 网络信息系统的安全性及生存性评估的系统和方法 |
CN101707608A (zh) * | 2009-11-27 | 2010-05-12 | 成都市华为赛门铁克科技有限公司 | 应用层协议自动化测试方法及装置 |
US20170329975A1 (en) * | 2014-04-23 | 2017-11-16 | NSS Labs, Inc. | Threat and defense evasion modeling system and method |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472421B2 (en) * | 2002-09-30 | 2008-12-30 | Electronic Data Systems Corporation | Computer model of security risks |
US20070162890A1 (en) * | 2005-12-29 | 2007-07-12 | Microsoft Corporation | Security engineering and the application life cycle |
US20080148398A1 (en) * | 2006-10-31 | 2008-06-19 | Derek John Mezack | System and Method for Definition and Automated Analysis of Computer Security Threat Models |
US20100281248A1 (en) * | 2007-02-16 | 2010-11-04 | Lockhart Malcolm W | Assessment and analysis of software security flaws |
US8438644B2 (en) * | 2011-03-07 | 2013-05-07 | Isight Partners, Inc. | Information system security based on threat vectors |
US9330262B2 (en) | 2012-09-21 | 2016-05-03 | University Of Limerick | Systems and methods for runtime adaptive security to protect variable assets |
US20140137257A1 (en) * | 2012-11-12 | 2014-05-15 | Board Of Regents, The University Of Texas System | System, Method and Apparatus for Assessing a Risk of One or More Assets Within an Operational Technology Infrastructure |
US9712551B2 (en) * | 2012-11-30 | 2017-07-18 | The Boeing Company | Methods and systems for architecture-centric threat modeling, analysis and visualization |
US10216938B2 (en) * | 2014-12-05 | 2019-02-26 | T-Mobile Usa, Inc. | Recombinant threat modeling |
GB201602412D0 (en) | 2016-02-10 | 2016-03-23 | Cortex Insight Ltd | Security system |
RU2642374C1 (ru) * | 2017-04-17 | 2018-01-24 | Евгений Борисович Дроботун | Способ построения системы защиты от компьютерных атак для автоматизированных систем управления |
US10867051B2 (en) * | 2017-09-29 | 2020-12-15 | AO Kaspersky Lab | System and method of automated design of hardware and software systems and complexes |
US11457030B2 (en) * | 2018-02-20 | 2022-09-27 | Darktrace Holdings Limited | Artificial intelligence researcher assistant for cybersecurity analysis |
-
2018
- 2018-04-19 RU RU2018114433A patent/RU2715025C2/ru active
- 2018-09-06 US US16/123,093 patent/US11030319B2/en active Active
- 2018-10-17 CN CN201811211045.8A patent/CN110389867B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761208A (zh) * | 2005-11-17 | 2006-04-19 | 郭世泽 | 网络信息系统的安全性及生存性评估的系统和方法 |
CN101707608A (zh) * | 2009-11-27 | 2010-05-12 | 成都市华为赛门铁克科技有限公司 | 应用层协议自动化测试方法及装置 |
US20170329975A1 (en) * | 2014-04-23 | 2017-11-16 | NSS Labs, Inc. | Threat and defense evasion modeling system and method |
Also Published As
Publication number | Publication date |
---|---|
CN110389867A (zh) | 2019-10-29 |
US11030319B2 (en) | 2021-06-08 |
RU2018114433A (ru) | 2019-10-22 |
RU2715025C2 (ru) | 2020-02-21 |
RU2018114433A3 (zh) | 2019-11-15 |
US20190325144A1 (en) | 2019-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389867B (zh) | 用于自动测试硬件和软件系统的方法 | |
US11044264B2 (en) | Graph-based detection of lateral movement | |
US11017093B2 (en) | System and method for creating and executing breach scenarios utilizing virtualized elements | |
US9774616B2 (en) | Threat evaluation system and method | |
US10230750B2 (en) | Secure computing environment | |
US20180124082A1 (en) | Classifying logins, for example as benign or malicious logins, in private networks such as enterprise networks for example | |
US9473522B1 (en) | System and method for securing a computer system against malicious actions by utilizing virtualized elements | |
US20170093910A1 (en) | Dynamic security mechanisms | |
Repetto et al. | An architecture to manage security operations for digital service chains | |
Khalid et al. | Cybersecurity in Industry 4.0 context: Background, issues, and future directions | |
CN109582992B (zh) | 硬件和软件系统及复合系统的自动化设计的系统和方法 | |
Mack | Cyber security | |
Ashraf et al. | A Roadmap: Towards Security Challenges, Prevention Mechanisms for Fog Computing | |
EP3557468B1 (en) | Method for automated testing of hardware and software systems | |
Raja et al. | Threat Modeling and IoT Attack Surfaces | |
Maurya et al. | Blockchain-powered solution to safeguard IoT devices against attacks | |
RU2659740C1 (ru) | Способ автоматизированного проектирования программно-аппаратных систем и комплексов | |
Obradovic | Cybersecurity of IoT systems: analyzing security vulnerabilities in a cloud supported embedded system environment | |
US20230412626A1 (en) | Systems and methods for cyber security and quantum encapsulation for smart cities and the internet of things | |
US20230254331A1 (en) | Systems and methods for securing devices in a computing environment | |
Abdlrazaq et al. | Proposed Solutions for the Main Challenges and Security Issues in IoT Smart Home Technology | |
CN114866306B (zh) | 一种安全防护方法、装置和存储介质 | |
Selvaraj et al. | Security Vulnerabilities, Threats, and Attacks in IoT and Big Data: Challenges and Solutions | |
ULANC et al. | Deliverable D4. 2 | |
Seminaro | Internet of Things Protection: Mitigating IoT Threats |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |