第 1 周¶
软件安全的攻击与防御¶
攻击演化:
- 攻击难度指数级增加:复杂性上升,隐蔽性上升
- 控制能力缩小
防护演化:
- 软件到硬件上的
- 学术界原型到产业界实用的
- 相比攻击肯定有滞后性
安保(Security)和安全(Safety)¶
安保(Security)是对于有意的打击的防御力;安全(Safety)是对于随机发生的事故的防御力。
在这里,我们关注前面一个。之后说到安全的话,也会是 Security 的意思。
什么是安全(Security)¶
- 保密性:攻击者无法拿到要保密的数据。
- 完整性:攻击者无法修改要保护的数据。
- 可用性:攻击者无法打断或者阻碍别人对这个数据的合理访问。
对手 Adversary¶
对手是个(假想的或者实际存在的)尝试攻击系统的实体。
信任模型 Trust Model¶
你信任你的编译器吗?
可信计算基础 Trusted Computing Base,TCB¶
指为实现计算机系统安全保护的所有安全保护机制的集合。
英特尔的 x86 上有一种叫做权限 rings 的东西:Ring 0 是内核,Ring 1 和 Ring 2 是驱动,而 Ring 3 是应用程序。这是用来进行访问控制的;一般用户常见的是 Ring 0(内核态)和 Ring 3(用户态)。
威胁模型 Threat Model¶
威胁模型可以识别和枚举潜在的威胁。
安全政策(CIA 模型)¶
- 保密性:只有有权限的人才能访问数据。
- 完整性:存储在系统的数据是正确的。
- 可用性:“用户说要有服务,于是就有了服务。”
AAA¶
不是天青刺客联盟。
- 验证 Authentication:你是谁?
- 授权 Authorization:你能干什么?
- 审计 Audit / Provenance:我要怎么限制你?
验证¶
有三种主流的思想:
- 你知道的东西——用户名和密码
- 你到底是谁——生物特征
- 你有什么——二次验证、密钥卡、……
授权¶
自主访问控制 Discretionary Access Control,DAC¶
foo | bar | baz | |
---|---|---|---|
user | rwx | rw | rw |
group | rx | r | r |
other | rx | r |