全文约 7 000 字 5 图 阅读约 20 分钟
2020年7月15日, TOG(国际开放组织, The Open Group )联合 SABSA研究院 ,正式发布 中文版 指南 《安全架构实践的公理》 (其英文版 《 Axioms for the Practice of Security Architecture 》 发布于2019年7月)。 指南的受众是 安全架构师 ,或对安全架构感兴趣的人。 笔者如获至宝,对 20条公理 ,分别做了极简摘录,可谓 字字珠玑、句句经典 。
TOGAF(开放组织架构框架) 是最知名的企业架构(EA), SABSA( Sherwood业务 应用 安全架构 ) 是最知名的安全架构。而该指南恰恰是由管理维护这两大架构的组织,共同联合推出。且该指南的第一作者 Sherwood ,也正是SABSA( Sherwood Applied Business Security Architecture)的 创立者 。由此 可见该指南的权威性和重量级。
20条安全架构公理 , 是从安全学科的几十年安全架构实践经验中提炼出来的, 是对永恒安全主题的升华, 是对完美 理想主义的 陈述 。 无论数字技术和威胁如何发展演进,它们都是 具有广泛适用性的永恒声明 。 它们也许不是完全可以实现的,但 它们就像遥远的灯塔 ,可以指导业务和安全能力的开发活动的方向。 20条 公理是有序的 , 从业务性公理,到技术架构性公理,再到设计性公理 。
世界因公理而美好。公理虽是不证自明的真理 , 但并非不可突破 。通过怀疑欧式几何学的平行公理,产生了黎曼几何学,间接催生了广义相对论。笔者在本文末尾特别增加了一篇 后记:公理为何重要——从几何学到相对论 。也从侧面反映了对公理的认知有多难。
下载说明 :需要 《安全架构实践的公理》( 中 文版+英文版 )(中文版70多页,3万多字) 的读者,请关注“ 网络安全观 ”公众号,并在公众号后台输入文字“ 安全公理 ”。
首先列出《安全架构实践的公理》中的20条公理(其中 括号中的内容均为笔者添加 以助理解):
公理1:业务风险驱动安全
公理2:场景(无场景,不安全)
公理3:范围(明确定义架构范围)
公理4:情报(利用情报主导响应)
公理5:信任(准确建模实体信任关系)
公理6:整体分析(跨越所有架构域)
公理7:简洁性(自上而下管理复杂性)
公理8:重用(不要重新发明轮子)
公理9:弹性(通过控制执行降级)
公理10:过程驱动(使用清晰的生命周期)
公理11:优化冲突解决(平衡利益相关方)
公理12:清晰的沟通(跨越业务和技术)
公理13:易用性(注重用户体验)
公理14:设计安全(而非通过隐藏构建安全性)
公理15:优先级(强者保护弱者)
公理16:设备主权(接受不可信网络)
公理17:纵深防御(各层之间彼此独立)
公理18:最小特权(离不开细粒度访问控制)
公理19:访问管理(识别/认证/授权)
公理20:通信安全(网络层安全无法保护应用层)
安全架构公理
01
公理1:业务风险驱动安全
安全架构应通过 最大化收益和最小化损失 来支持业务目标。
必须牢记的是, 组织资产并不是为了被保护而存在,它们的存在是为了创造价值 。而利用资产创造价值,通常意味着使该资产面临风险。这正是矛盾之处。
为了提供最优架构,安全架构师不仅要从 防止负面结果 的角度来看待它们对组织的贡献,还要从 促成 积极结果 的角度来看待它们。
如果安全架构无法支撑组织利用其资产来完成业务工作,则该安全架构可能被边缘化和显得无用。
安全架构应基于业务风险驱动,并且应该是对这些风险进行适当响应。
02
公理2:场景
不要虚构场景,否则后果自负。专为一种场景而设计的安全系统或解决方案,并不总是可以有效地在另一种场景中工作。
这并不是反对重用,可重用的基于组件的架构有很多好处。但是,如果为了节省时间和精力,将安全系统重用于不同的用例,则需要针对这两个用例之间的差异,进行新的风险分析。
该指南还专门针对系统设计中的一个常见错误——访问控制过程的 身份识别、身份验证、授权过程的混淆 ,进行了澄清。
03
公理3:范围
明确定义安全架构的范围很重要。在这方面, 系统收益(SOI) 的概念很有用(如ISO/IEC/IEEE 42010:2011中所定义)。
04
公理4:情报
安全系统应 利用情报来主导响应活动 。通过威胁情报,既可以了解 对手 的意图、能力、攻击方式,也可以了解 自身 的漏洞情况。
建议对潜在威胁场景进行建模分析,来实现最佳效果。可参考 SABSA《企业安全架构》 一书中描述的方法,如下图所示:
05
公理5:信任
安全架构应该保障系统可以准确建模 业务实体关系中存在的信任 的性质、类型、级别、复杂性。
信任是人际关系的特征。但我们可能要给 非人员对象 以信任。当这样做时,其实是在说,我们可以信任操作这类对象的人员,或可被操作这类对象的人员所信任。因此,一个可信的系统是指我们信任参与系统生命周期过程的人员。
信任从来都不是二进制,而是一个很长的 灰度连续体 ,很少有黑色或白色。
“信任”和“被信任”不是镜像关系。
即使是最复杂的信任关系,也可以自顶向下分析成一系列简单的单向信任关系。通过严格执行此项分析, 可以将任何业务关系分解为简单且独立的单向信任组件 。
06
公理6:整体分析
安全需求应与其它的功能性 需求 和非功能性需求集成在一起 。安全需求通常被描述为非功能需求(NFR),并且不应将其与其他功能需求或非功能需求分离。只有将所有需求都视为SOI(系统收益)整体风险的一部分时,安全架构才能有效工作。
架构通常被视为不同 视角 的一系列 观点 。这些观点通常被称为 架构域 。例如:业务架构域、应用架构域、信息架构域、数据架构域、服务管理架构域、技术架构域。 就像看一座被群峰环绕的山谷,远近高低的观点各不同 。
而 安全架构域 是从另一个视角来看的另一种观点,但与其它视角有很大不同,因为它是一个 跨领域 的域, 必须以整体的方式 解决所有其它域的安全和风险管理问题。因为风险无法分为孤立的架构域,所以安全架构师必须同时从所有视角看到山谷,即拥有可以随意旋转的全息视图。
07
公理7:简洁性
系统和服务应在 保证功能性的前提下尽可能简洁 。
复杂是安全的敌人,必须在保持整体性的同时,将其简化为子结构进行管理。安全架构将会受益于 面向服务的架构(SOA) 方法,在这种方法中,我们看到了 “一切即服务”(EaaS) 。服务的性能对于实现顶级业务绩效目标至关重要。
任何架构类型的主要目标之一就是管理复杂性。必须通过 自上而下的分解 来分解高度复杂的SOI(系统收益),从最高级别的业务目标开始,并创建逐渐简化的SOI层次,并对其逐层解决。
高度复杂的系统,倾向于表现出 涌现性 。涌现性的示例包括:两个或多个进程争用同一系统资源时发生 死锁 ;网络在超出容量后的 流量拥塞 。
系统安全漏洞主要来自两个来源:设计错误和涌现性。两者不相同,不应混淆。 涌现性 是系统工程的一种现象,并非一开始就被设计出来。复杂性本身就是导致出现这一现象的原因。
简化复杂性的方法,通常是通过 自上而下的逐层分解 。下图显示了两种分解方式。
图2-IT技术栈
图3-SABSA业务栈
通过IT技术栈 与 SABSA业务栈的对比可见,在这两种情况下,顶级资产(IT栈中的信息和业务栈中的业务价值链)都分解为分层架构模型。
将面向服务的方法应用于这些分层堆栈,可以实现“一切即服务”(EaaS)。这是一种供需模型,其中上一层从下一层请求服务,而下层向上层交付所需的服务。
爱因斯坦曾说过:“ 一切都应该尽可能简单,但不要过分简单 ”,这对于安全系统来说是正确的。
08
公理8:重用
在可行的情况下,尽可能重用受信任的系统开发实践和系统组件。
安全架构师不应从零开始, 不要重新发明轮子 。 从通用框架和参考架构开始,并针对特定的场景进行定制,始终是效率更高的方法 。
框架示例包括:
NIST网络安全框架(CSF):是150多个RFI响应和许多利益相关方会议的产物。
ISO 27000系列:是用于组织和监控企业安全机制的一组控件和过程。
ISO 31000-2018:定义了一个周期性的风险管理流程。
SABSA平衡风险模型:提供了定义风险相关组件的组织结构。
09
公理9:弹性
安全系统应在受到胁迫时依然正常运行。
架构的弹性不仅仅是设备,还必须包括人员和流程。
弹性的关键特征是计划内的系统降级——通过控制将系统降级,而非由于无法控制导致故障。
良好的弹性设计的一个例子,是在大容量云服务数据中心中使用 混沌工程 。混沌工程通过在时间敏感的在线服务中,不断进行 故障自动转移测试 ,来验证系统弹性。
10
公理10:过程驱动
安全开发过程应使用 清晰的 生命周期 ,来解决要求的 时间跨度 ,并引入 利益相关方 。
战略:安全架构的 目标是支持组织的长期的业务战略 。 安全架构本身是一项战略活动 ,需要长期的投资和管理层的支持。
战术:安全架构是通过一系列步骤开发和实施的:利用 变更 项目从而使长期愿景变为现实。
运营:安全架构提供技术、工具、流程来确保日常的安全,并 对业务运营提供风险管理 。
11
公理11:优化冲突解决
安全应通过 平衡业务风险 ,来优化解决利益相关方的冲突。
利益相关方的关注通常会发生冲突。 安全架构的作用之一是以最佳方式解决这些冲突,在功能需求和其他非功能需求与安全需求之间取得平衡 。这些利益冲突可能非常复杂,源于安全架构的 跨复杂领域 的性质。
12
公理12:清晰的沟通
安全应使用有利于 业务和技术 利益相关方之间进行有效沟通的 通用术语 。
安全架构师必须至少会两种“语言”,能熟练使用业务涉众的语言(“ 业务术语 ”)和技术人员的知识(“ 技术术语 ”)。
13
公理13:易用性
安全系统应该尽可能对用户透明且易于使用。
不易使用或导致生产受到影响/破坏的安全控制措施,通常会被忽略、禁用、废除,导致资源容易受到攻击,从而失去了控制措施的价值。而被绕过或未被使用的安全系统将毫无价值。
可用性差的经典示例,是密码的使用。另一个示例是Web浏览器使用PKI证书对网站进行验证。
14
公理14:设计安全(SbD)
安全性应依赖于经过验证的特定控制措施,而非隐藏。
每本安全书籍都强烈建议 不要使用“通过隐藏构建安全性” 。 其实通常被否定的,是希望安全漏洞不被发现的侥幸心理 。
安全不应依赖于暗箱操作或其它晦涩的形式,而应依赖于经过验证的特定控制。就像密码学的安全性,应取决于对加密密钥的保护,而非加密算法。
15
公理15:优先级
使用较强的保护机制来保护较弱的机制,而非相反。
最重要的事物不应依赖于不重要的事物。
16
公理16:设备主权
所有设备均应能够在 不受信任的网络上 保持其安全策略。
保护机制通常位于本地或 靠近被保护的资源 更有效。这使得防护机制更容易随受保护资源一起迁移。
物联网设备的市场壁垒,使得设备主权原则难以适用。安全架构师必须面对这一挑战。不可能强迫市场将高级安全性集成到IoT设备中,因为这是一种市场驱动的现象,受成本和收益的感知驱动,但是 设计整体集成的分层方式将改善一定程度的安全性 。
17
公理17:纵深防御
通过 分层防御 可以获得更高的安全性。
纵深防御是一种传统方法,它通过在攻击路径上应用多层或多级安全性,来最大程度地保护每个资源。
为了使纵深防御有效, 各 层之间必须彼此独立 ,各层应该由不同类型的控制措施组成,而非多层使用同一类型的控制 。
当控制措施失效时,选择 失效而开放 ,还是 失效而关闭 ,取决于资源的敏感性和它所支持的服务的需求。在此领域, 有限状态机(FSM)建模 可用于探索系统可能进入的所有可能状态。
18
公理18:最小特权
主体(人员、事物、流程等)应仅被授予执行其授权任务所需的权限。
部署最小特权系统和服务的能力,在一定程度上 取决于可以执行细粒度访问控制 的技术和流程。细粒度的访问控制,要求以一种方式 捕获或存储有关资源或资产以及最终用户的 元数据 ,以便访问控制系统可以通过它来做出有关资源的 访问决策 。
职责分离也是从纵深防御中衍生出来的一种特殊形式的最小特权。
19
公理19:访问管理
访问控制包括三种不同的操作过程:
识别:识别并区分主体;
认证:验证主体的身份;
授权:授予主体适当的访问权限。
最终用户访问资源或资产的通用模型,如下图所示:
20
公理20:通信安全
设备和应用程序应使用开放、安全的协议进行通信。
在当今过度连接的世界中,无法假设未加密的传输具有任何级别的安全性。
最重要的一点是,无论加密服务是否已打开并处于最佳运行状态, 网络服务都无法向应用服务发出信号 。因为网络无法理解应用程序的数据结构。
规则很简单: 网络需要网络安全服务来保护。应用程序需要应用安全服务来保护 。
通信安全架构是一门复杂的学科。它必须在通信设备之间采用 敌对环境 ,并且必须 同时满足应用程序层安全性和网络层安全性 。
后记:公理为何重要——从几何学到相对论
一提到公理,就会想到 几何公理 。正是在这种条件反射下,笔者整理了这篇公理后记。希望有助于理解 公理之伟大 。
01
欧式几何五大公理
我们从小学习的几何学科,来自于 欧式几何 。
公元前3世纪,古希腊的 欧几里得 编写《几何原本》,创立 欧式几何。 欧式几何应用于平面时,也称为 平面几何 ;应用于三维空间时,也称为 立体几何 。 欧式几何 有5大公理:
公理1:任两点必可用直线相连。(直线公理)
公理2:直线可以任意延长。
公理3:可以以任意一点为圆心,任意长度为半径画圆。(圆公理)
公理4:所有直角都相同。(角公理)
公理5:过线外一点,恰有一条直线与已知直线平行。( 平行公理 )
欧式几何影响了世界多少年? 两千多年,并未终止 。中国在内的许多国家,仍以它为基础作为几何教材。它是整个人类文明史上的里程碑,而最重要的是欧几里德在书中创造的 公理化方法 。
02
命运坎坷的罗氏几何
1826年,俄国的罗巴切夫斯基,在大学的学术会议上,宣读了论文《几何学原理及平行线定理严格证明的摘要》。将平行公理,改成 双曲平行公理 :过直线之外的一点,至少有 两条 直线和已知直线平行。从而创立了 罗氏几何 ,也称为 双曲几何 。
遭受打压:罗氏几何这项开创性工作,长期没有得到学术界的理解和重视。当时的学术界普遍不承认非欧几何的存在。罗巴切夫斯基在生前一直遭受俄国科学界的打压,直到他1856年去世, 学术界普遍认为非欧几何纯属“无稽之谈” 。
知音难免:高斯是当时数学界首屈一指的数学巨匠,负有“ 欧洲数学之王 ”盛名,享有“ 数学王子 ”美誉。在1817年左右,他的非欧几何思想已达到成熟程度。但是,高斯担心非欧几何会激起学术界的不满,生前一直没有公开其研究成果(仅反映在与朋友的书信中)。当高斯看到罗巴切夫斯基的《平行线理论的几何研究》后,内心极为矛盾:他私下在朋友面前高度称赞罗巴切夫斯基是“俄国最卓越的数学家之一”,并下决心学习俄语,以便直接阅读罗巴切夫斯基的全部非欧几何著作,并积极推选罗巴切夫斯基为哥廷根皇家科学院通讯院士;但在亲笔推选通知书中,却对罗巴切夫斯基在数学上的最卓越贡献——创立非欧几何,避而不谈。高斯非常信教且保守,这也许是他不敢公开发表非欧几何学的原因吧。
终获认可:1868年,意大利数学家贝特拉米发表了论文《非欧几何解释的尝试》,证明非欧几何可以在欧氏空间的曲面上实现。直到这时,长期无人问津的非欧几何,才开始获得学术界的普遍注意和深入研究。罗巴切夫斯基则被赞誉为“ 几何学中的哥白尼 ”。
03
就职演讲诞生的黎曼几何
1854年,德国的黎曼先生发表《论作为几何学基础的假设》的演讲,继续 对公理5提出挑战 ,认为 公理5 还可以改成:在同一平面内任何两条直线都有交点(也就是 不存在平行线 ),从而创立了 黎曼几何 。
如果大家思考一下 圆形球面 ,就不难理解了。圆球上的“直线”是过球心的圆上的“大圆弧”,且所有的这些“直线圆”都是相交的。因此,绝不会存在平行线。(球面上的直线必须是球面上的 最短 路径,所以我们熟知的 纬线并不是直线,而经线才是直线 )
黎曼由圆球面得出的结论,也可以推广到“椭球面”上(毕竟圆球是椭球的特例)。所以,黎曼几何也称为 椭圆几何 。
黎曼生平:
数学界公认,黎曼几何是黎曼对数学的最大贡献,由此 黎曼成为了近现代最伟大的几何学家 ,没有之一。黎曼开创的黎曼几何,为后来爱因斯坦的广义相对论提供了数学基础。
黎曼和高斯是同时代的师徒巨匠:黎曼在20岁的时候,进入哥廷根大学学习哲学和神学;后来听了高斯的数学课程后,改修数学;高斯也成为黎曼的博士论文导师。
注意:黎曼在哥廷根大学发表的《论作为几何基础的假设》演讲,其实只是一个 就职演讲 ,而且只是为了 谋求一个大学讲师 的职位。
黎曼身体多病,羞怯忧郁,内心丰富,喜欢独处。40岁时,因肺结核去世。
黎曼1859年提出 黎曼猜想 。虽然在知名度上,黎曼猜想不及 费尔马猜想 和 哥德巴赫猜想 ,但它在数学上的重要性要远远超过后两者,当今数学文献中已有超过 一千条数学命题 以黎曼猜想(或其推广形式)的成立为前提。 一百六十年过去 ,黎曼猜想至今尚未被成功证明。
03
公理无对错
上述三种不同的几何学,从本质上看是 平行公理 的不同造成的:
欧式几何:过直线外一点, 恰有 一条 直线与已知直线平行;
罗氏几何:过直线外一点, 至少有 两条 直线和已知直线平行;
黎曼几何:过直线外一点, 没有直线 与已知直线平行。
另一方面,从三种不同的几何学,可以推断出不同的 三角形内角和 (如下图所示):
欧式几何:三角形的内角和=180度;
罗氏几何:三角形的内角和>180度;
黎曼几何:三角形的内角和<180度。
图5-不同几何学的三角形内角和
这三种几何各自所有的命题,都构成了一个严密的公理体系。各公理之间满足和谐性、完备性、独立性。因此这三种几何都是正确的,本质上它们反映了 不同曲率空间 的性质:
欧氏几何是 平直空间 中的几何;
黎氏几何是 正曲率空间 中的几何;
罗氏几何是 负曲率空间 中的几何。
在我们这个不大不小、不远不近的日常生活空间里,欧式几何是适用的;在宇宙空间或原子核世界,罗氏几何更符合客观实际;在地球表面研究航海、航空等实际问题时,黎曼几何更适用一些。
02
从几何学到相对论
1915年,爱因斯坦运用黎曼几何和张量分析工具,创立了新的引力理论——广义相对论。爱因斯坦借助黎曼几何,构建了广义相对论的空间模型。因为在广义相对论中,爱因斯坦设想引力场是一个弯曲的时空,光线在通过引力场时会出现弯曲,而黎曼几何恰好描述了这种弯曲了的空间。
最后,我们还应回想到经典物理的开创者牛顿。如果说 牛顿经典力学的时空是以欧几里得为基础 的话,那么, 爱因斯坦广义相对论的时空就是以黎曼几何为基础 。
注:点击底部“阅读原文”,可进入The Open Group官方网站, 注册后 可免费下载《安全架构实践的公理》。
文章来源:网络安全观