【学习笔记】网络安全设计权威指南(一)
一、概述
O.Sami Saydjari 的《Engineering Trustworthy Systems, Get Cybersecurity Design Right the First Time》是网络安全体系方向的经典教材,和Ross Anderson的《安全工程》、Michael Howard的《编写安全代码》齐名。
二、读书笔记
第一部分 什么是真正的网络安全
第1章 问题之所在
本书的重点是网络安全方面的可信性,亦称可信赖性(Trustworthiness)。网络安全与可靠性所涉及的随机故障形成鲜明对比,因为网络安全涉及更具挑战性的问题,即智能引导、故意诱导的系统故障,称为网络攻击(Cyberattack)。
1.2.1组织是否受到攻击?
攻击执行过程如图1-3所示。

攻击执行方法包括一系列步骤,每一步都建立在前一步成功的基础上,并遵循如图所示的战略目标。这种方法遵循缺陷假设方法(Flaw Hypothesis Methodology,FHM)。

1.2.2 攻击的本质
确认攻击的本质包括图1-5:

1.2.3 目标系统影响评估对网络安全至关重要。
1.2.4 在评估对目标系统造成的损害时,重要的是了解损失是如何引起连锁反应的。决策者不仅需要攻击者在哪里,还要知道攻击者要去往哪里。
为了预测目标系统影响,防御者需要明确理解攻击目标系统映射以及级联故障模型(Cascading Failure Model),理解一个故障如何引发相互依赖的系统中的其他故障。
1.2.7 是被攻击者的目标可以提高防御能力。
1.3 网络空间效应的不对称性
| 物理空间 | 网络空间 | |
| 可理解性 | 直观 | 非直观 |
| 维度 | 三维 | 数千个维度 |
| 非线性 | 运动状态的子弹效果是很明显的 | 非线性效应(例如影响范围/地域、持续性) |
| 耦合 | 普遍理解的相互依赖性 | 信息使用的复杂性使相互依赖问题复杂化 |
| 速度 | 大多数攻击以可察觉的速度存在 | 有的攻击可能聚合得很慢,无法察觉,而其他攻击可能毫秒级完成 |
| 表现 | 大多数攻击都有物理表现 | 通常没有物理表现,发现为时已晚 |
| 可检测性 | 越界和妥协是很容易察觉的 | 可能根本没有察觉 |
1.4 网络安全解决方案

第一层
(1)底层是信息保障科学和工程,是解决空间“映射”的基础;
第二层
(2)防火墙和加密等防御机制是安全构件块(Security Building Block,SBB)的基础;
(3)网络指挥与控制构成网络安全的大脑和肌肉,制定和执行决策以动态防御不断变化的共计情况。驱动基础架构需要提前设置。决定最佳剧本的标准取决于系统状态和攻击状态。
(4)网络态势感知为系统正在发生的尽可能多的攻击及对目标系统的影响提供了一个广泛的战略视角。
(5)网络传感器与漏洞利用解决方案提供检测相关攻击事件的数据,以促进对网络态势的理解。
网络传感器产生的数据需要通过与其他传感器数据的关联来加以利用,并区分真正的攻击检测和错误报警。
第三层
(6)网络防御战略是通过经验、实验和理论发展起来的,是关于如何正确理解和控制一个系统以正确防御的知识。
总结:
1.系统的可信赖性是系统的基本属性,必须从一开始就将其设计到系统中。
2.对可信赖的系统的追求引发了许多与网络安全和其他属性有关的问题,包括与处
理攻击有关的运营问题。
3.与物理攻击相比,网络攻击在速度、影响级别(四两拨千斤)和隐蔽性方面都是独一
无二的。
4.网络安全解决方案空间涉及设计和动态控制的复杂组合。
5.网络安全工程涉及与目标系统的许多微妙权衡。
第2章 正确思考网络安全
2.1 理解网络安全就是理解风险,理解风险从何而来,如何使用合理成本再进来减少对目标系统影响的情况下有效降低风险。
风险有两个重要组成:目标系统产生负面情况的可能性、突发情况的影响程度。
2.2 网络安全的权衡:性能和功能。
安全权衡的因素:
1)用户友好度:比如记住口令很麻烦
2)上市时间:安全需求导致上市推迟
3)员工士气:检查大量日志让某些雇员麻木且沮丧
4)商机流失:一些目标系统的商业机会可能转瞬即逝
5)机会成本:投资网络安全意味着没有足够的资源投入目标系统功能中(零和游戏)
6)服务或产品数量:网络安全费用占用一部分系统资源
7)服务或产品质量:网络安全费用占用一部分系统资源
8)服务及产品成本: 网络安全开销增加服务或产品的成本
8)有限资源(算力、电力、空间等):消耗系统资源(属于零和游戏)
2.3安全理论来源于不安全理论。
2.6 网络安全乐队中包括三类乐器: 防御、检测和响应。
小结:
1.网络安全是在合理的成本和目标系统影响下有效地降低风险。
2.网络安全需要权衡目标系统的目标、性能和功能。
3.要正确理解网络安全,就必须了解系统是如何遭受攻击的。
4.由于错误的假设,系统间接口风险极高。
5.自上而下和自下而上设计共同协作才能实现有效的网络安全。
6. 网络安全需要对安全机制的动态方面进行多方位协调。
第3章 价值和目标系统
3.1 聚焦价值和目标系统
网络安全的目的是优化目标系统效能。
3.1.1 避免为敌对者提高高价值目标。
不要创建貌似强大却容易受到敌对者利用的控制和管理机制。
否则,相当于敌对者同时挫败了多项网络安全机制,也就是为敌对者创造了一个高价值的目标。
3.1.2
信任是要不断争取的,任何系统的信任状态均会随着时间的推移发生变化。
3.2 机密性:敌对者眼中保密的价值
机密性的价值包含四种类型:
| 序号 | 类型 | 预防优先级 | 检测优先级 |
| 1 | 知识获取型秘密 | 高 | 低 |
| 2 | 计划型秘密 | 高 | 极高 |
| 3 | 窃取型秘密 | 较高 | 中等 |
| 4 | 泄密途径秘密 | 高 | 极高 |
3.3 谨防过度保密
| 序号 | 保密问题 | 描述 |
| 1 | 脆弱 | 秘密一旦形成,难以保守 |
| 2 | 成本高昂 | 保密的直接成本、间接成本高昂 |
| 3 | 适得其反 | 由于识别和标记秘密而成为目标 |
| 4 | 自我繁殖 | 因保密而滋生更多秘密 |
| 5 | 权力滥用和运营受阻 | 秘密阻碍沟通与合作 |
如果一切数据都是敏感的,就没有数据是敏感的。
3.4 减少组织对秘密的依赖是将泄密影响降低到最低的合适的方法。
3.5 没有完整性,其他任何网络安全属性均无从谈起。
完整性包括两个重要类型:数据完整性和系统完整性。
3.6 可用性也取决于不由设计者运营管理的系统。
3.7 小结
(1)组织需要对机密性、完整性和可用性做出权衡。
(2)网络安全对组织目标系统的保护,如同免疫系统对人体的保护。
(3)从攻击者的角度进行思考,将泄密损失最小化。
(4)避免将有价值的数据汇聚在一处,从而成为高价值的进攻目标。
(5)秘密容易繁殖,难以保护,这些特点可能妨碍组织的目标系统。
(6)在系统的整个生命周期,都应当评价保密对目标系统的影响。 尽量减少保密的数据量,减少泄密给目标系统造成的损失。
(7)在系统的整个生命周期,都要向利益相关方证明系统的可信赖性。
(8)没有系统完整性,机密性和可用性无从谈起。
(9)可用性也取决于不由设计者运营管理的系统。
(10)避免将关键功能和数据外包给不可信赖的实体。
第4章 危害:目标系统处于危险之中
4.7 小结
(1)通过关注未实现的目标元素,关注战略风险。
(2)不要为小事烦恼--这会分散注意力,只会对敌对者有利。
(3)战略危害是那些让组织高管们日夜不安的危害。
(4)根据目标系统的依赖程度为数据划分关键性级别。
(5)关键性决定了与机密性、完整性和可用性相关的重要程度。
(6)综合考察组织目标和关键数据元素,确定战略危害。
(7)启发和利用“群体智慧”,就关键战略危害达成一致。
(8)信心攻击(Belief)危害严重,令人沮丧,在未来很可能还会增长。
第5章 抽象、模型和现实
5.1 状态的复杂性
抽象让难以理解的系统状态变得可以理解。
人脑可以同时容纳和理解大约七个事物,上下浮动两个。所以需要引入抽象,以及抽象的数学等价物,即建模。
5.3 建模内容和原因
5.3.1 目标系统
确定什么与安全相关,可检查数据的三种状态:静止状态数据(内存或存储)、移动状态数据(通信和联网)、转化状态数据(计算)。
所以建模需要对存储、通信和计算建模。
5.3.2 用户
完整模型必须包括用户。
特殊用户需要特殊关注:防御运营人员,包括系统管理员、网络管理员和入侵检测系统检测人员。
这类人员是攻击者的高价值目标。
5.3.3 敌对者。
敌对者是另一类特殊用户。
5.3.4 措施、安全对策
模型的各元素组合在一起会形成复杂模型。
5.4 模型总是出错,偶尔有用
模型至少有三种可能的出错方式:不完整性、不准确性和不及时性。
5.4.1 不完整性:错误的忽略了系统中事实上必不可少的方案。
5.4.2 不准确性:系统模型可能无法反映系统构建和运行状态。
5.4.3 不及时性:对于动态的变更很难保持准确性。
5.5 模型视图
5.5.1 防御者视图: 防御者可以根据自己的爱好塑造网络拓扑。
尽可能防止攻击者了解目标系统。
5.5.2 敌对者试图:防御者必须关闭所有攻击通道;攻击者则只需求找到一条通道。
攻击者与生俱来的一个巨大优势是出其不意。
5.5.3 攻击视图本身
模型本身就是有价值的目标,应当受到保护。
防御信心攻击将变得越来越重要。
5.6 防御模型必须考虑失效模式
安全需要可靠性,可靠性也需要安全。
避免、检测和恢复故障至关重要。
可依赖性威胁链如下:

5.7 假设敌对者了解防御者的系统
(1)假设敌对者比方方更了解防御者的系统。必须保护系统防御的参数。公开宣称防御系统的确切本质、配置和设置,以及风险管理分析和方案,都是不明智的。
(2)缺乏保护的软件开发者将导致0Day攻击。
5.8 假设敌对者位于防御者系统内部
(1)软件开发工具和过程可能已被攻击,攻击者可攻击编译器、连接器、加载程序、库或者配置构建文件。检测和组织此类攻击非常困难。
(2)最小化系统间的信任需求。
(3)出口流量持续监测与入口流量持续监测同等重要。
5.9小结
(1)如果系统不以某种形式建模,会太复杂而无法理解。
(2)抽象有助于集中注意力并促进更好的网络安全设计和运营。
(3)系统模型包括用户、敌对者和动态措施/安全对策。
(4)由于模型具有不准确性、不完整性或不及时性,将导致设计和运营操作出错。
(5)防御者模型具有控制和了解自身系统的优势。
(6)攻击者模型具有“出其不意”的非对称优势。
(7)防御者和敌对者模型本身就是有价值的目标。
(8)网络安全和可靠性是可信赖性相互依存的两个方面。
(9)假设敌对者深刻了解目标系统的设计和实施。 更进一步,假设敌对者以恶意代码的形式存在于系统内部。
更多推荐
所有评论(0)