互联网本来是安全的,自从有了研究安全的人之后,互联网就变得不安全了。
安全的本质
- 安全问题的本质是信任问题
- 安全是一个持续的过程
- 安全是一门朴素的学问,也是一种平衡的艺术
安全三要素
- 机密性:要求保护数据内容不能泄露,加密是实现机密性要求的常见手段
- 完整性:要求保护数据内容是完整的、没有被篡改的。常见的保证一致性的手段是数组签名
- 可用性:要求保护资源是“随需而得”的
如何实施安全评估
- 步骤:资产等级划分=>威胁分析=>风险分析=>确认解决方案
- 前一个阶段将决定下一个阶段的目标,需要实施到什么程度
资产等级划分
- 互联网安全的核心问题,是数据安全的问题
- 互联网公司除了一些固定资本,最核心的价值就是其拥有的用户数据
- 对资产对等级划分,就是对数据做等级划分
步骤
- 与各业务部门负责人一一沟通,了解公司最重要的资产是什么,他们各看中的数据是什么。进而了解公司的业务、公司所拥有的数据,以及不用数据的重要程度,为后续的安全评估过程指明方向
- 对于每个应用,划分信任域和信任边界,最里层是最重要的信息,最外层是不可信任的Internet
- 考虑不同应用之间的数据交互,对于各自是否可信,是否应该在2个应用之间划一个边界,然后对流经边界的数据做安全检查
威胁分析
- 威胁:可能造成危害的来源
- 风险:可能会出现的损失
- 漏洞:系统中可能被威胁利用以造成危害的地方
过程
- 采用头脑风暴来确定攻击面,或者进行威胁建模
- 威胁建模可以参考微软提出的STRIDE模型:
威胁 | 定义 | 对应的安全属性 |
---|---|---|
Spoofing(伪装) | 冒充他人身份 | 认证 |
Tampering(篡改) | 修改数据或代码 | 完整性 |
Repudiation(抵赖) | 否认做过的事情 | 不可抵赖性 |
InformationDisclosure(信息泄露) | 机密信息泄露 | 机密性 |
Denial of Service(拒绝服务) | 拒绝服务 | 可用性 |
Elevation of Privilege(提升权限) | 未经授权获得许可 | 授权 |
- 威胁分析,一定要细,要全面,非常重要
- 很多时候还需要经常回顾和更新现有的模型
风险分析
- 为每一个找到的威胁做风险分析
- 风险由以下因素组成:
1
Risk = Probability * Damage Potential
- 影响风险高低的因素,除了造成损失的大小,还需要考虑发生的可能性
- 做风险分析时,可以参考微软提出的DREAD模型:
等级 | 高(3) | 中(2) | 低(1) |
---|---|---|---|
Damage Potential | 获取完全验证权限;执行管理员操作;非法上传文件 | 泄露敏感信息 | 泄露其他信息 |
Reproducibility | 攻击者可以随意再次攻击 | 攻击者可以重复攻击,但有时间限制 | 攻击者很难重复攻击过程 |
Exploitability | 初学者在短期内能掌握攻击方法 | 熟练的攻击者才能完成这次攻击 | 漏洞利用条件非常苛刻 |
Affected users | 所有用户,默认配置,关键用户 | 部分用户,非默认配置 | 极少数用户,匿名用户 |
Discoverability | 漏洞很明显,攻击条件很容易获得 | 在私有区域,部分人能看到,需要深入挖掘漏洞 | 发现该漏洞非常困难 |
- 在上表中,分别赋予高、中、低以3、2、1的权重,因此可以计算出一个威胁具体的风险值
设计安全方案
- 没有不安全的业务,只有不安全的实现方式
- 在设计安全方案时,尽可能不要改变商业需求的初衷
一个好的安全方案有以下特点
- 能够有效解决问题
- 用户体验好
- 高性能
- 低耦合
- 易于扩展与升级
白帽子兵法
在具体设计安全方案时,有什么样的技巧呢?
Secure By Default 原则
- 能用白名单,尽量不要用黑名单
- 最小权限原则
Defense in Depth
- 要在各个不同层面、不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要互相配合,构成一个整体
- 要在正确的地方做正确的事情,即在解决根本问题的地方实施针对性的安全方案
数据与代码分离原则
- 注入攻击基本上都是因为违背了数据与代码分离原则
- 实际上,缓冲区溢出,也可以认为程序违背了这一原则的后果(程序在栈或者堆中,把用户数据当作代码执行)
不可预测性原则
- 不可预测性,能有效对抗基于篡改、伪造的攻击(例如token)
- 不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法
本文作者:
Bano
本文链接: https://bano247.com/2021/11/08/我的安全世界观/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://bano247.com/2021/11/08/我的安全世界观/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!