IF-Net:面向安全的流程规范元模型
在流程规范和信息流属性的建模方面,目前缺乏通用的元模型。现有的一些方法,如Accorsi和Lehmann考虑的带安全标签的Petri网,虽能为转换和数据属性分配机密性级别、为主体分配许可,但仅适用于只有一种令牌类型的安全Petri网,且对数据流的处理较为复杂。还有非基于Petri网的元模型,如UMLsec,它是UML的扩展,可在UML图中表达安全相关信息,但侧重于系统规范而非流程分析;SecureBMPN是一种设计时建模方法,专注于业务流程驱动系统安全需求的运行时实施,基于BPMN,却未对建模元素给出正式定义,不利于自动化分析。
1. 预备知识
在深入了解IF-Net之前,我们需要掌握一些数学预备知识,以及与之相关的几种Petri网变体。
1.1 多重集
设集合$S$,其多重集定义为函数$S_M : S \to N_0$,该函数返回多重集中每个元素的基数。$S$的所有多重集组成的集合记为$S^+$。为方便表示,我们采用多重集符号$m = [e_1^{k_{e_1}}, \cdots, e_n^{k_{e_n}}]$,其中$m(e_i) = k_{e_i}$(对于所有$i \in {1 \cdots n}$),其他元素对应的值为零。多重集$S_M$的支持集定义为:$supp(S_M) = {s \in S | S_M(s) > 0}$。两个多重集$S’$和$S’‘$之间的关系$\leq$定义为:$S’_M \leq S’‘_M \Leftrightarrow \forall s \in S, S’(s) \leq S’‘(s)$。
1.2 有色Petri网(CPN)
CPN是一个7元组$(P, T, F, I, O, C, C)$,它通过可区分的令牌类型扩展了经典Petri网。令牌的类型由其颜色定义,$C$是可能的令牌颜色集合。
-
元素定义
:
- $P$是位置集,$T$是转换集,且$P \cap T = \varnothing$。
- $F \subseteq (P \times T) \cup (T \times P)$称为流关系。
- 输入函数$I : (P \times T) \cap F \to C^+$和输出函数$O : (T \times P) \cap F \to C^+$,用于指定转换触发时消耗和产生的令牌数量及类型。同时需满足$\forall (t, p) \in (T \times P) \cap F : O(t, p) \not\equiv 0$和$\forall (p, t) \in (P \times T) \cap F : I(p, t) \not\equiv 0$,以确保Petri网中不存在无效关系。
- 为方便表示转换消耗和产生的令牌颜色,我们定义:
- 消耗的令牌:$N_c : T \to P(C)$,$N_c(t) = \bigcup_{i \in \bullet t}(supp I(i, t))$,$N_c|
{C_c}(t) = N_c(t) \setminus {black}$。
- 产生的令牌:$N_p : T \to P(C)$,$N_p(t) = \bigcup
{o \in t \bullet}(supp O(t, o))$,$N_p|
{C_c}(t) = N_p(t) \setminus {black}$。
- 函数$C : P \times C \to N_0 \cup \infty$定义了位置的颜色容量,位置$p$的总容量为$\zeta(p) = \sum
{c \in C} C(p, c)$。
- 标记$M$定义为函数$M : P \to C^+$,它表示CPN在所有网络位置上令牌的数量和类型状态。两个标记$M’$和$M’‘$之间的关系$\leq$定义为:$M’ \leq M’’ \Leftrightarrow \forall p \in P : M’(p) \leq M’‘(p)$。我们用$(CPN, M_0)$表示具有初始状态$M_0$的CPN。
-
转换规则
:
- 转换$t \in T$在标记$M$的CPN $N$中被启用(记为$(N, M)[t\rangle$),当且仅当$\forall p \in \bullet t : I(p, t) \leq M(p)$(输入位置有足够令牌)且$\forall p \in t \bullet \forall c \in C : M(p)(c) + O(p, t)(c) \leq C(p, c)$(输出位置有足够空间)。
- 启用的转换$t \in T$在标记$M$下触发,会导致标记变为$M’$(记为$M \stackrel{t}{\longrightarrow} M’$),其中$\forall p \in \bullet t : M’(p) = M(p) - I(p, t)$,$\forall p \in t \bullet : M’(p) = M(p) + O(t, p)$,$\forall p \in P \setminus (\bullet t \cup t \bullet) : M’(p) = M(p)$。
1.3 有色容量Petri网(CCPN)
CCPN是一种CPN,满足$\forall p \in P : \zeta(p) \in N$。由于位置的最高容量为该位置可能的最大令牌数量设定了上限,所以CCPN是$k$有界的,其中$k \leq \max_{p \in P} (\zeta(p))$。
1.4 有色工作流网(CWN)
有色工作流网是有界的CPN,还需满足以下属性:
- $C = C_c \uplus {black}$,黑色令牌用于表示控制流,其他颜色令牌表示数据项。
- 存在一个输入位置${p \in P | \bullet p = \varnothing} = {i}$和一个输出位置${p \in P | p \bullet = \varnothing} = {o}$。
- $(N, m_0) = (P, T \cup t, F \cup {(o, t), (t, i)})$是强连通的。
- 初始标记中恰好有一个黑色令牌,且该令牌位于输入位置$i$,即$\sum_{p \in P} m_0(p)(black) = 1$且$m_0(i)(black) = 1$。
-
控制流依赖
:每个转换$t \in T$必须消耗和产生黑色令牌,即$\forall t \in T \exists p \in \bullet t : supp(I(p, t)) \cap {black} \neq \varnothing$且$\forall t \in T \exists p \in t \bullet : supp(O(p, t)) \cap {black} \neq \varnothing$。
-
健全性
:CWN的健全性与WF - nets密切相关,一个CWN是健全的,当且仅当$\forall m \in [N, m_0\rangle \exists m’ \in [N, m\rangle : m’(o)(black) > 0$(有完成选项),$\forall m \in [N, m_0\rangle : m(o)(black) > 0 \Rightarrow \sum_{p \in P \setminus o} m(p)(black) = 0$(正确完成),$\forall t \in T : \exists m \in [N, m_0\rangle : (N, m)[t\rangle$(无死转换)。
2. IF-Net介绍
IF-Net基于CWN构建,并添加了特定的安全概念。它将流程划分为两个逻辑安全域:高安全域(用于机密信息)和低安全域(用于公共信息)。从信息流控制的角度看,当没有可能的执行轨迹允许信息从高安全域流向低安全域时,该流程被认为是安全的,即两个安全域互不干扰。非干扰是一种强大且严格的安全概念,可同时考虑数据元素和转换的机密性。由于许多相关安全属性(如Bell - LaPaduala模型)和多级安全策略都可映射到非干扰属性上,所以仅考虑两个安全域对IF - Net并非真正的限制。
IF-Net是一个10元组$(P, T_R, T_D, F, C, I, O, A, AC, G)$,其中$(P, T_R \uplus T_D, F, C, I, O)$是一个健全的CWN。除了常规转换$t_R \in T_R$,还有用于将机密信息降级到较低安全级别的解密转换$t_D \in T_D$。
2.1 分析上下文(AC)
IF-Net的分析上下文是一个三元组$(L, E, U)$,其中:
- 标签$L$是一个3元组$L = (S_T, S_U, S_C)$:
- $S_T : T \to {high, low}$为每个转换$t \in T$分配高或低的分类级别。若转换被分类为高,低许可的主体不允许知晓该转换是否触发。
- $S_U : U \to {high, low}$为每个主体$u \in U$分配所属的安全域。
- $S_C : C_c \to {high, low}$为除黑色外的每个令牌颜色分配高或低的分类级别。
- 主体函数$E : T \to U$将IF - Net转换与主体关联起来,$U$是所有可能主体的集合。
2.2 访问函数
访问函数$A : T_R \times C_c \to P(M_A)$定义了每个常规转换$t_R \in T_R$对每种颜色$c \in C_c$的令牌所代表信息的访问方式。有效访问模式定义为$M_A = {read, write, delete, create}$。该函数需满足以下条件:
- $|A(t, c) \cap {create, delete}| \leq 1$,即信息只能被创建或删除,不能同时进行。
- 若$create \in A(t, c)$,则$\forall p \in \bullet t : I(p, t)(c) = 0$且$\exists p \in t \bullet : O(t, p)(c) > 0$,表示创建的信息仅被产生而不被消耗。
- 若$delete \in A(t, c)$,则$\forall p \in t \bullet : O(t, p)(c) = 0$且$\exists p \in \bullet t : I(p, t)(c) > 0$,表示删除的信息仅被消耗而不被产生。
- 若$A(t, c) \cap {delete, create} = \varnothing$,则$\exists p \in \bullet t : I(p, t)(c) > 0$且$\exists p \in t \bullet : O(p, t)(c) > 0$,表示既不创建也不删除的信息会被消耗和产生。
为了涵盖访问模式,转换消耗和产生的令牌颜色函数也进行了自然扩展:
- 消耗的令牌:$N_{M_A}^c : T \times P(M_A) \to P(C)$,$N_{M_A}^c(t, M) = {c \in N_c(t) | A(t, c) \supseteq M}$,$N_{M_A}^c(t, M)|
{\gamma(t)} = N
{M_A}^c(t, M) \cap \gamma$($\gamma$为任意集合)。
- 产生的令牌:$N_{M_A}^p : T \times P(M_A) \to P(C)$,$N_{M_A}^p(t, M) = {c \in N_p(t) | A(t, c) \supseteq M}$,$N_{M_A}^p(t, M)|
{\gamma(t)} = N
{M_A}^p(t, M) \cap \gamma$($\gamma$为任意集合)。
2.3 转换守卫
转换守卫是一个由谓词名称和令牌颜色组成的对$(p_g, c) \in P_g \times C_c$,其中$P_g$是所有谓词名称的集合。谓词定义了在流程执行期间对数据项的抽象条件,其值为真或假。函数$G : T \to P(P_g \times C_c)$为每个转换分配一组转换守卫。所有转换守卫的集合记为$G$,与该函数的组合记为$G = (G, G)$。由于IF - Net结构在转换守卫方面的扩展,常规转换$t_R \in T_R$被启用的必要条件增加了其所有守卫必须评估为真的要求。
2.4 解密转换
转换$t \in T_D$用于解密,即允许信息从高安全域流向低安全域。在业务流程中,当机密信息在文档发布或交给低许可用户之前被移除时会发生这种情况。所有$T_D$中的转换还需满足以下条件:
- 有且仅有一个输入位置和一个输出位置,即$\forall t_D \in T_D : \bullet t = {i_{t_D}}$且$t \bullet = {o_{t_D}}$。
- 解密转换必须有效,即至少消耗一个有色令牌,$\forall t_D \in T_D : N_c|
{C_c} \neq \varnothing$。
- 消耗的颜色集合和产生的颜色集合(不包括控制流令牌)没有共同元素,解密后的数据项被视为原始数据项的新副本,可能部分信息已更改,即$N_c(t_D)|
{C_c} \cap N_p(t_D)|
{C_c} = \varnothing$。
- 解密转换产生的令牌颜色既不会被任何具有“create”访问模式的常规转换创建,也不会被其他解密转换产生,即$\forall t_D \in T_D : N_p(t_D)|
{C_c} \cap [\bigcup_{t \in T_R} N_{{create}}^p(t) \cup \bigcup_{t \in T_D \setminus {t_D}} N_p(t)] = \varnothing$。
- 对于每个$t_D \in T_D$,存在双射函数$DF_{t_D} : N_c(t_D)|
{C_c} \leftrightarrow N_p(t_D)|
{C_c}$,为每个输入令牌颜色分配唯一的输出令牌颜色,代表解密后的信息。根据该函数,对于每个输入令牌颜色,转换会产生相同数量的对应输出令牌颜色,即$\forall t_D \in T_D \forall c \in N_c(t_D)|
{C_c} : O(o
{t_D}, t_D)(DF_{t_D}(c)) = I(i_{t_D}, t_D)(c)$。
- 解密转换产生的令牌被分类为低,即$\forall t_D \in T_D \forall c \in N_P(t_D)|_{C_c} : S_C(c) = low$。
- 解密转换被分类为高,即$\forall t_D \in T_D : S_T(t_D) = high$。
2.5 令牌标签、许可、分类和主体的关系
为确保IF - Net在转换、主体和数据项的安全级别定义上的一致性,需满足以下条件:
- 不存在$t \in T$使得$S_U(E(t)) = low$且$S_T(t) = high$,即低许可的主体不能被分配到分类为高的转换。
- 若$create \in A(t, c)$,则$S_C(c) = S_U(E(t))$,即创建的令牌标签等于执行相应转换的主体的分类。
3. 用例分析
IF-Net不仅能够捕捉流程的形态,还能处理与安全相关的属性。下面通过两个不同的用例,展示如何根据特定的安全要求,使用IF - Net对流程进行建模。
3.1 数据元素的机密性
考虑一个处理供应商请求原型建设计划细节的流程。供应商发出特定文档的请求,秘书检查供应商请求计划细节的权限后,要么拒绝请求,要么将其转发给工程师,工程师为供应商准备计划,最后秘书将建设计划发送给供应商。
在这个流程中,一个常见的安全要求是确保机密信息不会流向未经授权的主体。如图1所示的BPMN规范包含了供应商发送的凭证和建设计划本身。实际上,流程的数据视角可能比规范所反映的更为复杂,例如请求中还包含用于识别具体建设计划的文档ID。
假设采用基于角色的访问控制模型(RBAC),系统对象的权限根据流程中的角色和这些角色执行的活动进行分配。在这个例子中,秘书读取文档ID和凭证;若请求被转发,工程师会再次读取文档ID,并读取和修改建设计划,最后供应商读取建设计划。
建设计划是唯一需要保护免受未经授权访问的机密元素。尽管供应商需要了解建设计划的一些信息以提供最合适的部件,但该文档可能包含生产公司想要保护的新技术、设计方面或其他形式的专业知识。基本要求是只有工程师被允许访问建设计划。
图2展示了针对此场景的IF - Net模型。数据元素用有色令牌表示,创建和写入的访问模式缩写为“cw”。需要注意的是,这些模式是针对建模的数据元素进行的操作,而非对应的Petri网令牌。当数据元素仅被转发时,没有标注访问模式。由于原型建设计划可能包含机密信息,工程师会在单独的步骤中生成建设计划的解密版本,这会生成一个新的令牌(橙色),秘书在“发送文档”步骤中将其传递给供应商。
为检查数据元素的机密性,对网络进行标注以编码安全要求。对于机密数据元素“原始文档”,对应的令牌(黄色)被标记为高安全级别,所有有权获取该令牌信息的主体(仅工程师)和所有允许处理此信息的转换(“获取文档”转换和解密转换)也被标记为高。完整的标注如下表所示:
| 活动 | 数据元素 | 主体 |
| — | — | — |
| 发出请求{低} | 凭证{低} | 供应商{低} |
| 接收请求{低} | 文档ID{低} | 秘书{低} |
| 拒绝请求{低} | 原始文档{高} | 工程师{高} |
| 转发请求{低} | 解密文档{低} | |
| 获取文档{高} | | |
| 删除信息{高} | | |
| 发送文档{低} | | |
| 接收文档{低} | | |
带有编码安全要求的IF - Net可作为信息流分析的输入,用于检查是否存在可能的流程执行路径允许信息从高安全级别流向低安全级别。在这个例子中,由于存在解密转换,不存在这样的信息流,这很好地说明了在需要从高到低的信息流进行常规处理的情况下,解密转换的优势。如果没有解密机制,推理会变得不便,因为无法指定降级后的信息。需要注意的是,每个数据元素都需要单独标注。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([供应商发出请求]):::startend --> B{秘书检查权限}:::decision
B -->|拒绝| C(拒绝请求):::process
B -->|转发| D(转发请求):::process
D --> E(工程师获取文档):::process
E --> F(工程师删除信息):::process
F --> G(生成解密文档):::process
G --> H(秘书发送文档):::process
H --> I([供应商接收文档]):::startend
通过以上内容,我们详细了解了IF - Net的基本概念、数学基础以及在实际用例中的应用。IF - Net为安全导向的流程规范提供了一个强大的元模型,能够有效地处理流程中的安全相关问题。
IF-Net:面向安全的流程规范元模型
3.2 隐藏信息传输的检测
除了数据元素的机密性,IF-Net还能用于检测隐藏信息传输。考虑一个更复杂的业务流程,其中包含多个并行活动和条件分支。在这个流程中,某些活动的执行结果可能会以隐藏的方式影响其他活动的执行,从而导致信息从高安全域流向低安全域。
假设存在一个项目审批流程,申请人提交项目申请,审批小组进行初步审核,根据审核结果可能会将申请分配给不同的专家进行详细评估,最后审批小组根据专家评估结果做出最终决策。在这个流程中,项目申请可能包含高安全级别的信息,如商业机密、技术方案等。
为了使用IF-Net对这个流程进行建模,我们首先定义各个元素的安全级别。项目申请对应的令牌颜色被标记为高安全级别,审批小组和专家的活动根据其处理的信息类型分别标记为高或低安全级别。同时,我们设置相应的转换守卫和访问函数,以确保信息的安全流动。
例如,审批小组的初步审核活动可能会读取项目申请的部分信息,但不会泄露高安全级别的信息。如果审核结果为通过,申请会被分配给专家进行详细评估,专家在评估过程中可能会访问更多的高安全级别信息。在这个过程中,我们需要确保专家的评估结果不会以隐藏的方式泄露高安全级别的信息。
为了检测隐藏信息传输,我们可以对IF-Net模型进行信息流分析。具体步骤如下:
1.
定义信息流路径
:确定所有可能的信息流动路径,包括直接访问和间接影响。
2.
分析信息级别
:根据每个活动和数据元素的安全级别,分析信息在路径上的流动情况。
3.
检查隐藏传输
:检查是否存在信息从高安全域流向低安全域的隐藏路径,例如通过活动的执行顺序、条件判断等方式。
通过以上分析,如果发现存在隐藏信息传输的风险,我们可以对IF-Net模型进行调整,例如添加额外的转换守卫、限制访问权限等,以确保信息的安全性。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([申请人提交申请]):::startend --> B(审批小组初步审核):::process
B --> C{审核通过?}:::decision
C -->|是| D(分配给专家评估):::process
C -->|否| E(拒绝申请):::process
D --> F(专家详细评估):::process
F --> G(审批小组最终决策):::process
G --> H{通过?}:::decision
H -->|是| I(批准项目):::process
H -->|否| E(拒绝申请):::process
I --> J([项目启动]):::startend
4. IF-Net的优势总结
IF-Net作为一种面向安全的流程规范元模型,具有以下显著优势:
1.
强大的安全建模能力
:能够清晰地定义安全域、令牌标签、转换分类等安全相关概念,有效地捕捉流程中的安全需求。
2.
支持信息流分析
:可以对IF-Net模型进行信息流分析,检测显式和隐藏的信息传输,确保信息的安全性。
3.
灵活的访问控制
:通过访问函数和转换守卫,可以灵活地定义活动对数据元素的访问方式和条件,实现细粒度的访问控制。
4.
与现有模型的兼容性
:基于Petri网和CWN,与现有的工作流建模方法具有一定的兼容性,便于集成和扩展。
5.
可视化表示
:可以使用图形化的方式表示IF-Net模型,直观地展示流程的结构和安全属性,便于理解和沟通。
5. 总结与展望
IF-Net为安全导向的流程规范提供了一种有效的解决方案。通过将流程划分为不同的安全域,定义安全级别和访问规则,以及检测信息流,IF-Net能够帮助企业更好地管理和保护其业务流程中的敏感信息。
在未来,随着信息技术的不断发展和安全需求的日益增长,IF-Net可以进一步扩展和优化。例如,可以引入更复杂的安全策略,如多级安全、动态访问控制等;可以与其他安全技术相结合,如加密、认证等,以提供更全面的安全保障。此外,还可以开发相应的工具和平台,提高IF-Net模型的建模效率和分析能力,促进其在实际应用中的推广和使用。
总之,IF-Net作为一种新兴的元模型,具有广阔的应用前景和发展潜力,有望在安全领域发挥重要作用。
超级会员免费看

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



