首页 / 使用机器人过程自动化的安全自动化

使用机器人过程自动化的安全自动化无效专利 发明

技术领域

[0003] 本发明一般涉及机器人过程自动化(RPA),并且更具体地涉及使用RPA在整体环境、机器或虚拟机(VM)上执行安全(或穿透(“penetration”)/加固)测试。

相关背景技术

[0004] 穿透测试也被称为pen测试、pentest或道德黑客,其是计算机系统上的经授权的模拟网络攻击,其被执行以评估系统的安全性。该测试被执行以标识弱点(或漏洞),包括针对未授权方获得对系统的特征和数据的访问的可能性以及长处两者,从而使得完全风险评估能够被完成。
[0005] 存在防病毒应用,其执行动态环境上的测试以检查是否存在系统中存在的任何可能的欺诈/病毒。这些防病毒应用搜索文件和签名(或散列)以发现可能的威胁或病毒。然而,这些防病毒应用不执行类似于由人类执行的那些穿透测试。
[0006] 因此,用于使用RPA来执行针对整体环境、机器或VM的穿透测试的改进的方法可以是有益的。

具体实施方式

[0021] 一些实施例涉及一种用于在没有人类干预的情况下使用RPA来执行穿透(pen)测试的方法。在实施例中,为了测试整体环境并且模拟pen测试方,机器人被直接连接并且被钩入操作系统(OS)中。例如,当前部署在OS中的(多个)机器人可以被利用于测试和模拟pen测试。在另一示例中,当前未由OS中的任何应用所利用的特定机器人可以被部署,以测试和模拟pen测试。例如,在pen测试期间,机器人搜索 注册表并且擦掉来自文件系统的数据,以搜索安全漏洞。
[0022] 为了执行pen测试,多个方法可以被采用。例如,(针对每个平台特定的)工作流被编写,使得当被执行时,工作流使机器人执行类似于由pen测试方执行的那些的动作。例如,OS和 OS可以被不同地测试。出于该原因,工作流必须特定于该平台而被编写。
[0023] 在其中pen测试方的动作由鼠标执行的实例中,所执行的动作被记录。例如,当用户正在执行pen测试时,机器人记录用户(例如,pen测试方)的动作。使用用户的所记录的动作,机器人然后测试环境,以检查由各种因素引起的安全漏洞。这些因素可以包括机器上的恶意活动、易受攻击配置、可疑活动、病毒等。
[0024] 在一些实施例中,记录由pen测试方执行的动作或步骤并且存储所记录的动作或步骤的能力可以是原子或链接序列。链接序列可以被限定为将原子动作放置为一个接着另一个,即创建步骤的序列。原子可以被限定为单个步骤或唯一(不可分)动作。
[0025] 应当认识到,机器人记录在环境的每个穿透测试期间的pen测试方的动作。这些动作然后被存储在数据库中。通过连续地记录用户的动作,pen测试方或机器人可以继续改进pen测试,并且在一些实施例中重放pen测试方的动作。
[0026] 在某些实施例中,自定义安全工作流被创建,即pen测试中的一个或多个序列通过添加、移除或编辑针对特定系统和/或环境的每个个体组件来修改。例如,先前工作流或pen测试被审查,并且基于该审查,pen测试被修改以添加、移除或编辑pen测试中的一个或多个步骤。这可以由pen测试方或由机器学习(ML)算法执行。
[0027] 在某些实施例中,使用ML算法,机器人使用所记录的动作来执行穿透测试。例如,ML算法基于由机器人或由pen测试方进行的先前记录的动作来编译新测试、或者修改先前pen测试以用于机器人执行。在一些其他实施例中,两个单独的工作流可以由机器人或pen测试方分析并且可以被组合以创建单个(单一)工作流以用于机器人执行。这可以被完成以优化pen测试过程。
[0028] 如以上简单地讨论的,机器人可以搜索和/或评估安全漏洞。一种评估安全漏洞的方法涉及机器人搜索更新和补丁、标识过期软件。机器人还可以访问包括漏洞的公共或私有数据库。通过访问公共或私有数据库,机器人搜索与所标识的过期软件相关联的漏洞,或者在一些实施例中针对安装于OS上的任何软件来搜索漏洞。
[0029] 另一方法将是“网络”方法。在该方法下,机器人扫描在计算设备或OS上开放的或可用的端口和服务。机器人可以查找每个服务并且标识弱证书登录。在一个示例中,机器人可以使用“默认”证书登录来访问所扫描的端口和服务。针对这种情况的原因是因为许多次,用户可能未改变登录证书并且继续利用“默认”证书登录。机器人还可以使用“暴力”方法。在该方法下,机器人可以使用各种密码和证书来访问端口和服务。该“网络”方法的另一方面将是利用来自已知漏洞的恶意有效载荷来测试开放端口和服务并且分析响应,确定所述端口或服务是否已经以任何方式被包括。
[0030] 在一些实施例中,每个机器人可以被给予不同访问等级。例如,让我们假如说通过社交工程,用户的账户(例如,从法律部门)被泄露。机器人可以通过被泄露的用户账户来渗入(“infiltrate”)环境。另一方面,如果管理员账户被泄露,那么机器人可以渗入被泄露的管理员账户,其具有与其他用户不同的访问等级。取决于访问等级,机器人可以尝试渗入跨OS的不同访问点,例如端口或服务。
[0031] 在另一实施例中,机器人可以被分配预定义访问等级。例如,可以存在具有正常用户访问的机器人、具有管理员用户访问的另一机器人等。这样,每个机器人可以执行针对pen测试的工作流,该pen测试特定于被分配给其的访问等级。
[0032] 一些实施例可以以动态方式允许安全加固。例如,在软件开发中,存在模糊测试的采用的实践。利用模糊测试,在软件发布之前,软件被测试以确保安全问题或漏洞被减少到最小。在该实施例中,机器人可以利用不同的恶意或有缺陷的有效载荷来轰击(“bombard”)目标并且寻找预料不到的行为;因此,以动态方式安全加固。通过安全加固,计算系统的安全性被改进,从而确保计算系统内的漏洞被减少至最小或被消除。
[0033] 在一些实施例中,pen测试可以由机器人协助。例如,机器人被部署为使pen测试的百分之八十(80)自动化,留下pen测试的百分之二十(20)给个体用户(或pen测试方)。应当认识到,由机器人构建的自动化的百分比可以例如取决于pen测试的配置和计算系统的环境而变化。在一些其他实施例中,机器人产生pen测试的报告。在那些实施例中,pen测试方可以审查自动化的pen测试的结果,并且完成剩余的pen测试。
[0034] 在另一实施例中,pen测试方可以将一个或多个机器人部署在pen测试自动化的集群中。在这些实施例中,pen测试方可以并发地执行pen测试,或者等待直到来自pen测试自动化的结果被返回。在一个示例中,在开发者的工作站中,多个端口和服务在任何给定时间开放。在该示例中,一个或多个机器人可以在开放的多个端口和服务上执行pen测试,从而使pen测试方测试工作站的任何未测试部分。未测试部分可以是一个或多个机器人不知道的任何新工具或软件。然而,如果你采用其中一个或多个用户具有特定交互的专用机器的其他示例,那么一个或多个机器人可以执行pen测试自动化并且确认所有其他程序被关闭或保护并且不可由一个或多个用户访问。
[0035] 某些实施例允许通过使用模糊在不同服务或二进制文件上执行动态测试(手工瞄准或自动选择)的能力。利用模糊,例如,可能恶意的或有缺陷的有效载荷由执行工作流的机器人自动生成,以测试目标环境或OS的复原能力和安全性。在该示例中,主要目标是诱发意料不到的行为,这可以是通过使目标崩溃或使错误的输出一起的拒绝服务(DoS)。另一目标将是劫持工作流或通过利用这些有效载荷来获得对特权数据/能力的访问。
[0036] 让我们将这个想象为网络方法或标准本地方法。从网络方法,网络端口被扫描,以标识开放端口。在标识开放端口后,模糊攻击然后由机器人启动。通过模糊,一系列命令被执行。这些命令以使得被执行的所更改的命令可能导致预料不到的行为(诸如,对保密数据或不正常可访问的特征的访问)的方式被正确地格式化或更改。
[0037] 在集群环境中,机器人可以从集中命令点管理并且被部署在环境中的任何系统上并且在执行/部署之后产生报告。在该实施例中,集中命令点可以控制和部署(并且监控)部署于客户的集群中的机器人的动作。例如,特定实例可以专用于pen测试机器人,由此使penTM测试机器人与编排器 中的其他机器人分开。这样,机器人可以基于被分配给机器人的安全等级而被不同地处置。
[0038] 图1是图示根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计并且实现工作流的设计器110。设计器110可以提供用于应用整合的解决方案,以及使第三方应用、管理信息技术(IT)任务和商业IT过程自动化。设计器110可以促进自动化项目的开发,其是商业过程的图形表示。简而言之,设计器110促进工作流和机器人的开发和部署。
[0039] 自动化项目通过给出执行顺序的开发者控制与工作流中所开发的自定义的步骤集(本文定义为“活动”)之间的关系来实现基于规则的过程的自动化。设计器110的实施例TM的一个商用示例是UiPath Studio 。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流可以被嵌套或嵌入。
[0040] 一些类型的工作流可以包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可以特别适合于线性过程,从而实现从一个活动到另一活动的流动而不使工作流杂乱。流程图可以特别适合于更复杂的商业逻辑,从而通过多个分支逻辑操作符,以更多样的方式实现决策的整合和活动的连接。FSM可以特别适合于大的工作流。FSM可以在它们的运行中使用有限数量的状态,其由条件(即转变)或活动触发。全局异常处理程序可以特别适合于当遇到运行错误时确定工作流行为和调试过程。
[0041] 一旦工作流在设计器110中被开发,商业过程的执行由引导器120编排,其编排一个或多个机器人130,该机器人执行在设计器110中开发的工作流。引导器120的实施例的一TM个商业示例是UiPath编排器 。引导器120促进对环境中的资源的创建、监控和部署的管理。
引导器120可以用作与第三方解决方案和应用的整合点。
[0042] 引导器120可以管理一群机器人130,从集中点连接和执行机器人130。可以被管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但是用于开发和测试目的)、以及非生产机器人(类似于有人值守机器人132,但是用于开发和测试目的)。有人值守机器人132由用户事件触发并且在相同计算系统上、在人类旁边操作。有人值守机器人132可以与引导器120一起被使用于集中过程部署和日志记录介质。有人值守机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不可以从这种类型的机器人上的引导器120开始并且/或者它们不可以在锁屏下运行。在某些实施例中,有人值守机器人132可以仅从机器人托盘或从命令提示开始。在一些实施例中,有人值守机器人132应当在人类监督下运行。
[0043] 无人值守机器人134在虚拟环境中无人值守地运行并且可以使许多过程自动化。无人值守机器人134可以负责远程执行、监控、调度和提供对工作队列的支持。在一些实施例中,针对所有机器人类型的调试可以运行在设计器110中。有人值守机器人和无人值守机器人两者可以使包括但不限于以下项的各种系统和应用自动化:大型机、web应用、VM、企业应用(例如,由 等等生产的那些)和计算系统应用(例
如,桌面和笔记本应用、移动设备应用、可穿戴计算机应用等等)。
[0044] 引导器120可以具有各种能力,包括但不限于供给、部署、配置、队列、监控、日志记录和/或提供相互连接性。供给可以包括在机器人130与引导器120(例如,web应用)之间的连接的创建和维护。部署可以包括确保包版本到所分配的机器人130的正确递送,以用于运行。配置可以包括机器人环境和过程配置的维护和递送。队列可以包括提供队列和队列项的管理。监控可以包括保持跟踪机器人标识数据并且维持用户权限。日志记录可以包括将日志存储并且索引到数据库(例如,SQL数据库)和/或另一存储机制(例如,其提供存储并且快速查询大数据集的能力)。引导器120可以通过用作
针对第三方解决方案和/或应用的集中通信点来提供相互连接性。
[0045] 机器人130是执行内置于设计器110中的工作流的运行代理。(多个)机器人130的TM一些实施例的一个商业示例是UiPath机器人 。在一些实施例中,机器人130默认安装微软服务控制管理器(SCM)管理的服务。结果,这样的机器人130可以在本地系统
账号下打开交互 会话,并且具有 服务的权利。
[0046] 在一些实施例中,机器人130可以以用户模式被安装。针对这样的机器人130,这意味着它们具有与用户相同的权利,在其之下给定机器人130已经被安装。该特征还可以用于高密度(HD)机器人,其确保每个机器在其最大潜力的完全利用率。在一些实施例中,任何类型的机器人130可以被配置在HD环境中。
[0047] 在一些实施例中,机器人130被拆分成多个组件,每个专用于特定自动化任务。在一些实施例中,机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理以及命令行。SCM管理的机器人服务管理和监控 会话并且用作在引导器120与运行主机(即,机器人130被运行于其上的计算系统)之间的代理。这些服务可以被信任并且管理针对机器人130的证书。控制台应用可以由SCM在本地系统下启动。
[0048] 在一些实施例中,用户模式机器人服务管理和监控 会话并且用作在引导器120与运行主机之间的代理。用户模式机器人服务可以被信任并且管理针对机器人
130的证书。 应用可以在SCM管理的机器人服务未被安装的情况下而被自动地启动。
[0049] 执行器可以在 会话下运行给定作业(即,它们可以运行工作流)。执行器可以知道每个监视器的每英寸点数(DPI)设置。代理可以是在系统拖盘窗口中显示可用作业的 表示基础(WPF)应用。代理可以是服务的客户端。代理可以请求开始或停止作业并且改变设置。命令行是服务的客户端。命令行是控制台应用,其可以请求开始作业并且等待它们的输出。
[0050] 使机器人130的组件如以上所解释的拆分帮助开发者、支持用户和计算系统更容易地运行、标识并且跟踪每个组件正在执行什么。特殊的行为可以以这种方式根据每个组件来被配置,诸如针对执行器和服务来设置不同的防火墙规则。在一些实施例中,执行器可以总是知道每个监视器的DPI设置。作为结果,工作流可以在任何DPI处被执行,而不管它们被创建于其上的计算系统的配置如何。在一些实施例中,来自设计器110的项目还可以独立于浏览器缩放等级。在一些实施例中,对于DPI不知道的或有意被标记为不知道的应用,DPI可以被禁用。
[0051] 图2是图示根据本发明的实施例的部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100或可以是图1的RPA系统100的部分。应当指出,客户端侧、服务器侧、或两者可以包括任何期望数目的计算系统,而不偏离本发明的范围。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可以不正在计算系统210上运行。执行器212正在运行过程。多个商业项目可以同时运行,如图2中所示出的。在该实施例中,代理214(例如, 服务)是针对所有执行器212的单个接触点。在该实施例中,所有消息被日志记录到引导器230(其经由数据库服务器240、索引器服务器250、或两者来进一步处理它们)中。如以上关于图1所讨论的,执行器
212可以是机器人组件。
[0052] 在一些实施例中,机器人表示机器名与用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互性会话的计算系统(例如, 服务器2012)上,多个机器人可以同时运行,每个机器人使用唯一用户名在单独的 会话中。这在上文被称为HD机器人。
[0053] 代理214还负责发送机器人的状态(例如,定期发送指示机器人仍然正在工作的“心跳”消息)并且下载要被执行的包的所需版本。在一些实施例中,代理214与引导器230之间的通信总是由代理214发起。在通知情景中,代理214可以打开WebSocket通道,其稍后由引导器230使用,以将命令发送到机器人(例如,开始、停止等)。
[0054] 在服务器侧,表示层(web应用232、开放数据协议(OData)代表性状态传输(REST)应用编程接口(API)端点234和通知和监控236)、服务器层(API实现/商业逻辑238)和持久层(数据库服务器240和索引器服务器250)被包括。引导器230包括web应用232、OData REST API端点234、通知和监控236以及API实现/商业逻辑238。在一些实施例中,用户在引导器230的界面(例如,经由浏览器220)中执行的大多数动作通过调用各种API来执行。这样的动作可以包括但不限于开始机器人上的作业、添加/移除队列中的数据、调度作业以运行未被处理的等等而不偏离本发明的范围。web应用232是服务器平台的可视层。在该实施例中,web应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,任何期望的标记语言、脚本语言或任何其他格式可以被使用而不偏离本发明的范围。在该实施例中,用户经由浏览器220与来自web应用232的web交互以便执行各种动作来控制引导器230。例如,用户可以创建机器人组,将包分配给机器人,分析每个机器人和/或每个过程的日志,开始和停止机器人等。
[0055] 除了web应用232,引导器230还包括暴露OData REST API端点234的服务层。然而,其他端点可以被包括而不偏离本发明的范围。REST API由web应用232和代理214两者消费。在该实施例中,代理214是客户端计算机上的一个或多个机器人的监督者。
[0056] 在该实施例中,REST API涵盖配置、日志记录、监控和队列功能。在一些实施例中,配置端点可以用于限定和配置应用用户、权限、机器人、资产、发布和环境。例如,日志记录REST端点可以用于日志记录不同的信息,诸如以错误、由机器人发送的显式消息以及其他环境特异性信息。如果引导器230中使用开始作业命令,部署REST端点可以由机器人用于查询应当被执行的包版本。队列REST端点可以负责队列和队列项管理,诸如将数据添加到队列、从队列获得事务、设置事务的状态等等。
[0057] 监控REST端点可以监控web应用232和代理214。通知和监控API 236可以是用于注册代理214、将配置设置递送到代理214和用于发送/接收来自服务器和代理214的通知的REST端点。在一些实施例中,通知和监控API 236还可以使用WebSocket通信。
[0058] 持久层包括服务器对——在该实施例中为数据库服务器240(例如,SQL服务器)和索引器服务器250。在该实施例中,数据库服务器240存储机器人、机器人组、相关联的过程、用户、作用、调度等的配置。在一些实施例中,该信息通过web应用232来管理。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人日志记录的消息(除了或代替索引器服务器250)。
[0059] 索引器服务器250(其在一些实施例中是可选的)存储并且索引由机器人日志记录的信息。在某些实施例中,索引器服务器250可以通过配置设置被禁用。在一些实施例中,索引器服务器250使用 其是开源项目全文本搜索引擎。由机器人日志记录的消息(例如,使用像日志记录消息或写入行的活动)可以通过(多个)日志记录REST端点被发送到索引器服务器250,其中它们被索引以用于未来利用。
[0060] 图3是图示根据本发明的实施例的在设计器310、活动320、330、驱动340与AI/ML模型350之间的关系300的架构图。根据上文,开发者使用设计器310来开发由机器人运行的工作流。工作流可以包括用户定义的活动320和UI自动化活动330。用户定义的活动320和/或UI自动化活动330可以在一些实施例中调用一个或多个AI/ML模型350,其可以被定位在机器人正在其上操作的计算系统本地和/或与其远程地定位。一些实施例能够标识图像中的非文本可视化组件,其在本文被称为计算机视觉(CV)。涉及这样的组件的一些CV活动可以包括但不限于点击、类型、获得文本、悬停、元素存在、刷新范围、突出显示等等。在一些实施例中,点击使用例如CV、光学字符标识(OCR)、模糊文本匹配和多点锚定来标识元素并点击它。类型可以使用以上来标识元素和该元素中的类型。获得文本可以标识特定文本的位置并使用OCR来扫描它。悬停可以标识元素并在它上方悬停。元素存在可以使用以上描述的技术来检查元素是否存在于屏幕上。在一些实施例中,可以存在可以在设计器210中实现的几百或甚至几千活动。然而,任何数量和/或类型的活动可以是可用的而不偏离本发明的范围。
[0061] UI自动化活动330是以较低等级代码编写并且促进与屏幕的交互的特殊的较低等级活动(例如,CV活动)的子集。UI自动化活动330促进经由允许机器人与期望软件交互的驱动程序340和/或AI/ML模型的这些交互。例如,驱动340可以包括OS驱动342、浏览器驱动344、VM驱动346、企业应用驱动348等。AI/ML模型350中的一个或多个模型可以由UI自动化活动330使用,以便确定执行与计算系统的交互。在一些实施例中,AI/ML模型350可以增强驱动程序340或完全替代它们。实际上,在某些实施例中,驱动程序340未被包括。
[0062] 驱动程序340可以在低等级上与OS交互以寻找钩子、监控密钥等等。它们可以促进与 等等的整合。例如,“点击”活动经由驱动340在这些不同应用中执行相同作用。
[0063] 图4是图示根据本发明的实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是或者包括图1和/或图2的RPA系统100和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由运行于其上的web应用来与引导器计算系统420通信。引导器计算系统420转而能够与数据库服务器430和可选的索引器服务器440通信。
[0064] 参考图1和图3,应当指出尽管web应用被使用在这些实施例中,但是任何适当的客户端/服务器软件可以被使用而不偏离本发明的范围。例如,引导器可以运行服务器侧应用,其与客户端计算系统上的非基于web的客户端软件应用通信的服务器侧应用。
[0065] 图5是图示根据本发明的实施例的被配置为在没有人类干预的情况下执行穿透测试的计算系统500的架构图。在一些实施例中,计算系统500可以是本文描绘和/或描述的计算系统中的一个或多个计算系统。计算系统500包括用于传送信息的总线505或其他通信机制以及用于处理信息的耦合到总线505的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例、和/或其任何组合。(多个)处理器510还可以具有多个处理核心,并且核心中的至少一些核心可以被配置为执行特定功能。在一些实施例中,多机并行处理可以被使用。在某些实施例中,(多个)处理器510中的至少一个处理器可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不要求冯诺依曼计算架构的常见组件。
[0066] 计算系统500还包括用于存储信息和要由(多个)处理器510执行的指令的存储器515。存储器515可以由以下项的任何组合构成:随机存取存储器(RAM)、只读存储器(ROM)、闪存、高速缓存、诸如磁盘或光盘的静态存储设备或任何其他类型的非暂态计算机可读介质或其组合。非暂态计算机可读介质可以是可以由(多个)处理器510访问的任何可用介质并且可以包括易失性介质、非易失性介质、或两者。介质还可以是可移除的、不可移除的、或两者。
[0067] 附加地,计算系统500包括通信设备520,诸如收发器,以提供经由无线和/或有线连接对通信网络的访问。在一些实施例中,通信设备520可以被配置为使用频分多址(FDMA)、单载波FDMA(SC‑FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动通信系统(GSM)、通用分组无线业务(GPRS)、通用移动通信系统(UMTS)、cdma2000、宽带CDMA(W‑CDMA)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、高速分组接入(HSPA)、长期演进(LTE)、LTE高级(LTE‑A)、802.11x、Wi‑Fi、Zigbee、超宽带(UWB)、802.16x、802.15、主节点‑B(HnB)、蓝牙、射频标识(RFID)、红外数据协会(IrDA)、近场通信(NFC)、第五代(5G)、新无线(NR)、其任何组合、和/或任何其他当前存在的或未来实现的通信标准和/或协议而不偏离本发明的范围。在一些实施例中,通信设备520可以包括单数的、阵列的、相控的、切换的、波束形成的、波束操纵的、其组合和/或任何其他天线配置的一个或多个天线而不偏离本发明的范围。
[0068] (多个)处理器510还经由总线505进一步被耦合到显示器525,诸如等离子显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性衬底显示器、投影显示器、4K显示器、高清显示器、视网膜显示器、共面切换(IPS)显示器或用于将信息显示给用户的任何其他适当的显示器。显示器525可以被配置为使用电阻、电容、表面声波(SAW)电容、红外、光学成像、色散信号技术、声学脉冲标识、受抑总内反射等等来触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多触摸显示器等等。任何适当的显示设备和触觉I/O可以被使用而不偏离本发明的范围。
[0069] 键盘530和光标控制设备535(诸如,计算机鼠标、触摸板等)被进一步耦合到总线505以使用户能够与计算系统500接口连接。然而,在某些实施例中,物理键盘和鼠标可以不存在,并且用户可以仅通过显示器515和/或触摸板(未示出)与设备交互。输入设备的任何类型和组合可以被用作设计选择的问题。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一计算系统与计算系统500远程地交互,或者计算系统500可以自主地操作。
[0070] 存储器515存储当由(多个)处理器510执行时提供功能的软件模块。模块包括用于计算系统500的OS 540。模块还包括被配置为执行本文描述的过程或其衍生物中的全部或部分的安全自动化模块545。例如,pen测试模块545可以执行工作流(或者其可以是工作流本身)以使一个或多个机器人模拟OS上的穿透测试。计算系统500可以包括一个或多个附加的功能模块550,其包括附加的功能。
[0071] 本领域技术人员将认识到,“系统”可以被具化现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、量子计算系统或任何其他适当的计算设备、或设备的组合而不偏离本发明的范围。将上述功能呈现为由“系统”执行不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与包括云计算系统的计算技术一致的本地和分布式形式实现。计算系统可以是局域网(LAN)、移动通信网络、卫星通信网络、互联网、公共云或私有云、混合云、服务器农场、其任何组合等的部分或以其他方式可由其访问。任何本地和分布式架构可以被使用而不偏离本发明的范围。
[0072] 应当指出,本说明书中描述的系统特征中的一些特征已经被呈现为模块,以便更特别地强调它们的实现独立性。例如,模块可以被实现为包括自定义超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管或其他分立组件的现成半导体的硬件电路。模块还可以被实现在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中。
[0073] 模块还可以至少部分地以软件来实现以用于由各种类型的处理器执行。可执行代码的所标识的单元可以例如包括:可以例如被组织为对象、流程或函数的计算机指令的一个或多个物理或逻辑块。然而,所标识的模块的可执行件不需要物理上被定位在一起,而是可以包括存储在不同位置中的不同的指令,其当在逻辑上连接在一起时,包括该模块并且实现针对该模块所陈述的目的。另外,模块可以被存储在计算机可读介质上,计算机可读介质可以为例如用于存储数据的硬盘驱动器、闪速设备、RAM、带和/或任何其他这样的非暂态计算机可读介质而不偏离本发明的范围。
[0074] 实际上,可执行代码的模块可以是单个指令或许多指令,并且可以甚至被分布在若干不同的代码段上、不同程序之中以及跨多个存储器设备分布。类似地,操作数据可以在本文被标识和图示在模块内,并且可以以任何适当的形式来具化并且被组织在任何适当类型的数据结构内。操作数据可以被收集为单个数据集,或者可以被分布在不同的位置上,包括在不同的存储设备上,并且可以至少部分地仅作为电子信号存在于系统或网络上。
[0075] 图6是图示根据本发明的实施例的用于针对安全漏洞测试整体环境的方法600的流程图。在一些实施例中,安全自动化(例如,pen测试)工作流可以在一个或多个OS上被执行。为了开始,方法600可以在605处将一个或多个机器人直接连接到平台的OS中开始。在610处,机器人确定OS并且加载合适的工作流以便执行pen测试。这是重要的,因为服务可以正在不同端口号上运行或者可以具有取决于OS的不同二进制文件。出于这个原因,机器人还可以确定OS正在操作于其中的环境,和/或针对给定OS或计算系统的用户等级访问。应当指出,该确定可以通过运行不同的命令来实现,并且基于命令的输出,OS类型可以被确定。
基于该确定,机器人可以加载工作流以执行pen测试。在615处,一个或多个机器人模拟OS上的pen测试,以标识OS和/或环境内的恶意活动或易受攻击配置。在620处,针对用户生成报告。报告标识操作系统内的恶意活动或易受攻击配置。
[0076] 用户可以然后修复报告中标识的漏洞。在另一实施例中,机器人可以标识恶意活动和/或易受攻击配置,并且安装补丁以修复所标识的问题,安装安全更新,关闭与漏洞相关联的服务,终止程序/二进制文件的执行,关闭一个或多个端口等。
[0077] 在一些附加的实施例中,机器人将恶意活动和/或漏洞报告给系统机器人。系统机器人可以然后基于报告来执行纠正措施。参见例如图8。这些纠正措施可以类似于以上段落中讨论的那些。
[0078] 图7是图示根据本发明的实施例的用于修改工作流的方法700的流程图。在一些实施例中,方法700可以在705处以在由机器人完成pen测试之后机器人生成pen测试的报告开始。在710处,ML算法将工作流报告与工作流的仓库和/或来自pen测试的结果进行比较。在一些实施例中,工作流可以与由pen测试方或机器人进行的先前所记录的pen测试进行比较。在715处,ML算法通过修改工作流中的一个或多个步骤或将工作流与先前存储在数据库中的另一工作流组合来修改工作流。在720处,ML算法生成用于机器人执行的新的修改的工作流。该方法特别有用,因为工作流中的先前运行时错误、工作流中的缺陷或漏洞等可以被移除,由此改进针对pen测试的总体工作流。
[0079] 图6和图7中执行的过程步骤可以由根据本发明的实施例的将针对(多个)处理器的指令编码为执行图6和图7中描述的(多个)过程的至少部分的计算机程序执行。计算机程序可以被具化于非暂态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪速设备、RAM、磁带和/或任何其他这样的介质或用于存储数据的介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)实现图6和图7中描述的过程步骤中的全部或部分的编码的指令,其还可以被存储在计算机可读介质上。
[0080] 计算机程序可以以硬件、软件或混合实现来实现。计算机程序可以由与彼此操作性通信并且被设计为传递信息或指令,以显示的模块组成。计算机程序可以被配置为在通用计算机、ASIC或任何其他适当的设备上操作。
[0081] 图8是图示根据本发明的实施例的用于在pen测试期间由一个或多个机器人执行一系列步骤的工作流800的示意图。在一些实施例中,工作流800以确定操作系统开始。工作流800可以然后执行发现攻击表面序列,其加载pen测试的参数并且执行测试。工作流800可以然后准备来自pen测试的报告,并且响应于报告,可以执行对在测试期间所发现的漏洞或安全缺口的补丁或修复。工作流800还可以生成报告发现。报告发现可以包括漏洞和建议的修改或由机器人执行的修复。应当认识到,具有不同访问/权限等级的一个或多个机器人可以执行工作流800。
[0082] 图9和图10是分别图示根据本发明的实施例的用于执行目标模糊方法的概念状态机和工作流900、1000的示意图。工作流900、1000两者可以由具有不同访问/权限等级的一个或多个机器人执行。为了开始模糊,工作流900、1000可配置为附接目标程序,并且基于目标程序来生成用于执行模糊的有效载荷。工作流900和1000可以针对目标运行有效载荷,并且分析运行的行为。取决于分析,报告发现被生成或另一目标通过工作流创建以执行另一模糊攻击。工作流900和1000之间的差别在于工作流900是更简化的工作流,其用于解释模糊的概念的目的。
[0083] 尽管一些实施例讨论对pen测试的使用,但是应当认识到其他技术可以被使用。例如,任何类型的安全测试或加固可以由一个或多个机器人执行。
[0084] 将容易理解,如大体在本文的附图中描述和图示的,本发明的各种实施例的组件可以以各种各样的不同配置来布置和设计。因此,如附图中表示的本发明的实施例的详细描述不旨在限制如要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。
[0085] 在整体本说明书中所描述的本发明的特征、结构或特性可以以任何适当的方式被组合在一个或多个实施例中。例如,在整体本说明书中对“某些实施例”、“一些实施例”或类似语言的引用意味着结合该实施例描述的特定特征、结构或特性被包括于本发明的至少一个实施例中。因此,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言在整体本说明书中的出现不必然全部指代同一组实施例并且所描述的特征、结构或特性可以以任何适当的方式被组合在一个或多个实施例中。
[0086] 应当指出,在整体本说明书中对特征、优点或类似语言的引用不暗示可以用本发明实现的所有特征和优点应当在或在本发明的任何单个实施例中。相反,引用特征和优点的语言被理解为意味着结合实施例描述的特定特征、优点或特性被包括于本发明的至少一个实施例中。因此,在整体本说明书中对特征和优点以及类似语言的讨论可以但不必然指代相同实施例。
[0087] 另外,本发明的所描述的特征、优点和特性可以以任何适当的方式被组合在一个或多个实施例中。相关领域的技术人员将意识到,本发明可以在没有特定实施例的具体特征或优点中的一个或多个的情况下被实践。在其他实例中,可以在某些实施例中意识到本发明的所有实施例中可能不存在的附加特征和优点。
[0088] 本领域普通技术人员将容易理解,如以上所讨论的本发明可以以按照不同顺序的步骤和/或用不同于公开的那些的配置中的硬件元件来实践。因此,尽管本发明已经基于这些优选实施例来描述,对本领域技术人员将明显的是,某些修改、变型和备选结构将是明显的,同时保持在本发明的精神和范围内。为了确保本发明的边界和界限,因此应当参考随附权利要求书。

当前第1页 第1页 第2页 第3页