CN111095895B - 检查自动化系统项目安全漏洞的系统和方法 - Google Patents
检查自动化系统项目安全漏洞的系统和方法 Download PDFInfo
- Publication number
- CN111095895B CN111095895B CN201880059358.8A CN201880059358A CN111095895B CN 111095895 B CN111095895 B CN 111095895B CN 201880059358 A CN201880059358 A CN 201880059358A CN 111095895 B CN111095895 B CN 111095895B
- Authority
- CN
- China
- Prior art keywords
- vulnerabilities
- vulnerability
- security
- software
- application
- 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
Images
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- 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
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/77—Software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种用于检查自动化系统设计的安全漏洞的系统,包括安全数据库、互联网爬虫应用程序以及安全服务应用程序。安全数据库存储与自动化系统相关的已知软件漏洞的描述。互联网爬虫应用程序被配置为系统地浏览互联网,以查找与自动化系统相关的新软件漏洞,并将新软件漏洞加到安全数据库的索引中。安全服务应用程序从安全数据库中检索与自动化系统的硬件/软件配置相关的潜在软件漏洞。安全服务应用程序还识别与潜在漏洞相关的策略。每个策略都描述潜在漏洞以及响应于检测到潜在漏洞而待执行的动作。安全服务将策略应用于硬件/软件配置和与自动化应用程序相对应的软件代码,以识别可以向用户显示的实际漏洞。
Description
相关申请的交叉引用
本申请要求于2017年9月14日提交的美国临时申请序列号62/558,540的权益,其全部内容通过引用合并于此。
技术领域
本公开总体上涉及与检查用于自动化系统设计的项目安全漏洞相关的方法、系统和装置。所公开的技术可以被应用于例如图形项目设计工具,诸如西门子全集成自动化(TIA)门户。
关于联邦政府赞助的研究或开发的政府权利声明
本发明是在政府支持下完成的,奖励号为:N00173-17-2-C005。政府对本发明享有一定的权利。
背景技术
工业控制系统(ICS)是用于自动化系统内工业过程控制的控制系统和相关联手段。由于它们控制的物理系统的重要价值,因此ICS容易受到网络攻击,包括web服务器攻击、传感器篡改、恶意代码注入和其它方法。Stuxnet是针对自动化系统的网络攻击的显著示例。这些攻击可导致重大故障、中断、甚至对财产和人员造成破坏。
传统ICS具有已知的安全漏洞。术语“安全漏洞”指的是可被某个动作利用以在自动化系统或任何相关联的计算机系统内执行未授权动作的应用程序的硬件/软件(HW/SW)配置或源代码的任何弱点。如本文所使用的,安全漏洞可包含安全问题、漏洞和利用。
一些可公开获得的资源记录了可能影响ICS的安全漏洞。例如,国土安全部(DHS)的ICS网络紧急响应小组(ICS-CERT)数据库在关键基础结构网络上发出警报。西门子S7-1500 PLC漏洞的一个示例如图1A和1B中所示。图1A示出了关于CPU拒绝服务攻击的建议,而图1B提供了西门子产品的其它漏洞的示例列表。
尽管有诸如ICS-CERT数据库的资源,但就网络安全意识而言,普遍缺乏对自动化工程师的支持。例如,自动化工程师通常不具有信息技术(IT)安全背景。相反,IT安全专家通常不能将标准IT安全方法应用于ICS。
此外,由于自动化系统的复杂性,很难手动验证系统安全性。现有的ICS安全标准要求持久的手动过程。现有的ICS安全标准(诸如国际电工委员会(IEC)62443)是方法,而不是软件工具。该过程很耗时,并且从开始到完成需要几天到几周的时间。此外,不会自动处理公共安全数据库(例如CERT)中的信息。还应该指出的是,现有的ICS安全标准仅是高级指南。因此,结果不够详细,自动化工程师无法改善其控制逻辑,诸如结构化控制语言(SCL)代码。
发明内容
本发明的实施方式通过提供与检查用于自动化系统设计的项目安全漏洞相关的方法、系统和装置,解决并克服了上述短处和缺点中的一个或多个。
根据一些实施方式,一种用于检查用于自动化系统设计的项目安全漏洞的系统包括安全数据库、互联网爬虫应用程序以及安全服务应用程序。安全数据库存储与自动化系统相关的已知软件漏洞的描述。互联网爬虫应用程序被配置为系统地浏览互联网,以查找与自动化系统相关的新软件漏洞,并将新软件漏洞加到安全数据库的索引中。安全服务应用程序从安全数据库中检索与自动化系统的硬件/软件配置相关的潜在软件漏洞。安全服务应用程序还识别与潜在漏洞相关的策略。每个策略都描述潜在漏洞以及响应于检测到潜在漏洞而待执行的动作。安全服务将策略应用于硬件/软件配置和与自动化应用程序相对应的软件代码,以识别一个或多个实际漏洞。然后,安全服务应用程序向用户显示实际漏洞。
根据其它实施方式,用于检查用于自动化系统设计的项目安全漏洞的计算机实现的方法包括:从IDE接收自动化系统的硬件/软件配置以及与自动化应用程序相对应的软件代码的描述。从安全数据库中检索与硬件/软件配置相关的一个或多个潜在软件漏洞。识别与潜在漏洞相关的一个或多个策略。每个策略都描述潜在漏洞以及可以执行以缓解潜在漏洞的一个或多个动作。将该策略应用于硬件/软件配置和软件代码,以识别一个或多个实际漏洞。然后,这些实际漏洞可在IDE中显示。
根据其它实施方式,集成开发环境(IDE)系统包括IDE和客户端应用程序。IDE包括第一图形用户界面(GUI)组件,其允许指定自动化系统的硬件/软件配置。IDE还包括第二GUI组件,其允许输入与自动化应用程序相对应的软件代码。客户端应用程序与IDE集成。该应用程序被配置为将硬件/软件配置和软件代码传输到远程安全服务应用程序。客户端应用程序从远程安全服务应用程序接收软件代码中存在的一个或多个漏洞的识别。这些漏洞然后可在IDE中显示。
根据下面参考附图进行的说明性实施方式的详细描述,本发明的其它特征和优点将变得显而易见。
附图说明
当结合附图阅读时,根据以下详细描述可以最好地理解本发明的前述和其它方面。为了说明本发明,在附图中示出了当前优选的实施方式,然而,应当理解,本发明不限于所公开的特定手段。附图中包括以下附图:
图1A示出了关于CPU拒绝服务攻击的建议;
图1B提供了西门子产品的其它漏洞的示例列表;
图2示出了根据一些实施方式的用于检查用于自动化系统设计的项目安全漏洞的系统;
图3示出了从ICS-CERT网站检索的示例网页;
图4示出了IDE如何显示与安全漏洞相关的信息的示例;以及
图5示出了可以在其内执行工程安全漏洞识别服务的示例性计算环境。
具体实施方式
在此描述的系统、方法和装置总体上涉及检查用于自动化系统设计的项目安全漏洞。简而言之,本文描述的技术使用与集成开发环境(IDE)集成或与IDE结合操作的安全漏洞客户端应用程序。安全漏洞客户端应用程序与远程安全漏洞识别服务通信,以识别程序员输入的HW/SW配置和/或源代码内的安全漏洞。一旦识别出这些安全漏洞,便将它们传递回客户端应用程序以向用户显示。如下所述,在一些实施方式中,远程安全漏洞识别服务还可以提供用于解决所识别的安全漏洞的一种或多种缓解技术的列表。
图2示出了根据一些实施方式的用于检查用于自动化系统设计的项目安全漏洞的系统。工程安全漏洞爬虫220是互联网爬虫应用程序,该互联网爬虫应用程序被配置为系统地浏览互联网上的安全漏洞资源225,以查找与自动化系统相关的新软件漏洞。一旦工程安全漏洞爬虫220识别新的软件漏洞,该漏洞就被存储在安全漏洞数据库210中。除了该自动处理之外,在一些实施方式中,用户可以在漏洞被识别时手动填充安全漏洞数据库210。
安全漏洞资源225是包括一个或多个网页的网站,该网页识别与自动化系统相关的软件漏洞。例如,在一个实施方式中,安全漏洞资源225可以包括官方资源,诸如来自DHS的ICS-CERT数据库。安全漏洞资源225还可以包括讨论或描述安全漏洞的在线论坛和已知的“黑客”站点。在一些实施方式中,工程安全漏洞爬虫220(如下所述)可以使用针对特定自动化系统(例如,产品名称、版本等)的关键字来执行整个互联网的搜索,以识别应当被包括在安全漏洞资源225中的网站。
可以使用本领域中通常已知的各种数据库系统来实现安全漏洞数据库210。例如,在一些实施方式中,可以使用基于SQL的数据库。在其它实施方式中,已知软件漏洞的描述可以存储在具有表等效结构的No-SQL数据库中。如本领域中所理解的,术语“No-SQL”用于定义在其设计中不相关的一类数据存储。No-SQL数据库有多种类型,通常可以根据其基础数据模型进行分组。这些分组可以包括使用基于列的数据模型(例如,Cassandra)、基于文档的数据模型(例如,MongoDB)、基于密钥值的数据模型(例如,Redis)和/或基于图表的数据模型(例如Allego)的数据库。可以使用任何类型的No-SQL数据库来实现本文所述的各种实施方式。例如,在一个实施方式中,MongoDB软件被用来提供由本文描述的系统使用的数据库的基础功能。
工程安全漏洞爬虫220包括机器学习模型220A,该机器学习模型处理从安全漏洞资源225收集的网页和其它信息,以提取存储在安全漏洞数据库210中的相关信息。在一些实施方式中,机器学习模型220A是自然语言处理(NLP)组件。NLP组件分析以自然语言描述的从安全漏洞资源225收集的网页和其它信息,并对它们进行处理,以便使该信息对于工程安全漏洞识别服务205(如下所述)是可理解的。NLP组件可以包括例如自然语言解析器,并且命名实体链接器构成主处理渠道。
工程安全漏洞爬虫220可以连续扫描互联网上的漏洞,并且仅在机器学习模型220A识别了某些术语时才触发信息的存储。例如,在一个实施方式中,训练机器学习模型220A以识别一个或多个字段:特定产品的名称;产品的版本号;漏洞类型;漏洞名称或其它标识符;以及命名实体提取和实体链接单元。用于训练和使用机器学习模型的技术通常是本领域技术人员所知晓的。因此,本文不对这些技术进行详细描述。图3示出从ICS-CERT网站检索的示例网页。框305、310突出显示了机器学习模型220A可以从网页中提取的信息。
继续参考图2,工程安全漏洞识别服务205是例如在基于私有或公共云的计算系统中执行的软件应用程序。简而言之,工程安全漏洞识别服务205接收用户经由IDE 215提供的HW/SW配置和软件代码。解析器205B应用NLP模型将源代码和HW/SW配置解析为自然语言文本的组成部分,其有助于与软件漏洞相关的下一识别步骤。工程安全漏洞识别服务205从安全漏洞数据库210中检索与HW/SW配置相关的潜在安全漏洞。然后,对源代码进行分析,以确定代码中是否存在任何漏洞。
策略管理器205A管理指示在代码中检测到安全漏洞时采取什么动作的策略。这样,“策略”可以理解为将安全漏洞与动作联系起来的规则。例如,该动作可以是为用户显示警报或建议缓解代码中漏洞的方法。对于后一种情况,可以使用修复顾问205E组件针对在给定的HW/SW配置或源代码中发现的特定安全漏洞建议一种可能的缓解技术。例如,该策略可以指示可以通过安装库的更新版本或链接到更新版本来缓解与使用特定库的过时版本相关的特定漏洞。在一些情况下,可以在从安全漏洞资源225检索到的信息中提供缓解动作;在其它情况下,策略管理器205A可以记录用户如何缓解安全漏洞并使用该知识来生成策略。策略检查器205C使用存储在策略管理器205A中的信息来识别由解析器205B处理后的源代码和/或SW/HW配置中的安全漏洞。
代码覆盖率205D组件度量由策略检查器205C对软件块代码测试的程度。例如,这可以通过根据一些度量来量化代码的大小并且然后一直跟踪所检查的代码来执行。作为简单的示例,考虑具有1000行代码的应用程序。在处理了100行源代码之后,代码覆盖率205D组件将指示对代码进行了10%的检查,在处理了200行代码之后,将指示对代码进行了20%的检查,等等。
历史记录205F记录与软件安全漏洞识别过程相关的趋势和历史数据,这可能有助于快速解决类似的未来事件。例如,如果用户在找到最优缓解策略之前尝试了用于解决安全漏洞的几种不同的缓解技术,则当向用户呈现缓解选项时,修复顾问205E可以记录并使用该信息,以优先考虑图中的最优缓解策略。
问题报告器205G报告在执行给定项目硬件/软件配置的服务时发现的任何问题。从概念上讲,问题报告器205G可以理解为用于输出因工程安全漏洞识别服务205的操作而发生的任何错误的装置。在一些实施方式中,问题报告器205G将问题本地存储在数据文件中,可以在工程安全漏洞识别服务205的维护期间对该数据文件进行审查。在其它实施方式中,问题发生时,问题可以被传送到工程安全漏洞识别客户端215A(如下所述)。
IDE 215是允许计算机程序员开发自动化应用程序的软件应用程序。IDE 215可以包括例如源代码编辑器和调试工具。另外,IDE 215可以包括向IDE 215添加特定特征的一个或多个扩展(或“插件”)。图2的示例示出了一个扩展:工程安全漏洞识别客户端215A。工程安全漏洞识别客户端215A是通过网络连接(例如,经由互联网)将IDE 215与工程安全漏洞识别服务205集成的软件组件。因此,当用户输入硬件/软件配置时,该信息将传递到工程安全漏洞识别服务205。这进而触发了如上所述的策略管理器205A。类似地,当用户在215的源代码编辑器中输入代码时,该信息由工程安全漏洞识别客户端215A传递给工程安全漏洞识别服务205。在一些实施方式中,响应于用户采用工程安全漏洞识别客户端215A执行的一些动作(例如,单击按钮),整个源代码将传递到工程安全漏洞识别服务205。在其它实施方式中,工程安全漏洞识别客户端215A在输入时将源代码发送到工程安全漏洞识别服务205。例如,工程安全漏洞识别客户端215A可以执行循环,该循环周期地(例如1秒)检查源代码编辑器中的更改,并且如果存在更改,则将这些更改发送到工程安全漏洞识别服务205。
当漏洞由工程安全漏洞识别服务205识别时,它们被发送到工程安全漏洞识别客户端215A以在IDE 215中显示。可以使用本领域已知的任何技术在工程安全漏洞识别服务205与工程安全漏洞识别客户端215A之间传输数据。例如,在一些实施方式中,可以使用诸如可扩展标记语言(XML)或JavaScript对象符号(JSON)的文本格式。
图4示出了IDE 215如何显示信息的示例。在该示例中,IDE 215是西门子全集成自动化(TIA)PortalTM;然而,应当理解,图4中呈现的一般概念可应用于提供类似功能的任何IDE。图4中所示的IDE是多面板应用程序。最左边的面板示出硬件配置信息。中间面板示出源代码编辑器,在该示例中,该源代码编辑器显示功能输入和结构化控制语言(SCL)源代码。最右边的面板显示从工程安全漏洞识别客户端215A接收到的与漏洞相关的信息。
图4中最右边的面板的顶部示出漏洞警报。如图所示,单击警报可使得浏览器打开相关网页(例如,DHS ICS-CERT网页)。在其它实施方式中,可以使用其它技术来显示与漏洞相关的信息。例如,在一个实施方式中,单击警报可以使得显现描述漏洞的模式文本框。最右边面板的底部示出了与用于快速导航(例如,当源代码长达几页时)的应用程序相关联的所有漏洞。最右边的面板也可示出用于解决漏洞的建议的缓解技术。单击单个缓解技术使缓解技术立即显示。例如,模式文本框可显示缓解技术。可替代地,在一些实施方式中,工程安全漏洞识别客户端215A被深度地集成到源代码编辑器中,使得工程安全漏洞识别客户端215A可以在编辑器本身中突出显示存在问题的代码,并提供解决该漏洞的建议的代码编辑。然后,用户可以选择接受或拒绝更改。可以类似地识别出由于硬件配置引起的任何问题,并通过IDE 215将其呈现给用户。这些问题可以由用户进行审查,并且在修复或标记为已审查后,它们将从列表中消失。
图5示出了其内可以执行工程安全漏洞识别服务205的示例性计算环境500。计算环境500包括计算机系统510,该计算机系统是可以在其上实现本发明的实施方式的计算系统的一个示例。诸如计算机系统510和计算环境500的计算机和计算环境是本领域技术人员已知的,并且因此在此简要描述。
如图5中所示,计算机系统510可以包括诸如系统总线521的通信机制或用于在计算机系统510内传递信息的其它通信机制。计算机系统510还包括与系统总线521联接的一个或多个处理器520,用于处理信息。处理器520可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)或本领域中已知的任何其它处理器。
计算机系统510还包括联接到总线521的系统存储器530,用于存储将由处理器520执行的信息和指令。系统存储器530可以包括以易失性和/或非易失性存储器(诸如只读存储器(ROM)531和/或随机存取存储器(RAM)532)形式的计算机可读存储介质。系统存储器RAM 532可以包括其它动态存储设备(例如,动态RAM、静态RAM和同步DRAM)。系统存储器ROM531可以包括其它静态存储设备(例如,可编程ROM、可擦除PROM和电可擦除PROM)。另外,系统存储器530可以用于在处理器520执行指令期间存储临时变量或其它中间信息。基本输入/输出系统(BIOS)533包含可在ROM 531中存储的基本例程,该基本例程有助于在计算机系统510内的元素之间(诸如在启动期间)传输信息。RAM 532可以包含数据和/或程序模块,该数据和/或程序模块可以被处理器520立即访问和/或当前由处理器520操作。系统存储器530可以附加地包括例如操作系统534、应用程序535、其它程序模块536和程序数据537。应用程序535可以包括例如与工程安全漏洞识别服务205相对应的一个或多个可执行应用程序。
计算机系统510还包括联接到系统总线521的磁盘控制器540,以控制用于存储信息和指令的一个或多个存储设备,诸如硬盘541和可移动介质驱动器542(例如,光盘驱动器、固态硬盘等)。可以使用适当的设备接口(例如,小型计算机系统接口(SCSI)、集成设备电子器件、通用串行总线(USB)或FireWire)将存储设备添加到计算机系统510。
计算机系统510还可以包括联接到总线521的显示控制器565,以控制诸如液晶显示器(LCD)的显示器566,以向负责编程或维护工程安全漏洞识别服务205的计算机用户显示信息。计算机系统包括输入接口560和一个或多个输入设备,诸如键盘562和指向设备561,用于与计算机用户进行交互并将信息提供给处理器520。指向设备561可以例如是鼠标或指向杆,用于将方向信息和命令选择传送给处理器520并用于控制显示器566上的光标移动。显示器566可提供触摸屏界面,该界面允许输入以补充或替换指向设备561对方向信息和命令选择的通信。
计算机系统510可以响应于处理器520执行包含在诸如系统存储器530的存储器中的一个或多个指令的一个或多个序列,来执行本发明实施方式的部分或全部处理步骤。此类指令可以从诸如硬盘541或可移动介质驱动器542的另一计算机可读介质读入系统存储器530。硬盘541可以包含本发明的实施方式使用的一个或多个数据存储和数据文件。数据存储内容和数据文件可以加密以提高安全性。处理器520还可以在多处理装置中采用以执行系统存储器530中包含的一个或多个指令序列。在替代实施方式中,可以使用硬连线电路代替软件指令或与软件指令结合。因此,实施方式不限于硬件电路和软件的任何特定组合。
如上所述,计算机系统510可以包括至少一个计算机可读介质或存储器,用于保存根据本发明的实施方式编程的指令并且用于包含本文描述的数据结构、表、记录或其它数据。如本文所使用的术语“计算机可读介质”是指参与向处理器520提供指令以供执行的任何介质。计算机可读介质可以采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘,诸如硬盘541或可移动介质驱动器542。易失性介质的非限制性示例包括动态存储器,诸如系统存储器530。传输介质的非限制性示例包括同轴电缆、铜线和光纤,包括构成总线521的线。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些声波或光波。
当在联网环境中使用时,计算机系统510可以包括调制解调器572,用于通过网络571与执行工程安全漏洞识别客户端215A的开发者计算机580建立通信。调制解调器572可以经由用户网络接口570或经由另一适当的机制连接至总线521。应当注意,尽管在图5中呈现的示例中,开发者计算机580被示为通过网络571连接到计算机系统510,但是在本发明的其它实施方式中,计算机系统510可以直接连接到开发者计算机580。例如,在一个实施方式中,计算机系统510和开发者计算机580共同位于同一房间或相邻房间,并且使用本领域中通常已知的任何传输介质连接设备。
网络571可以是本领域中通常已知的任何网络或系统,包括互联网、企业内部网、局域网(LAN)、广域网(WAN)、城域网(MAN)、直接网络连接或一系列连接、蜂窝电话网络或能够促进计算机系统510与其它计算机(例如,开发者计算机580)之间的通信的任何其它网络或介质。网络571可以是有线的、无线的或其组合。可以使用以太网、通用串行总线(USB)、RJ-11或本领域中通常已知的任何其它有线连接来实现有线连接。可以使用Wi-Fi、WiMAX和蓝牙、红外、蜂窝网络、卫星或本领域通常已知的任何其它无线连接方法来实现无线连接。另外,几个网络可以单独工作或彼此通信以促进网络571中的通信。
可以用硬件和软件的任何组合来实现本公开的实施方式。另外,本公开的实施方式可以被包括在具有例如计算机可读的非暂态介质的制品(例如,一个或多个计算机程序产品)中。介质在其中实施了例如用于提供和促进本公开的实施方式的机制的计算机可读程序代码。制品可以作为计算机系统的一部分包含在内,也可以单独出售。
尽管本文已经公开了各个方面和实施方式,但是其它方面和实施方式对于本领域技术人员将是显而易见的。本文所公开的各个方面和实施方式是出于说明的目的,而不是旨在进行限制,真实的范围和精神由所附权利要求书指示。
除非另有说明,从以下讨论中显而易见,否则应理解,诸如“应用”、“生成”、“识别”、“确定”、“处理”、“计算”、“选择”等可以指代计算机系统或类似的电子计算设备的动作和过程,该计算机系统或类似的电子计算设备将表示为计算机系统的寄存器和存储器内的物理(例如,电子)数量的数据操纵和转换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示设备内的物理量的其它数据。可以使用计算机软件来实现本文描述的方法的实施方式。如果以符合公认标准的编程语言编写,则可以编译旨在实现该方法的指令序列,以在各种硬件平台上执行以及与各种操作系统进行接口。另外,没有参考任何特定的编程语言来描述本发明的实施方式。应当理解,可以使用各种编程语言来实现本发明的实施方式。
如本文中所使用,可执行应用程序包括代码或机器可读指令,用于使处理器调节以例如响应于用户命令或输入,以实现预定功能,诸如操作系统、上下文数据采集系统或其它信息处理系统的功能。可执行过程是一段代码或机器可读指令、子例程或代码的其它不同部分,或者是可执行应用程序的一部分,用于执行一个或多个特定过程。这些过程可以包括:接收输入数据和/或参数;对接收到的输入数据执行操作和/或响应于接收到的输入参数执行功能;以及提供结果输出数据和/或参数。
如本文所使用的“图形用户界面”(GUI)包括一个或多个显示图像,该显示图像由显示处理器生成并且使用户能够与处理器或其它设备以及相关联的数据采集和处理功能进行交互。GUI还包括可执行过程或可执行应用程序。可执行过程或可执行应用程序调节显示处理器以生成表示GUI显示图像的信号。这些信号被提供给显示设备,该显示设备显示图像以供用户观看。处理器在可执行过程或可执行应用程序的控制下,响应于从输入设备接收到的信号来操纵GUI显示图像。这样,用户可以使用输入设备与显示图像进行交互,从而使用户能够与处理器或其它设备进行交互。
本文的功能和过程步骤可以响应于用户命令而自动地或全部地或部分地执行。自动执行的活动(包括步骤)响应于一个或多个可执行指令或设备操作而执行,而无需用户直接启动活动。
附图的系统和过程不是唯一的。可以根据本发明的原理导出其它系统、过程和菜单,以实现相同的目的。尽管已经参考特定实施方式描述了本发明,但是应当理解,本文示出和描述的实施方式和变型仅用于说明目的。在不脱离本发明的范围的情况下,本领域技术人员可以对当前设计进行修改。如本文所述,可以使用硬件组件、软件组件和/或其组合来实现各种系统、子系统、代理、管理器和过程。本文的任何权利要求元素均不根据35U.S.C.112(f)的规定解释,使用短语“用于……的装置”明确地叙述该元素。
Claims (9)
1.一种用于检查自动化系统设计的项目安全漏洞的系统,所述系统包括:
安全数据库,其存储与自动化系统相关的已知软件漏洞的描述;
互联网爬虫应用程序,其被配置为系统地浏览互联网,以查找与所述自动化系统相关的新软件漏洞,并将所述新软件漏洞加到所述安全数据库的索引中;
安全服务应用程序,其被配置为:
从所述安全数据库中检索与所述自动化系统的硬件/软件配置相关的一个或多个潜在软件漏洞;
识别与潜在漏洞相关的一个或多个策略,其中,每个策略描述潜在漏洞和响应于检测到所述潜在漏洞而待执行的动作;将所述策略应用于所述硬件/软件配置和与自动化应用程序相对应的软件代码,以识别一个或多个实际漏洞;以及
向用户显示所述一个或多个实际漏洞,其中,在集成开发环境(IDE)中向所述用户显示所述一个或多个实际漏洞。
2.根据权利要求1所述的系统,其中,所述互联网爬虫应用程序还被配置为:(a)从详细描述所述新软件漏洞的一个或多个外部网站检索网页,以及(b)应用一种或多种机器学习算法来从所述网页中提取与所述新软件漏洞相关的信息。
3.根据权利要求2所述的系统,其中,与所述新软件漏洞相关的信息包括以下中的一项或多项:(a)产品名称、(b)与所述产品相关的版本号、(c)漏洞类型、(d)漏洞标识符以及(e)命名实体链接。
4.根据权利要求2所述的系统,其中,所述外部网站从预定的网站列表中选择。
5.根据权利要求2所述的系统,其中,所述外部网站使用包括以下中的一项或多项的关键字基于互联网搜索来识别:(a)产品名称、(b)与所述产品相关的版本号、(c)漏洞类型、(d)漏洞标识符以及(e)命名实体链接。
6.根据权利要求2所述的系统,其中,所述安全服务应用程序还被配置为:
响应于所述一个或多个实际漏洞的显示,接收来自所述用户的反馈,
其中,基于所述反馈重新训练所述一种或多种机器学习算法。
7.根据权利要求1所述的系统,其中,所述策略识别用于解决所述一个或多个实际漏洞的一种或多种可能的缓解技术,并且所述安全服务应用程序进一步被配置为显示所述可能的缓解技术。
8.根据权利要求1所述的系统,其中,所述实际漏洞中的至少一个被定向到所述软件代码的特定行,并且所述安全服务应用程序以与所述软件代码的所述特定行一致地显示所述实际漏洞。
9.根据权利要求1所述的系统,其中,所述实际漏洞中的至少一个被定向到所述软件代码的特定行,并且所述安全服务应用程序以所述软件代码的所述特定行的行号来显示所述实际漏洞。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762558540P | 2017-09-14 | 2017-09-14 | |
US62/558,540 | 2017-09-14 | ||
PCT/US2018/049093 WO2019055235A1 (en) | 2017-09-14 | 2018-08-31 | SYSTEM AND METHOD FOR VERIFYING PROJECT SECURITY VULNERABILITIES OF AUTOMATION SYSTEM |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111095895A CN111095895A (zh) | 2020-05-01 |
CN111095895B true CN111095895B (zh) | 2022-06-24 |
Family
ID=63678685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880059358.8A Active CN111095895B (zh) | 2017-09-14 | 2018-08-31 | 检查自动化系统项目安全漏洞的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11481500B2 (zh) |
EP (1) | EP3665885B1 (zh) |
CN (1) | CN111095895B (zh) |
WO (1) | WO2019055235A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11374958B2 (en) * | 2018-10-31 | 2022-06-28 | International Business Machines Corporation | Security protection rule prediction and enforcement |
US11363041B2 (en) | 2020-05-15 | 2022-06-14 | International Business Machines Corporation | Protecting computer assets from malicious attacks |
CN111931183A (zh) * | 2020-07-31 | 2020-11-13 | 中国工商银行股份有限公司 | 开源软件安全漏洞处理方法和装置 |
US20220067173A1 (en) * | 2020-08-27 | 2022-03-03 | Checkmarx Ltd. | Automatic identification of flaws in software systems |
CN112528295B (zh) * | 2020-12-22 | 2023-05-02 | 国家工业信息安全发展研究中心 | 工业控制系统的漏洞修复方法及装置 |
WO2022172437A1 (ja) * | 2021-02-15 | 2022-08-18 | 日本電信電話株式会社 | 影響推定装置、影響推定方法、および、影響推定プログラム |
US20230021414A1 (en) * | 2021-07-26 | 2023-01-26 | SafeOps LLC | Security tool integrated into build platform to identify vulnerabilities |
WO2023031022A1 (de) * | 2021-08-30 | 2023-03-09 | Siemens Aktiengesellschaft | Verfahren zur feststellung einer obsoleszenz einer konformität eines technischen geräts oder gerätesystems, computerprogrammprodukt und prüfrechner |
DE102021209479A1 (de) * | 2021-08-30 | 2023-03-02 | Siemens Aktiengesellschaft | Verfahren zur Feststellung einer Obsoleszenz einer Konformität eines technischen Geräts oder Gerätesystems, Computerprogrammprodukt und Prüfrechner |
WO2023092511A1 (en) * | 2021-11-26 | 2023-06-01 | Huawei Technologies Co.,Ltd. | Methods and apparatuses for software vulnerability detection |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202652255U (zh) * | 2012-05-25 | 2013-01-02 | 中国电力科学研究院 | 一种sql注入安全防护系统 |
CN103999089A (zh) * | 2011-12-23 | 2014-08-20 | 迈克菲公司 | 用于在网络环境中扫描计算机漏洞的系统和方法 |
CN104077531A (zh) * | 2014-06-05 | 2014-10-01 | 中标软件有限公司 | 基于开放漏洞评估语言的系统漏洞评估方法、装置和系统 |
CN104881607A (zh) * | 2015-05-21 | 2015-09-02 | 北京工业大学 | 一种基于模拟浏览器行为的xss漏洞检测系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406603B1 (en) | 1999-08-31 | 2008-07-29 | Intertrust Technologies Corp. | Data protection systems and methods |
US8613080B2 (en) * | 2007-02-16 | 2013-12-17 | Veracode, Inc. | Assessment and analysis of software security flaws in virtual machines |
US9742791B2 (en) * | 2012-12-18 | 2017-08-22 | Tinfoil Security, Inc. | Site independent methods for deriving contextually tailored security vulnerability corrections for hardening solution stacks |
US9930058B2 (en) * | 2014-08-13 | 2018-03-27 | Honeywell International Inc. | Analyzing cyber-security risks in an industrial control environment |
US9641547B2 (en) * | 2014-12-13 | 2017-05-02 | Security Scorecard, Inc. | Entity IP mapping |
EP3065076A1 (en) * | 2015-03-04 | 2016-09-07 | Secure-Nok AS | System and method for responding to a cyber-attack-related incident against an industrial control system |
US20200412767A1 (en) * | 2015-10-28 | 2020-12-31 | Qomplx, Inc. | Hybrid system for the protection and secure data transportation of convergent operational technology and informational technology networks |
-
2018
- 2018-08-31 EP EP18773907.3A patent/EP3665885B1/en active Active
- 2018-08-31 CN CN201880059358.8A patent/CN111095895B/zh active Active
- 2018-08-31 US US16/646,190 patent/US11481500B2/en active Active
- 2018-08-31 WO PCT/US2018/049093 patent/WO2019055235A1/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103999089A (zh) * | 2011-12-23 | 2014-08-20 | 迈克菲公司 | 用于在网络环境中扫描计算机漏洞的系统和方法 |
CN202652255U (zh) * | 2012-05-25 | 2013-01-02 | 中国电力科学研究院 | 一种sql注入安全防护系统 |
CN104077531A (zh) * | 2014-06-05 | 2014-10-01 | 中标软件有限公司 | 基于开放漏洞评估语言的系统漏洞评估方法、装置和系统 |
CN104881607A (zh) * | 2015-05-21 | 2015-09-02 | 北京工业大学 | 一种基于模拟浏览器行为的xss漏洞检测系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200272743A1 (en) | 2020-08-27 |
CN111095895A (zh) | 2020-05-01 |
WO2019055235A1 (en) | 2019-03-21 |
EP3665885A1 (en) | 2020-06-17 |
EP3665885B1 (en) | 2022-05-04 |
US11481500B2 (en) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111095895B (zh) | 检查自动化系统项目安全漏洞的系统和方法 | |
US11853430B2 (en) | Security risk identification in a secure software lifecycle | |
US11036868B2 (en) | Auto-remediation workflow for computer security testing | |
EP3803660B1 (en) | Knowledge graph for real time industrial control system security event monitoring and management | |
US10248542B2 (en) | Screenshot validation testing | |
US8776239B2 (en) | In-development vulnerability response management | |
US20150242431A1 (en) | Computer system log file analysis based on field type identification | |
US9892263B2 (en) | System, method and apparatus to visually configure an analysis of a program | |
US7729786B2 (en) | Natively retaining project documentation in a controller | |
US10084819B1 (en) | System for detecting source code security flaws through analysis of code history | |
US20100070965A1 (en) | Software Update Service with Compatibility Checking | |
US10310961B1 (en) | Cognitive dynamic script language builder | |
US10387288B2 (en) | Interactive analysis of a security specification | |
US10789563B2 (en) | Building confidence of system administrator in productivity tools and incremental expansion of adoption | |
CN113535567A (zh) | 软件测试方法、装置、设备和介质 | |
US10740538B2 (en) | Extraction and transformation of executable online documentation | |
US20190222490A1 (en) | Management of software bugs in a data processing system | |
US20220308988A1 (en) | Generating project requirements using test scripts | |
KR102134357B1 (ko) | 원자력발전소 사이버 취약성 시험을 위한 가상 물리 시스템 및 그 방법 | |
Erdogan et al. | A systematic method for risk-driven test case design using annotated sequence diagrams | |
Javed et al. | SecurityGuard: An Automated Secure Coding Framework | |
El-Attar et al. | Improving Quality in Misuse Case Models: A Risk-Based Approach | |
White et al. | Implementations of a Flexible Framework for Managing Geologic Sequestration Modeling Projects | |
Garrett et al. | Selection and application of programmable controllers |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210301 Address after: Munich, Germany Applicant after: SIEMENS AG Address before: New jersey, USA Applicant before: SIEMENS AG |
|
GR01 | Patent grant | ||
GR01 | Patent grant |