jjzjj

分布式系统安全之​资源协调类–基础结构视图

铸盾安全 2023-03-28 原文

资源协调类–基础结构视图

这类“虚拟化资源访问”主要处理一组计算和通信资源的协调,以提供一组高度可用、高度可靠的“平台”。向用户共享资源。这是一个基础架构(与应用程序)视图,用户在其中指定所需服务的操作要求(例如,计算能力、虚拟机数量(虚拟机)、存储、带宽限制等)但与提供对资源、可伸缩性、物理特征和基础资源的地理位置/分布的按需访问的实际机制无关。

总体而言,此协调模型的关键特征是提供对资源的高可靠性、高可用性访问。基本资源复制仅提供一个资源池来支持高可用性访问。但是,资源复制架构仅提供支持在其上执行的服务“功能”。完整性与服务规范相对应。例如,虚拟机需要提供指定级别的隔离,而不会泄露信息。同样,Web服务器通常会跨计算机复制,以提高可靠性和低延迟的本地化地理分散访问。每个复制的服务器都有相同的数据集,每当更新数据时,都会在复制的服务器上更新一个副本,以提供数据的一致性。服务的性质(在资源平台上执行)决定了所需协调的类型,可能是一致性(强、弱、最终、因果)。这将是稍后讨论的服务协调类的基础。

我们简要介绍云和客户端-服务器模型,它们构成了分布式资源类的突出示例。

云模型

云的所有表现形式都代表了资源协调模型,本质上是服务执行的“资源平台”。有多种类型的云提供各种类型的服务,包括强调高性能、低延迟访问或高可用性以及许多其他属性。它是由所需服务的规范决定的特定资源协调模式,云“平台”基于该模式提供对云资源的结构化访问。所选的协调架构相应地支持所需功能的类型,例如,访问专用计算资源和/或资源容器(如物理机或虚拟机),每个容器在容器之间提供不同的隔离保证。用户指定的服务在云资源上执行,这些资源由云服务提供商管理。协调架构作为集中式或分布式资源管理器,处理任务到资源的映射和调度、调用虚拟机、资源的运行状况监视、故障处理失败的资源,以便用户根据云上指定的合同服务级别协议(SLA)透明地获得对资源的持续访问资源。基础设施即服务(IaaS)和平台即服务(PaaS)的ENISA、NIST和ISO规范是“支持服务的资源/平台/基础设施”的表示。实践中存在的众多云模型、架构和服务使得很难预测单一的云安全概念。每个特定的资源协调模型都以云模型中的资源类型、计算架构的类型以及云中所需的功能。这些包括,作为非详尽的列表,所需的资源错误处理类型,处理服务突发的选择方法,实现的模式类型用于资源联合和迁移、任务编排、调度、所需的并发访问程度、支持的多租户级别等。

但是,从安全角度来看,将云解构为其体系结构和功能组件非常有用,这些组件会导致需要考虑云的攻击面。类似于数据中心的基础架构视图是计算和存储资源的聚合,云是用户按需可用的地理分散资源的聚合。用户可以透明地访问高度可扩展、高可用性、高度可靠的资源和服务虚拟化,与资源位置和资源组合无关。用户将感兴趣的操作属性(称为服务级别目标)指定为(a)性能规范,(b)可靠性,(c)复制和隔离特征作为类型和VM的数量,(d)延迟,(e)作为计算或通信级别的加密级别/程度和其他机制的安全性,以及(f)交付的成本参数或未以称为服务水平协议的合同形式提供服务。资源的确切组成、位置或整理聚合资源的机制对用户是透明的。云的功能块包括身份验证、访问控制、准入控制、资源代理、VM调用、调度程序、监视器、重新配置机制、负载均衡器、PaaS和IaaS范式下的通信基础设施、用户界面、存储和许多其他功能。这些功能块、物理云资源以及它们之间的接口直接构成了云的攻击面。

客户端-服务器模型

资源组,其中一组专用实体(服务器-服务提供商)提供指定的服务(例如,Web服务-文件系统服务器、名称服务器、数据库、数据挖掘者、网络爬虫等)到一组数据使用者(客户端)。通信基础结构(如公共Internet、本地网络或其组合)将服务器链接到客户端。这可以是整体式、分层或分层的。复制服务器和客户端以提供特征性的集体分布式服务或容错。请注意,我们将客户端-服务器体系结构称为资源平台或基础结构,而不是客户端-服务器服务本身。客户端-服务器基础结构的功能派生自使用客户端-服务器模型的服务规范和必要的协调架构在它下面。

可攻击性对资源协调的影响(和缓解方法)

我们现在概述了云的一些示例场景,尽管它们同样适用于客户端-服务器和其他资源模型。读者可以参考[71,72],以对云中的安全性和功能问题进行有见地的讨论。

- 资源泄露:此类攻击会影响基本资源的可用性。

缓解:可以使用访问控制方案(包括防火墙)来限制对服务和网络资源的外部访问,从而获得保护。为授予权限设置了授权流程以及验证实际访问权限的访问控制机制[73]。其他资源保护方法包括沙盒资源或具有执行协调处理的防篡改可信计算库(TCB)[2,3]并强制实施资源访问。虽然资源类主要考虑对基础结构的攻击,但静态或动态数据(如数据存储设施中)也可以被视为资源。因此,可以使用加密等技术对其进行保护。由于分布式服务的规范包括对提供服务的数据的使用正常和异常行为的规范,此保护被视为在服务类下。

资源攻击的其他表现形式(包括通信通道)旨在对资源(和覆盖服务)进行分区。此处的含义是资源的可用性和服务完整性。

- 访问/准入控制泄露:这包括伪装、欺骗和ID管理攻击的广泛类别。对资源的影响是可用性,尽管数据/服务的完整性和机密性都会受到影响。在发生DoS攻击的情况下,后果取决于资源可用性。

缓解:入侵检测系统(IDS)构成了典型的缓解方法。这些由定期或随机ID身份验证查询补充。系统状态的定期检查用于建立ID的健全性。

- VM的入侵:典型的表现是通过隐蔽通道攻击或侧信道攻击或类似攻击从VM泄漏信息。其后果是违反了VM预配的服务的完整性和机密性。

缓解:需要考虑三个方面:泄漏的检测、泄漏发生的系统级别以及泄漏的处理。污点分析是一种强大的数据级别检测技术。由于隐蔽/侧信道攻击通常发生在硬件级别并受到调度程序的影响,因此使用采用硬件性能计数器的检测器是一种常用的技术。VM泄露的系统级处理通常从收紧信任假设的规范并使用分析、正式或实验压力技术验证它们是否得到维护的级别开始。虚拟机管理程序通常用于强制实施VM操作。

调度程序的危害:这种攻击有两种表现形式。当计划程序受到影响并导致异常任务或资源分配时,可以通过Access检测此类偏差(在不正确的资源分配上)控制。在恶意接管调度程序的情况下,系统状态或资源任务绑定之间可能导致的不一致可以通过协调架构进行过滤,协调架构的工作是保持一致的状态。此类攻击通常会影响可用性和完整性。保密性不被破坏。

缓解:如攻击描述中所述,访问控制和协调构造用于检查系统状态的一致性,以发现与合法或允许的资源分配集不匹配。这可用于识别调度程序的损坏。

- 代理泄露:在云资源管理器/代理或云间代理中,这种情况主要影响资源可用性。

缓解:此处使用类似于计划程序泄露缓解的方法。如果备份代理是设计的一部分,那就是典型的回退,否则,系统停止通常是解决方案。

- 沟通妥协:由于沟通是实现资源协调的核心功能,这对保持协调的资源有很强的影响,并直接影响可用性。随之而来的无法支持复制、资源到任务分配等,从根本上损害了系统的功能。

缓解:网络安全CyBOK知识领域[10]中介绍了各种通信保护技术。其中包括重试、基于ACK/NACK的方案、加密安全通道等。

- 监控和记帐方面的妥协:如果有关系统和/或服务状态的信息不正确,这可能会导致机密性、完整性和可用性受到损害。

缓解:状态一致性方案是此处使用的典型机制。值得一提的是,第4节和第4.4节中提出的复制和协调概念构成了缓解方法的基础。复制管理的真正目的是获得一致的系统状态以规避中断。

有关分布式系统安全之​资源协调类–基础结构视图的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  3. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  4. ruby - 是否有用于序列化和反序列化各种格式的对象层次结构的模式? - 2

    给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最

  5. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  6. ruby - 分布式事务和队列,ruby,erlang,scala - 2

    我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和

  7. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  8. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  9. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  10. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

随机推荐