第9章 安全漏洞、威胁和对策(9.11-9.16)

9.11 专用设备

专用设备王国疆域辽阔,而且仍在不断扩张。

专用设备是指为某一特定目的而设计,供某一特定类型机构使用或执行某一特定功能的任何设备。

它们可被看作DCS、物联网、智能设备、端点设备或边缘计算系统的一个类型。

医疗设备、智能汽车、无人机和智能电表都属于专用设备。

越来越多的医疗系统正与物联网技术融为一体,成为可在远程访问下接受监控和管理的专用设备。

这称得上医疗保健的一大创新,但它也有安全风险。所有计算机系统都是攻击和滥用的对象。

所有计算机系统都具有可被攻击者发现和滥用的错误和弱点。

尽管大多数医疗设备供应商都致力于提供强健和安全的产品,但他们不可能把每种可能的攻击、访问或滥用都考虑周全并进行测试。

现在,医疗设备被DoS远程控制、禁用、访问或攻击的例子早已屡见不鲜。

我们使用任何医疗设备时,都要考虑远程访问(有线的或无线的)对其所提供的医疗服务是否真的至关重要

如果医疗设备的网络功能不是必不可少的,则不妨禁用它,这可能依然是明智之举。

个人电脑或智能手机若遭人入侵,可能只是会造成不便或让人陷于尴尬,但医疗设备不一样,对它们的恶意入侵可能会危及人的生命。

车载计算系统可以包含用于监控发动机性能并优化制动、转向和减震的组件,但也可以包含与驾驶、环境控制和娱乐相关的仪表盘元素。

早期的车载系统是静态环境,很少有或者根本没有调整或改变的能力,尤其是由车主/司机进行调整或改变的能力。

现代车载系统可以提供更广泛的能力,包括连接移动设备或运行自定义应用程序的能力。

车载计算系统可能配备了充分的安全机制,但也可能没有。

即便系统只提供信息,如发电机性能、娱乐和导航,你也必须弄清解决方案包含哪些安全性能(如果有的话)。

系统是否连接云服务?通信是否被加密?身份认证有多强?系统是否会被未经授权第三方轻易访问?

如果车内计算系统正控制着汽车(这或许就是所谓的自动驾驶),那么你更应该把安全视为系统的重点设计元素,否则汽车会从一个方便的运输工具变成一个死亡之箱。

几十年来,自动驾驶系统一直是飞机的一部分。

在你乘坐过的大多数飞机中,人类飞行员可能只在飞机起飞和降落时完全控制飞机——即便是在飞机起降时,情况也不总是这样。

飞机在飞行的大部分时间里可能都是由自动驾驶系统控制的。

军方、执法部们和业余爱好者使用无人驾驶飞行器(UAV)或无人机已有多年,但它们通常是由人远程控制的。

现如今,有了自动飞行系统,无人机可以完全自主地起飞、飞往目的地和降落了。

许多零售商甚至在试验通过无人机递送食品或其他包裹,并在一些国家开始实施。

自动化飞机、无人机和无人驾驶飞行器的安全已成为我们所有人都关心的问题。

这些系统能否抵御恶意软件感染、信号中断、远程控制接管、人工智能故障和远程代码执行?

无人机与授权控制系统的连接是否经过身份认证?无人机的通信是否加了密?当与控制系统的所有联系都被DoS或信号干扰阻断时,无人机有什么办法?

一架无人机若遭人破坏,可能会使你丢失披萨,或导致产品损毁、砖瓦碎裂乃至严重的身体伤害。

智能电表是一种可以远程访问的电表。

它允许电力供应商远程跟踪能源的使用情况

一些智能电表还允许用户查看收集到的统计数据

第三方智能电表安装在建筑物中,可根据能耗特征识别设备、家电和装置。

这些类型的智能电表可跟踪设备的用电情况并提供指导,帮助你最大限度地减少能涌消耗。

9.12 微服务(microservice)

评估和了解系统架构所含漏洞的过程至关重要,特别是在技术和流程集成方面。

由于在构建新的独有业务功能时会有多种技术和复杂流程交织在一起,常常会有新情况和安全问题出现。

集成系统时,应该注意潜在的单点故障点以及面向服务架构(service-oriented architecture, SOA)中存在的紧迫弱点。

SOA从现有但独立的软件服务构建新的应用程序或功能。

所得出的往往是新应用程序;因此,它们的安全问题是未知、未经测试和没有得到保护的。

所有新的部署,尤其是新的应用程序或功能,在被允许进入生产网络或公共互联网之前,都要经过全面的检查

微服务是基于Web解决方案的一个新兴特性,属于SOA的衍生品。

微服务只是Web应用程序的一个元素、特性、能力、业务逻辑或功能,可供其他Web应用程序调用或使用。

微服务从一个Web应用程序的功能转换而来,是可由许多其他Web应用程序调用的一项服务

微服务的创建往往是为了通过独立部署的服务提供特定用途的业务功能

微服务通常很小,专注于某一单项操作,被设计得很少依赖其他元素,开发周期短平快(类似于敏捷)。

基于不可变架构(或基础设施即代码)部署微服务的做法现在也很常见。

微服务是当下流行的一种开发战略,因为它允许把大型复杂解决方案分解成一个个较小的自含功能

这种设计还允许多个编程团队协同工作,同时制作单独的元素或微服务。

微服务与应用编程接口(API)的关系是,每个微服务都必须有一个定义明确(并受到保护)的API以实现多个微服务之间以及微服务和其他应用程序之间的输入、输出。

微服务是一种编程或设计架构,而API是推动通信和数据交换的标准化框架。

—————————————————————————————————————————

提示:

服务交付平台(service delivery platform, SDP)是组件服务交付架构的组件集合。

SDP的用途往往与电信相关,但也可用于许多其他场合,包括VoIP、Internet TV、SaaS和在线游戏。

服务交付平台与内容分发网络(content delivery network, CDN)(参见第11章)很像,二者都旨在支持高效交付资源(如SDP的服务和CDN的多媒体)。

SDP的目标是为其他内容或服务提供者提供透明的通信服务

SDP和CDN都可以用微服务实现。

—————————————————————————————————————————

9.13 基础设施即代码(infrastructure as code, IaC)

基础设施即代码体现了人们在认知和处理硬件管理方面的一种改变。

以往硬件配置被看作一种手动的、直接操作的、一对一的管理难题,而如今,硬件配置被视为另一组元素的集合。

要像在DevSecOps(安全、开发和运维)模式下管理软件和代码那样对硬件配置实施管理

采用IaC时,硬件基础设施的管理方式与软件代码的管理方式基本相同,包括:版本控制、部署前测试、定制测试代码、合理性检查、回归测试和分布式环境中的一致性。

硬件管理方法的这种改变使许多机构得以简化对基础设施的改造,从而使这项工作变得比以前更容易、更快速、更安全和更可靠。

IaC往往用机器可读的定义文件和规则集来快速部署新设置并对硬件实施一致而有效的管理。

这些文件可在硬件的开发、测试、部署、更新和管理方面充当软件代码。

IaC并非仅针对硬件,它还适用于监控和管理虚拟机(VM)、存储区域网(SAN)和软件定义网络(SDN)。

IaC常常要求采用硬件管理软件,如Puppet等。

这样的解决方案可提供版本控制、持续集成以及针对IT基础设施中过去无法接受这种管理方式的部分的代码检查。

不可变架构(immutable architecture)

不可变架构是指服务器一旦部署就绝不可变更的概念。

当服务器需要更新、修改、修复或以其他方式更改时,要构建一个新服务器或从当前服务器克隆一个新服务器来实施必要变更,然后用这个新服务器取代以前的服务器。

新服务器经过验证后,旧服务器将退役。

虚拟机将被销毁,而物理硬件/系统将被重新用于未来的部署。

不可变架构的好处体现在它的可靠性、一致性和可预测部署进程上。

它消除了百变基础设施中常见的问题——中游更新和更改可能会导致停机、数据丢失或不兼容。

不可变架构的理念常被比喻为宠物与牲畜以及雪莲花与凤凰。

如果服务器被当作宠物看待,那么服务器一旦出了毛病,人人都会出手救助。

然而,如果服务器被当成牲畜看待,则服务器出毛病时,人们会将它拖出去一杀了之,然后用另一个服务器取而代之。

如果服务器是人们以独有方式管理的,那它就是一片雪绒花,必须得到特别的重视和关心,这将导致管理时间和关注度的增加,环境的复杂性就更不用提了。

如果服务器永远都是从零开始构建的,那么当服务器需要更改时,可通过自动化流程创建成改进的新系统,从而使其像凤凰一样

从(以前已退役的服务器的)灰烬中重生。

这样可以最小化管理负担,减少部署时间并保持环境中的一致性。

软件定义网络(SDN)基础设施即代码(IaC)分布式计算环境(DCE)的衍生品。

SDN是指把网络当作虚拟或软件资源进行管理——即便从技术上说管理依然发生在硬件上。

这与IaC的概念相同,也就是可用类似于管理软件的方式管理硬件。

同理,DCE是共同支持资源或提供服务的单个系统的集合

与此相似,SDN是用于实现网络管理和控制虚拟化的硬件和软件元素的集合

有关软件定义网络的详细信息,请参见第11章。

9.14 虚拟化系统

虚拟化技术(virtualization technology)用于在一台主计算机的内存中托管一个或多个操作系统,或用于运行与主机操作系统不兼容的应用程序

这种机制实际上允许任何操作系统在任何硬件上运行。

它还允许多个操作系统在同一硬件上同时工作。

常见的例子包括:VMware Workstation Pro、VMware vSphere和vSphere Hypervisor、VMware Fusion for Mac、Microsoft Hyper-V Server、Oracle VirtualBox、Citrix Hypervisor和Parallels Desktop for Mac。

由于虚拟化技术可以节约大量成本,机构越来越多地采用虚拟化技术。

例如,一家机构可以把100台物理服务器减少到只需要10台,每台物理服务器托管10个虚拟服务器。

这样可以降低暖通空调成本、电力成本和整体运行成本

管理程序(hypervisor)也被称为虚拟机监视器/管理器(virtual machine monitor/manager,VMM),是创建、管理和运行虚拟机的虚拟化组件。

运行管理程序的计算机叫主机操作系统,在管理程序支持的虚拟机中运行的操作系统叫客户操作系统或虚拟化系统

I型管理程序(type I hypervisor)是一个本地或裸机管理程序(图9.3 的上半部分)。

这个配置中没有主机操作系统;相反,管理程序通常被直接安装在主机操作系统所在的硬件上

I型管理程序往往用于支持服务器虚拟化。这样做可以最大化硬件资源,同时消除主机操作系统带来的任何风险或资源的减少。

II型管理程序(type II hypervisor)是一个受托管的管理程序(图9.3 的下半部分)。

在这种配置中,硬件上有一个标准的常规操作系统管理程序作为另一个软件应用程序被安装和使用

II型管理程序往往用于桌面部署,其中由客户操作系统提供安全沙箱区域来测试新代码,允许执行旧有应用程序,支持来自备用操作系统的应用程序,并为用户提供对主机操作系统功能的访问。

图9.3 管理程序的类型

云计算是虚拟化、且联网、分布式架构以及对数据和资源的泛在访问需求的自然延伸和演变。

然而,云计算确实存在一些安全隐患,包括:隐私问题、合规困难、开源与闭源解决方案之争、开放标准的采用,以及基于云的数据是否确实受到安全保护(或是否有安全保障)的问题。

关于云计算的详细信息,请参见第16章。

虚拟化(virtualization)的好处:

按需启动虚拟服务器或服务的单个实例,

可实时扩展、

能够根据特定应用程序的需要运行确切版本的操作系统

虚拟化还可以提供一种合理的安全方式来继续运行使用生产期终止(end-of-life, EOL)、服务期终止(end-of-service-life, EOSL)/支持期终止(end-of-support, EOS) 的操作系统,以支持旧有业务应用程序。

从用户的角度看,虚拟化的服务器和服务,与传统的服务器和服务没有区别。

此外,损坏、崩溃或遭破坏的虚拟系统恢复起来往往非常快,只需要用干净的备份版本替换虚拟系统的主硬盘文件,然后重新启动。

弹性(elasticity)是指虚拟化和云解决方案(见第16 章)根据需要扩展或缩减资源使用情况的灵活性。

主机弹件与虚拟化相关,利用主机弹性,可以在需要的时候启动额外的硬件主机,将其用于在新的可用容量上分配虚拟化服务的工作负载。

随着工作负载越变越小,你可以将虚拟化服务从不再需要的硬件中撤出,进而关闭这些硬件,以节约电力和减少热量。

弹性还可指虚拟机/客户操作系统在需要时即时利用任何空闲硬件资源,并在不需要时释放这些资源的能力

举例来说,一台支持5个基于虚拟机的客户操作系统的硬件主机可能有30%多的CPU计算容量被闲置。

如果一个进程密集型应用程序在其中一个虚拟机上启动,那它可能会消耗额外的硬件主机CPU容量;

接下来,一旦这个应用程序完成了它的密集工作任务,资源就会被释放。

几十年来,弹性一直是经典单机系统共同具有的一种能力,但是现在实现虚拟化后,资源的使用可以在多个进程之间共享——它可以横跨同一硬件主机上的多个虚拟机,也可能横跨多台硬件主机。

此外,还须掌握可扩展性与弹性之间的关系,这同样很重要。这些词语意义相近,但描述的是不同的概念。

弹性是指为满足当前的处理需要而扩充或缩减资源,而可扩展性是指承担更多工作或任务的能力。

通常,可扩展性是一种软件特点,表明软件可以处理更多任务或工作负载,

而弹性是一种硬件或平台特点,表明资源经过优化后可以满足当前任务的需要。

可扩展的系统必须同时有很好的弹性,但弹性好的系统不必可扩展。

虚拟化可以为安全带来许多好处。

备份整个虚拟系统往往比备份本地安装的等效硬件系统更容易,也更快。

快照(也叫检查点)是虚拟机的备份方式。

此外,当虚拟系统出现错误或问题时,可以在几分钟内调用快照备份来替换。

由于管理程序实现了虚拟机与虚拟机之间以及虚拟机与主机之间的分隔,恶意代码入侵或感染虚拟系统的情况很少会影响主机操作系统。

这为安全测试和实验带来了方便。

虚拟化可广泛用于各种新架构和系统设计解决方案。

虚拟化可以在本地(或至少在机构的私有基础设施内)用于托管服务器、客户端操作系统、有限的用户界面(即虚拟桌面)、应用程

序等。

9.14.1 虚拟软件(virtual software)

虚拟应用程序(virtual application)虚拟软件是这样一种软件产品:它的部署方式会让访问者误认为自己正在与整个主机操作系统交互。

虚拟(或虚拟化的)应用程序经过打包或封装后,可以在不完全访问主机操作系统的情况下执行和操作。

虚拟应用程序与主机操作系统是隔离的,因此不能对主机操作系统做任何直接或永久的改动。

任何更改,如文件写入、配置文件或注册表修改或系统设置变更,都会被隔离管理器拦截并记录下来(通常记录到一个文件中)。

这会使被封装的软件感觉自己在与操作系统交互,而这种交互其实并没有发生。

因此,虚拟应用程序执行起来与任何常规安装的应用程序一样,但是它所交互和更改的只是操作系统的虚拟表示,而不是实际的操作系统。

在许多情况下,这个概念就是沙盒化。

许多产品都能提供软件虚拟化,包括:

Citrix Virtual Apps、Microsoft App-V、Oracle Secure Global Desktop、Sandboxie 和VMware ThinApp。

在许多情况下,通过软件虚拟化工具操作应用程序可将安装好的应用程序有效转变成可移植应用程序

这意味着可以把应用程序的封装和文件转移到另一个(配备了相同的软件虚拟化产品的)操作系统上执行。

此外,还可以把应用程序的封装放进可移动介质里,然后在插入另一个计算机系统的便携式存储设备上执行软件。

一些软件虚拟化解决方案可使一个操作系统上的应用程序在另一个操作系统上运行。

例如,Wine允许一些Windows 软件产品在Linux 上执行。

软件虚拟化的概念已经进化出它自己的虚拟化派生概念,即容器化(containerization),后面的“容器化”小节将专门介绍这个概念。

9.14.2 虚拟化网络(virtualized network)

操作系统虚拟化的概念催生了其他虚拟化主题,如虚拟化网络。

虚拟化网络或网络虚拟化(network virtualization)是指将硬件和软件网络组件组合成一个集成的实体

由此产生的解决方案允许对管理、通信流整型、地址分配等所有网络功能实施软件控制。

只用一个管理控制台或接口便可监视虚拟网络的每个方面,而在过去,这项任务要求每个硬件组件都必须是实际存在的。

虑拟化网络已成为全球企业普遍采用的基础设施部署和管理方式。

它们允许机构执行或适应自己感兴趣的其他网络解决方案,包括软件定义网络(SDN)、虚拟存储区域网(SAN)、客户操作系统和端口隔离。

你可以对虚拟机采用自定义虚拟网络分段(virtual network segmentation),使客户操作系统的成员与主机的成员属于同一个网络分区,也可以把客户操作系统放置到备选的网络分区中。

你可以让虚拟机成为与主机成员不在同一个网段的成员,或者把虚拟机放置在一个仅虚拟存在且不与物理网络介质有关联的网络(其实就是SDN; 参见第11章)中。

9.14.3 软件定义一切(software-defined everything, SDx)

虚拟化并不局限于服务器和网络。

软件定义一切指的是通过虚拟化用软件取代硬件的一种趋势。

SDx包括:虚拟化、虚拟化软件、虚拟化网络、容器化、无服务器架构、基础设施即代码、软件定义网络(SDN,第11章)、虚拟存储区域网(VSAN,第11章)、软件定义存储(SDS,第11章)、虚拟桌面基础设施(VDI)、虚拟移动基础设施(VMI)、软件定义可见性(SDV)和软件定义数据中心(SDDC) 。

本节只讨论没有被其他章节(指本章其他小节或第11 章)定义的SDx的例子。

虚拟桌面基础设施(virtual desktop infrastructure, VDT)旨在通过在可供用户远程访问的中央服务器上托管桌面/工作站操作系统虚拟机来降低终端设备安全风险和满足性能要求。

因此,VDI也被称为虚拟桌面环境(VDE)。用户连接服务器后,几乎可以从任何系统(包括从移动设备)访问他们的桌面。

持久虚拟桌面为用户保留一个可定制的桌面。非持久虚拟桌面对所有用户都是相同的和静态的

如果用户做了更改,那么待用户退出后,桌面将恢复到已知状态(请参见本章前面“静态系统”小节关于静态系统的讨论)。

—————————————————————————————————————————

提示:

虚拟桌面(virtual desktop)一词至少可以指三种不同类型的技术。

•一种远程访问工具,允许用户远程查看和控制远方台式机的显示器、键盘、鼠标等,从而授予用户访问远程计算机系统的权限。

虚拟应用程序概念的扩展,为了便捷或跨操作系统操作,封装了多个应用程序和某种形式的"桌面”或外壳。

这种技术为另一平台的用户提供了一个平台的一些性能/优势/应用程序,使他们不必使用多台计算机、双引导或虚拟化整个操作系统平台。

•一个大于当下流行显示器的扩展桌面,允许用户使用含多个应用程序的桌面布局,可通过敲击键盘或移动鼠标以在应用程序之间进行切换。

—————————————————————————————————————————

虚拟桌面基础设施(VDI)被移动设备采用,并广泛应用于平板电脑和笔记本电脑。

这种方法能把存储控制保留在中央服务器,可以访问更高级别的系统处理和其他资源,并且允许低端设备访问超出其自身硬件容量的软件和服务。

VDI催生了在中央服务器上虚拟化移动设备操作系统的虑拟移动基础设施(virtual mobile infrastructure, VMI)

因此,传统移动设备的大多数操作和活动不再在移动设备本身上发生。

与使用标准移动设备平台的情形相比,这种远程虚拟化赋予机构更大的控制力和更好的安全性

它还可以使个人拥有的设备在不增加风险的情况下与VDl交互。

瘦客户机(thin client) 是一种计算机或移动设备,具有较低或中等功能或一个虚拟接口,用于远程访问和控制大型机、虚拟机、VDI或VMI。

瘦客户机在20世纪80年代非常常见,当时大多数计算都在中央大型机上进行。

今天,瘦客户机被重新引入以减少高端端点设备的开支,这些端点设备要么不需要本地计算和存储,要么存在重大的安全风险。

瘦客户机可用于访问被托管在机构场地内或云端的集中资源。

所有处理/存储都在服务器或中央系统上执行,因此瘦客户机只为用户提供显示器、键盘和鼠标/触摸屏功能。

软件定义可见性(software-defined visibility, SDV) 是一个推动网络监控和响应进程实现自动化的框架。

它旨在让每个数据包都得到分析,可以使有关转发、剔除或以其他方式响应威胁的决定在深度情报的基础上做到有的放矢。

SDV致力于让公司、安全实体和托管服务提供商(MSP)都能从中受益。SDV的目标是实现检测、反应和响应自动化

它将着重从防御和效率的角度提供安全保护和IT管理,并全面监管公司网络,包括机构本地网络和云网络。

SDV是基础设施即代码(laC)的另一个衍生品。

—————————————————————————————————————————

一切即服务(XaaS)

一切即服务(anything as a service, XaaS) 是一种笼统的说法,指可以通过或借助云解决方案向客户提供任何类型的计算服务或功能。

许多向客户推出新产品的服务提供商往往把技术托管在云解决方案中而不再将其安装到机构的本地设备里。

与以前的部署方式相比,这种做法具有扩展速度快、伸缩自如、可用性强等优势

XaaS发展良好的一个领域是安全即服务(SECaaS),即通过云解决方案提供各种形式的安全服务,包括备份、身份认证、授权、审计/追责、反恶意软件、存储、SIEM、IDS/IPS分析和监控即服务(Maas) 。

SECaaS提供商也被称为托管服务提供商(MSP)托管安全服务提供商(MSSP)

MSP和MSSP属于对本地或云IT实施远程监控和管理的第三方(往往是基于云的)服务。

有些MSP/MSSP是通用的,有些侧重于特定IT领域(如备份、安全、存储、防火墙等),还有一些则侧重于垂直管理(如法律、医疗、金融、政府等)。

有关云技术的更多信息,请参见第16章。

—————————————————————————————————————————

软件定义数据中心(software-defined data center, SDDC)虚拟数据中心(virtual data center, VDC)是指用虚拟提供的解决方案替代物理IT元素的概念,该解决方案往往由一个外部第三方(如一家云服务提供商提供。

SDDC实际上是另一种XaaS概念,也就是IT即服务(IT as a service, ITaaS)

它类似于基础架构即服务(IaaS),因此有人说它只不过是会把人引入歧途的一种营销或宣传说法而已。

你若想进一步探索软件定义一切(SDx),可在网上找到大量文章,不妨从“什么是软件定义一切——第1部分:SDx的定义”开始。

—————————————————————————————————————————

服务集成

服务集成(services integration)、云集成(cloud integration)、系统集成(systems integration)和集成平台即服务(integration platform as a service, iPaaS)是把来自本地和云端的元素整合到一个无缝生产环境中的IT/IS解决方案的设计和架构。

服务集成的目的是消除数据竖井(即数据被收容在一个区域里,致使其他应用程序或业务单元无法访问的情况),扩展访问,提高处理

可见性,以及改善本地和场外资源的功能连接。

我们也可以把服务集成看作软件定义数据中心(SDDC)的一个例子。

有关云服务的更多讨论,请参见第16章。

—————————————————————————————————————————

9.14.4 虚拟化的安全管理

虚拟化中的主要软件组件是管理程序(hypervisor)。

管理程序负责管理虚拟机、虚拟数据存储和虚拟网络组件。

作为物理服务器上的一个额外的软件层,它也代表一个额外的受攻击面。

如果攻击者可以入侵物理主机,那他就有可能访问被托管在物理服务器上的所有虚拟系统。

管理员往往特别重视虚拟主机的加固。

虽然虚拟化简化了许多IT概念,但是有一点必须牢记:许多基本安全要求在虚拟化的场景中依然适用。

虚拟化不会减少操作系统的安全管理要求。因此,补丁管理仍然是必不可少的。

例如,每个虚拟机的客户操作系统仍然需要单独更新。

主机系统的更新并不会导致客户操作系统的更新。另外,你千万不要忘记更新管理程序。

使用虚拟化系统时,务必保护主机的稳定性,这一点至关重要。

这通常意味着要避免将主机用于托管虚拟元素以外的任何其他目的,以服务器为中心的部署尤其要注意这一点。

如果主机的可用性遭到破坏,则必将波及虚拟系统的可用性和稳定性。

此外,机构还应该保持好虚拟资产的备份

许多虚拟化工具都包含用于创建虚拟系统完整备份和创建定时快照的内置工具,这使时间点恢复变得相对容易。

虚拟化系统应该接受安全测试。

对于虚拟化操作系统,可以用测试安装在硬件上的操作系统的方法进行测试,例如漏洞评价和渗透测试。

当一家机构部署了大量虚拟机,但却缺乏一个全面的IT管理或安全计划实施管控时,会发生虚拟机蔓延(VM sprawl)的情况。

虽然虚拟机很容易创建和克隆,但是它们和安装在金属上的操作系统有着相同的许可和安全管理要求。

无节制创建虚拟机的做法很快就会导致人工监控跟不上系统需求的情况。

为了防止或避免虚拟机蔓延,必须为虚拟机的开发和部署制订专门的策略并将其落到实处。

策略中应该包含为开发和部署新服务而建立初始或基础虚拟机映像库的有关规定。

在某些情况下,虚拟机蔓延与低功率设备的使用有关,结果使虚拟机表现不佳。

虚拟机扩展是服务器蔓延的一种虚拟变体,它允许虚拟影子IT存在。

—————————————————————————————————————————

服务器蔓延和影子IT

服务器蔓延或系统蔓延是指机构的服务器机房中有大量未被充分利用的服务器在运行的情况。

这些服务器不仅占空间、耗电力,还对其他资源有需求,但是它们提供的工作负载或生产力并不足以证明它们的存在合理。

当一家机构成批购买廉价低端硬件,而不是为特定用途精选最佳设备时,就会发生这种情况。

与服务器蔓延多少有些关系的是影子IT。

影子IT(shadow IT)这个词描述的是机构的某个部门在高管或IT管理团队不知情或没有允许的情况下擅自部署IT组件(物理组件或虚拟组件)的情况。

影子IT的存在往往是由于繁冗的官僚制度下采购必要设备的手续过于复杂和耗时。

其他可用来指代影子IT的词语还包括:嵌入式IT、野性IT、隐形IT、隐藏IT、秘密IT和客户端IT等。

影子IT通常不遵守公司的安全策略,可能不会用补丁进行即时更新。

影子IT往往缺乏相关文件,不在统一的监督和控制之下,而且还可能不可靠或容忍错误。

影子IT极大地增加了把敏感、保密、专有和个人信息暴露给未经授权内部和外部人员的风险。

影子IT可由物理设备、虚拟机或云服务组成。

—————————————————————————————————————————

当客户操作系统中的软件能够突破管理程序提供的隔离保护,从而破坏其他客户操作系统的容器或渗透主机操作系统时,就惹味着发生了虚拟机逃逸(VM escaping)

目前人们已在各种虚拟机管理程序中发现了好几种虚拟机逃逸漏洞。

幸运的是,供应商很快发布了补丁。

例如,”被虚拟环境忽略的操作操纵(VENOM)" (CVE-2015-3456)能够攻破许多虚拟机产品,因为这些产品使用了遭破坏的开源虚拟软盘驱动程序,允许恶意代码在虚拟机之间跳转,甚至访问主机。

虚拟机逃逸防护措施:

首先,要把高度敏感的系统和数据保存在单独的物理机器上

机构应该早已认识到,过度整合会导致单点故障点的出现;应该运行多个硬件服务器,以使每台服务器都支持几个客户操作系统,

这有助于消除这种风险。

配备足够数量的物理服务器,使高度敏感的客户操作系统之间实现物理隔离可进一步防止虚拟机逃逸漏洞。

其次,要让所有管理程序软件都打上供应商最新发布的补丁

第三,要严密监控攻击、暴露和滥用索引,以发现环境面临的新威胁。

—————————————————————————————————————————

注意:

若要了解有关搜索、定位或研究漏洞、漏洞利用和攻击的详细信息(无论是否与虚拟化有关),可访问NIS官网。

—————————————————————————————————————————

9.15 容器化(containerization)

容器化是内部托管系统以及云提供商和服务虚拟化趋势向前发展的下一个阶段。

基于虚拟机的系统使用安装在主机服务器裸机上的管理程序,然后在每个虚拟机中运行一个完整的客户操作系统,每个虚拟机往往只支持一个主应用程序。

这其实是一种浪费资源的设计,表明虚拟机是被当作独立物理机器设计的。

容器化或操作系统虚拟化(OS-virtualization)基于一个概念:在虚拟机中消除操作系统的重复元素

该方法把所有应用程序都放进一个容器,而容器中只包含支持被封闭的应用程序真正需要的资源,然后把公共或共享的操作系统元素纳入管理程序。

有些部署方式宣布完全消除了管理程序,用一组公共二进制文件和库取而代之,以便容器在需要时调用。

相比于传统的管理程序虚拟化解决方案,容器化能够为每台物流服务器提供10至100倍的应用程序密度。

应用程序单元(application cell)应用程序容器(application container)(图9.4)可用于虚拟化软件,使它们能够移植到几乎任何操作系统中。

目前有许多不同的技术解决方案可归入容器化概念类。

有些人把应用程序实例称作:

容器(container)、区(zone)、单元(cell)、虚拟专用服务器(virtual private server)、分区(partition)、虚拟环境(virtual environment)、虚拟内核(virtual kernel)或监狱Gail)。

一些容器化解决方案允许一个容器容纳多个并发应用程序,而另一些解决方案则只允许每个容器容纳一个并发应用程序。

许多容器化解决方案允许自定义一个容器可容纳的交互应用程序数量。

图9.4 应用程序容器与管理程序

9.16 无服务器架构(serverless architecture)

无服务器架构是一种云计算概念,其中代码由客户管理平台(即支持性硬件和软件)或服务器由云服务提供商(CSP)管理

现实中永远都会有一台物理服务器在运行代码,但是这种执行模型允许软件设计师/架构师/程序员/开发人员把注意力集中在其

代码的逻辑上,而不必理会特定服务器的参数或限制

这种模型也被称为功能即服务(function as a service, FaaS)

在无服务器架构上开发的应用程序与微服务相似,每项功能都被设计得可以独立、自主地运行。

这允许云服务提供商独立扩展每项功能。无服务器架构与平台即服务(PaaS)不同;

在PaaS中,整个执行环境或平台都被调动起来承载一个应用程序,而且平台总是在运行之中,不断消耗资源和增加成本,即便它没有被主动调用,也是如此。

而在无服务器架构或FaaS中,功能只在被调用的时候运行,且操作完成后立即停止运行,从而把成本降到了最低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/378189.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《MySQL 简易速速上手小册》第3章:性能优化策略(2024 最新版)

文章目录 3.1 查询优化技巧3.1.1 基础知识3.1.2 重点案例3.1.3 拓展案例 3.2 索引和查询性能3.2.1 基础知识3.2.2 重点案例3.2.3 拓展案例 3.3 优化数据库结构和存储引擎3.3.1 基础知识3.3.2 重点案例3.3.3 拓展案例 3.1 查询优化技巧 让我们来聊聊如何让你的 MySQL 查询跑得像…

【python】if __name__ == ‘__main__‘:

if __name__ __main__: 是一个Python脚本中使用的常见结构,用来判断该脚本文件是直接运行的还是被导入到其他文件中运行的。 当一个Python文件被运行时,Python解释器会自动创建一些特殊的变量,__name__就是其中之一。如果这个文件是作为主程…

米贸搜|Facebook在购物季使用的Meta广告投放流程

一、账户简化 当广告系列开始投放后,每个广告组都会经历一个初始的“机器学习阶段”。简化账户架构可以帮助AI系统更快获得广告主所需的成效。例如: 每周转化次数超过50次的广告组,其单次购物费用要低28%;成功结束机器学习阶段的…

Ondo宣布将其原生稳定币USDY带入Sui生态

重要提示:USDY是由短期美国国债支持的token化票据,持有者享受稳定币的实用性同时获得收益。USDY不得在美国或向美国人出售或以其他方式提供。USDY也未根据1933年美国证券法注册。 不到一年的时间,Sui已经成为全链TVL排名前十的区块链&#xf…

Netty源码 之 ByteBuf自适应扩缩容源码

Netty体系如何使得ByteBuf根据实际IO收发数据场景进行自适应扩容缩容的? IO收发数据的过程: read 读取("I"):网卡硬件通过网络传输介质读取对端传输过来的数据,网卡硬件再把数据写到recv-socke…

Flask 入门7:使用 Flask-Moment 本地化日期和时间

如果Web应用的用户来自世界各地,那么处理日期和时间可不是一个简单的任务。服务器需要统一时间单位,这和用户所在的地理位置无关,所以一般使用协调世界时(UTC)。不过用户看到 UTC 格式的时间会感到困惑,他们…

Linux系统安装(CentOS Vmware)

学习环境安装 VMware安装 VMware下载&安装 访问官网:https://www.vmware.com 在此处可以选择语言 点击China(简体中文) 点击产品,点击Workstation Pro 下滑,点击下载试用版 下滑找到Workstation 17 Pro for Wi…

如何查看端口映射?

端口映射是一种用于实现远程访问的技术。通过将外网端口与内网设备的特定端口关联起来,可以使外部网络用户能够通过互联网访问内部网络中的设备和服务。在网络中使用端口映射可以解决远程连接需求,使用户能够远程访问设备或服务,无论是在同一…

彻底学会系列:一、机器学习之线性回归(一)

1.基本概念(basic concept) 线性回归: 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量: 影响目标变量的因素: X 1 , X 2 . . . X_1, X_2... X1​,X2​... ,连续值或离散值。 目标变量: …

DAY7 作业

1.简易QQ登录页面 实际效果 qss界面代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowTitle("QQ"); /*设置窗口标题*/this->…

python官网下载慢怎么办?这里是一些解决方法

为什么Python官网下载速度慢? Python官网是开源软件的官方网站,提供了Python编程语言的最新版本和相关资源供开发者下载。然而,由于全球用户访问量较大,有时候会导致Python官网的下载速度变慢或不稳定。这对于急需获取Python的开…

idea设置terminal为git

要在IntelliJ IDEA中设置终端为Git Bash,请按照以下步骤操作: 打开 Settings(设置)。点击 Tools(工具)选项卡。进入 Terminal(终端)界面。在 Shell Path 下选择 Browse(…

如何在 Microsoft Azure 上部署和管理 Elastic Stack

作者:来自 Elastic Osman Ishaq Elastic 用户可以从 Azure 门户中查找、部署和管理 Elasticsearch。 此集成提供了简化的入门体验,所有这些都使用你已知的 Azure 门户和工具,因此你可以轻松部署 Elastic,而无需注册外部服务或配置…

【git】本地项目推送到github、合并分支的使用

1. github上创建仓库信息 点击个人头像,选择【你的仓库】 点击【新增】 填写仓库信息 2. 本地项目执行的操作 1.生成本地的git管理 (会生成一个.git的文件夹) git init 2.正常提交到暂存区,并填写提交消息 git add . git commit -m "init…

c语言--指针数组(详解)

目录 一、什么是指针数组?二、指针数组模拟二维数组 一、什么是指针数组? 指针数组是指针还是数组? 我们类比一下,整型数组,是存放整型的数组,字符数组是存放字符的数组。 那指针数组呢?是存放…

[每日一题] 02.07 - 小鱼比可爱

小鱼比可爱 n int(input()) lis list(map(int,input().split())) res [0] for i in range(1,n):count 0for j in range(i):if lis[i] > lis[j]:count 1res.append(count)a .join(str(i) for i in res) print(a[:-1])

【大模型上下文长度扩展】MedGPT:解决遗忘 + 永久记忆 + 无限上下文

MedGPT:解决遗忘 永久记忆 无限上下文 问题:如何提升语言模型在长对话中的记忆和处理能力?子问题1:有限上下文窗口的限制子问题2:复杂文档处理的挑战子问题3:长期记忆的维护子问题4:即时信息检…

pytorch训练指标记录之tensoboard,wandb

详解Tensorboard及使用教程_tensorboard怎么用-CSDN博客文章浏览阅读5.1w次,点赞109次,收藏456次。目录一、什么是Tensorboard二、配置Tensorboard环境要求安装三、Tensorboard的使用使用各种add方法记录数据单条曲线(scalar)多条曲线(scalars)直方图(hi…

借助宁盾身份目录实现信创、Windows混合终端统一身份认证及网络准入控制

背景: 近期有基金、保险行业的IT负责人反馈,公司要求IT建设必须紧跟政策,在2024年内必须要上国产信创操作系统终端,个别应用如OA系统、虚拟化桌面、邮箱等都不能再继续用国外的产品了,要完成国产化替代指标。跟着国产…

【动态规划】【前缀和】【C++算法】LCP 57. 打地鼠

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LCP 57. 打地鼠 勇者面前有一个大小为3*3 的打地鼠游戏机,地鼠将随机出现在各个位置,moles[i] [t,x,y] 表…