利用图论进行云系统安全建模
1. 引言
云计算作为一种在全球广泛应用的现代商业模式,正处于快速发展阶段。云计算服务的用户通过临时分配的云资源进行所需的计算,但无法控制实际资源所在的云内部架构。这种模式既带来了显著的优势,也伴随着一定的风险。
使用云计算时,用户数据会被转移到云内部,用户对数据的控制权相应丧失。此外,云服务提供商对用户数据安全的责任往往有限,这极大地增加了云安全系统开发和部署的复杂性,也促使我们需要对现有的安全模型进行修订和调整,以适应云环境的新特点。
为了构建安全的云系统,构建一个能够描述云环境中虚拟机主要特征的安全模型至关重要。虚拟机在云环境中的主要特征包括:
- 作为云网络节点的虚拟机应用;
- 虚拟机迁移;
- 虚拟机复制;
- 虚拟机镜像存储在所有网络节点共享的存储服务器中;
- 虚拟机在隔离虚拟网络中的整合。
2. 相关工作
随着云系统的不断发展,涌现出了众多用于描述云各种特征的数学模型:
-
Joe Weinman的模型
:创建了云理论的公理体系和基于此的数学模型。该模型将云定义为满足五个正式公理的结构,但由于其过于通用,未明确定义访问操作的安全主体和对象,因此不适用于虚拟机特征建模和云安全建模。
-
W.K. Chan等人的模型
:基于图论描述云系统中的应用行为,重点关注云环境中应用测试的挑战。该模型用具有不同属性的节点表示计算资源,但未明确包含虚拟机实体,不适用于描述虚拟机特征的安全模型。
-
Yingmin Li和Omar Boucelma的模型
:提出了基于模型的诊断方法来监控云工作流来源,其模型基于Petri网,但不足以对云系统安全和虚拟机特征进行建模。
-
Hui等人的模型
:扩展了抽象状态服务(AS2s)的形式化模型,但仅关注云系统的服务端,无法对云结构内的网络通信进行建模。
-
Thomas等人的模型
:不仅创建了云系统的形式化模型,还开发了模拟框架和模拟器。该模型基于图,每个节点对应一个计算实体,但不适用于安全建模。
-
RBAC模型
:可用于描述云内部网络节点,但云系统的安全问题具有更多特性,如虚拟化软件带来的挑战、复杂的网络拓扑等,这些特性难以在RBAC模型中体现。
因此,利用图论对包含众多网络节点和计算资源的云系统进行建模是一种有效的方法。图模型可用于正式描述复杂网络系统的安全需求,但要创建云系统和虚拟机特征的安全模型,需要明确包含安全实体和虚拟机特征。
3. 云系统的虚拟机安全模型
3.1 云系统的基本结构
任何云系统本质上都是一个复杂的计算机网络,可称为内部云网络。云基于云平台软件(如VMware vSphere或Xen Cloud平台)运行,该软件定义了内部云网络节点的协作和数据交换规则。现代数据处理中心运行的云平台软件可能包含数千个网络节点,每个节点在内部云网络中执行特定的角色。常见的角色包括:
-
VmHost
:分配给工作节点;
-
Storage
:分配给云存储节点;
-
Controller
:分配给云中的所有控制节点。
3.2 图的表示
由于内部云基础设施类似于局域网,可将其表示为无向图 (CL = (N, \eta)),其中 (N) 是内部云网络的节点集合,(\eta\subseteq N\times N) 是节点之间的边集合,表示允许的网络链接。(\eta) 由物理连接、防火墙和路由器设置定义。
可以定义一个函数 (Role: N \to P(R)),将图中的每个节点与分配给它的角色集合相关联。在大型数据处理中心,每个节点通常只有一个角色,但云平台软件允许单个节点承担多个角色。
3.3 虚拟机相关图
设 (V) 是云内所有虚拟机的集合,可定义另一个无向图 (CV = (V, \upsilon)),其中 (\upsilon\subseteq V\times V) 是虚拟机之间的边集合,表示允许的虚拟网络链接。
设 (M = N\cup V) 是云内所有机器的集合,可定义云图 (C = (M, c)),其中 (c\subseteq M\times M) 是机器之间的边集合,表示允许的网络链接,且 (c\supseteq \eta\cup \upsilon)。
3.4 虚拟机与网络节点的关系
除了图 (C) 表示的网络关系外,虚拟机集合 (V) 和云内部网络节点集合 (N) 之间还存在由虚拟化技术特性产生的额外关系:
- (H\subseteq V\times N):表示虚拟机实例在节点上运行的元组集合;
- (I\subseteq V\times P(N)):表示虚拟机实例的镜像所在节点集合的元组集合;
- (F\subseteq V\times P(O)):表示虚拟机实例的镜像文件集合的元组集合;
- (R\subseteq V\times P(N)):表示虚拟机实例运行状态复制节点集合的元组集合。
3.5 软件与机器的关系
机器上运行的软件可表示为程序集合 (P),可定义 (Soft\subseteq M\times P) 来关联云内所有机器和安装在其上的程序集合。同时,可分别为网络节点和虚拟机定义 (SoftN) 和 (SoftV)。
3.6 云系统状态定义
每个虚拟机是通过管理程序软件实现的软件抽象,每个运行的虚拟机都是云内某个网络节点软件中的一个程序。为了安全目的,还可以定义更多的集合,如云系统的用户集合 (U)、主体集合 (S)、标识集合 (Id) 和模拟集合 (Im)。
云系统的状态可以定义为一个元组 (\psi = (C, P, U, S, H, I, R, Soft, Id, Im)),其中:
- (C):云内所有机器(包括虚拟机和网络节点)的网络图;
- (P):云内所有运行或存储在镜像中的程序集合;
- (U):所有云用户的集合;
- (S):云内由运行软件定义的所有主体的集合;
- (H, I, R, Soft, Id, Im):定义云用户、主体、机器和程序之间不同关系的元组集合。
在这种情况下,云系统可以表示为有限自动机 (\Omega = (\Psi, \psi_0, \tau)),其中 (\Psi) 定义了云的所有状态集合,(\psi_0) 是云的初始状态,(\tau: \Psi \to \Psi) 是云系统的状态转换函数。
3.7 虚拟机特征描述
该模型能够描述云系统中虚拟机的所有基本特征:
-
作为网络节点的虚拟机应用
:(V\subseteq M);
-
虚拟机迁移
:通过改变参数 (H) 来表示,即 (\tilde{H} = H \cup {(v_i, n_j)} \setminus {(v_i, n_k)});
-
虚拟机复制
:(R\subseteq V\times P(N));
-
虚拟机镜像存储与执行的分离
:(\forall (v_i, S_i) \in I, \exists n_j \in S_i, Role(n_j) \neq VmHost);
-
虚拟机在隔离虚拟网络中的整合
:通过单独的图 (CV) 表示。
将虚拟机和网络节点放在同一个图中,便于利用图论对云的整个网络系统进行深入分析,也可以正式定义云安全系统应强制执行的谓词。
4. 模型应用实验
作者为圣彼得堡理工大学的云系统内部网络创建了图。该云系统由大学的不同部门共享,包括技术控制论系。基于上述模型构建的正式图包含112台机器(24台主机和88台虚拟机),并使用基于网络扫描工具开发的自动化软件构建。
对该图的子图进行分析后,发现了一些问题。例如,节点 (N_1) 同时承担存储和控制两个角色,且两个服务使用单一的认证机制和管理用户;虚拟机 (V_{43}) 作为虚拟网关和DHCP服务器,不仅与云的主路由器有直接连接,还与其他工作节点有连接,这存在安全隐患。
通过实验,作者发现了11个云系统安全问题,并与云系统的工程师进行了讨论和解决。
5. 云管理程序的安全问题
在云环境中,每个虚拟机实例既是一个程序,又有在其上运行的程序。这导致对于某些云用户 (u),可能存在至少两个潜在不同的主体:
-
vs
:模拟在虚拟机中运行的程序 (ivp) 的主体;
-
ns
:模拟在主机 (jn) 上运行的虚拟机 (iv) 的主体。
当虚拟机 (iv) 内的程序 (ivp) 对位于该虚拟机硬盘上的文件 (f) 执行写操作 (v_{op}) 时,需要使用同一虚拟机内的操作系统软件。如果操作 (v_{op}) 被允许,操作系统将执行一组低级操作 ({v_{i_{op}}}) 来将数据写入硬盘。这些操作通常是IO端口操作或DMA传输处理,操作对象可以是IO端口或内存区域。
每个 (v_{i_{op}}) 操作将由虚拟化软件转换为其他操作 (h_{i_{op}}),其类型和资源取决于虚拟化软件的实现和虚拟机配置。
如果虚拟机的虚拟硬盘位于远程存储 (rn) 上,那么操作 (h_{i_{op}}) 实际上是使用图 (CL) 中边 ((n_i, r_n)) 的网络通信数据交换操作。同时,在主机 (rn) 上会有另一组操作 ({r_{i_{op}}) 来实际访问虚拟机镜像数据。
这种情况使得云系统用户 (u) 与至少三个不同的主体相关联,这些主体分别在三个不同的软件程序中运行,且处于三个不同的执行环境中,具体如下表所示:
| 执行环境 | 软件 | 操作 | 对象 | 对象标识符 | 主体 |
| — | — | — | — | — | — |
| (iv) | (vp) | (v_{op}) | (f) | 文件名称 | (vs) |
| (iv) | 虚拟机内的操作系统内核 | ({v_{i_{op}}}) | 硬盘扇区 | 扇区编号 | (iv) 内的操作系统内核 |
| | ({h_{i_{op}}}) | (\tilde{f}) - 套接字 | 与存储服务器关联的套接字号 | (ns) |
| 管理程序 | 对真实网络设备的IO操作 | 低级IO区域 | 网络地址 | 管理程序 |
| (rn) | (rp) | ({r_{i_{op}}}) | ({v_{if}}) | 镜像文件名 | (rs) |
| (rn) | 存储服务器上的操作系统内核 | 对真实硬盘设备的IO操作 | 硬盘扇区 | 扇区编号 | 操作系统内核 |
这种复杂性可能会引发一些安全问题,攻击者可能会利用这些问题进行攻击。例如,当云系统作为SaaS服务使用时,多个用户在单个虚拟机内执行操作,但虚拟机可能使用单一主体权限在虚拟化软件中执行实际操作,这意味着虚拟机内的多个用户可能与主机系统上不属于任何用户的单个主体相关联。
下面是云系统数据访问操作的流程图:
graph TD;
A[虚拟机程序 ivp] --> B[虚拟机操作系统执行 v_op];
B --> C[执行低级操作 {v_i_op}];
C --> D[虚拟化软件转换为 {h_i_op}];
D --> E[网络通信数据交换操作];
E --> F[主机 rn 执行 {r_i_op}];
F --> G[访问虚拟机镜像数据];
综上所述,利用图论构建的云系统安全模型能够有效地描述云系统中虚拟机的各种特征,并通过实际应用实验发现和解决了一些安全问题。然而,云管理程序的安全问题仍然是一个需要重点关注的领域,需要进一步深入研究和解决。
6. 云系统安全问题分析
6.1 多主体关联引发的安全风险
在云系统中,用户与多个不同主体相关联,这增加了安全管理的复杂性。如前文所述,云系统用户 (u) 可能与至少三个不同主体((vs)、(ns)、(rs))相关联,且这些主体在不同软件程序和执行环境中运行。这就可能导致权限管理混乱,攻击者可能利用主体之间的权限差异进行越权操作。例如,攻击者可能通过欺骗手段,使某个主体以更高的权限执行操作,从而获取敏感数据或对系统进行破坏。
6.2 虚拟化软件操作转换的安全隐患
虚拟化软件将虚拟机内的操作 (v_{i_{op}}) 转换为 (h_{i_{op}}),这个过程存在安全风险。由于操作类型和资源依赖于虚拟化软件的实现和虚拟机配置,不同的配置可能导致不同的安全漏洞。攻击者可能通过分析虚拟化软件的转换规则,找到其中的薄弱环节,进行中间人攻击或数据篡改。例如,攻击者可能拦截操作转换过程中的数据,修改操作指令,从而影响系统的正常运行。
6.3 共享虚拟机带来的安全挑战
当云系统作为SaaS服务使用时,多个用户在单个虚拟机内执行操作,但虚拟机使用单一主体权限在虚拟化软件中执行实际操作。这意味着多个用户可能与主机系统上不属于任何用户的单个主体相关联,容易引发数据泄露和隐私问题。例如,一个用户可能通过某种手段获取其他用户在共享虚拟机内的数据,或者对其他用户的操作进行干扰。
7. 应对云系统安全问题的建议
7.1 加强主体权限管理
- 细化权限分配 :根据不同的用户角色和操作需求,为每个主体分配精确的权限,避免权限过大或过小。例如,对于普通用户,只授予其访问和操作必要数据的权限;对于管理员用户,授予其系统管理和维护的权限。
- 定期审查权限 :定期对主体的权限进行审查,及时发现和撤销不必要的权限。例如,当用户离职或角色变更时,及时调整其对应的主体权限。
7.2 强化虚拟化软件安全
- 安全审计 :对虚拟化软件的操作转换过程进行实时审计,记录所有操作的转换细节,以便及时发现异常操作。例如,通过日志记录每个操作的输入、输出和转换规则,分析是否存在异常的操作转换。
- 漏洞修复 :及时更新虚拟化软件,修复已知的安全漏洞。虚拟化软件供应商应定期发布安全补丁,用户应及时安装这些补丁,以提高系统的安全性。
7.3 隔离共享虚拟机
- 数据隔离 :在共享虚拟机中,对不同用户的数据进行严格隔离,防止数据泄露。例如,采用加密技术对用户数据进行加密存储,只有授权用户才能解密访问。
- 操作隔离 :对不同用户的操作进行隔离,避免相互干扰。例如,采用容器技术对用户操作进行隔离,每个用户的操作在独立的容器中运行。
8. 云系统安全模型的优势总结
8.1 全面描述虚拟机特征
该模型能够全面描述云系统中虚拟机的各种基本特征,包括作为网络节点的应用、迁移、复制、镜像存储与执行的分离以及在隔离虚拟网络中的整合。通过将这些特征用图论的方式进行表示,便于对云系统的网络结构进行深入分析。
8.2 支持安全谓词定义
将虚拟机和网络节点放在同一个图中,方便正式定义云安全系统应强制执行的谓词。这些谓词可以用于描述系统的安全规则,帮助安全系统更好地监控和保护云系统。
8.3 实际应用效果显著
通过在圣彼得堡理工大学云系统的实际应用实验,该模型成功发现了11个安全问题,并与工程师合作解决了这些问题。这表明该模型在实际应用中具有较高的实用性和有效性。
9. 未来研究方向
9.1 动态安全模型研究
随着云系统的不断发展,系统状态和网络结构会不断变化。未来需要研究能够适应动态变化的云系统安全模型,实时调整安全策略,以应对不断变化的安全威胁。
9.2 人工智能在云安全中的应用
人工智能技术如机器学习、深度学习等在安全领域具有巨大的应用潜力。未来可以研究如何将人工智能技术应用于云系统安全,提高安全检测和防范的准确性和效率。
9.3 跨云安全模型研究
随着企业对云服务的需求不断增加,跨云环境的应用越来越广泛。未来需要研究跨云环境下的安全模型,解决不同云服务提供商之间的安全协同问题。
下面是云系统安全问题及应对策略的表格总结:
| 安全问题 | 具体表现 | 应对策略 |
| — | — | — |
| 多主体关联引发的安全风险 | 权限管理混乱,攻击者可能越权操作 | 细化权限分配,定期审查权限 |
| 虚拟化软件操作转换的安全隐患 | 存在中间人攻击和数据篡改风险 | 安全审计,及时修复漏洞 |
| 共享虚拟机带来的安全挑战 | 数据泄露和隐私问题,操作相互干扰 | 数据隔离,操作隔离 |
下面是云系统未来研究方向的流程图:
graph LR;
A[动态安全模型研究] --> B[适应云系统动态变化];
C[人工智能在云安全中的应用] --> D[提高安全检测效率];
E[跨云安全模型研究] --> F[解决跨云安全协同问题];
综上所述,利用图论构建的云系统安全模型为云系统的安全管理提供了有效的方法和工具。通过对云系统安全问题的分析和应对策略的提出,能够进一步提高云系统的安全性。同时,未来的研究方向也为云系统安全领域的发展提供了新的思路和方向。
超级会员免费看
168万+

被折叠的 条评论
为什么被折叠?



