文章目录
- Web安全简史
- 中国黑客简史
- 黑客技术发展历程
- Web安全的兴起
- 黑帽子、白帽子
- 安全的本质
- 安全三要素
- 如何实施安全评估
- 1、资产等级划分
- 2、威胁分析
- 3、风险分析
- 4、确认解决方案
- 白帽子兵法
- Secure By Default 原则
- 纵深防御原则(Defense in Depth)
- 数据与代码分离原则
- 不可预测性原则
- 小结
Web安全简史
中国黑客简史
启蒙时代 ——黄金时代——黑暗时代
Hacker的初心”Open、Share、Free“
黑客技术发展历程
攻击网络、操作系统、及软件等领域——攻击Web应用
分支——桌面软件安全
Web安全的兴起
服务器端动态脚本——SQL注入——XSS(跨站脚本攻击)、CSRF(跨站请求伪造)等攻击
黑帽子、白帽子
- 黑帽子:利用黑客技术造成破坏、甚至进行网络犯罪
- 白帽子:精通安全技术,工作在反黑客领域的专家
安全的本质
- 安全问题的本质都是信任问题
- 安全是一个持续的过程
安全三要素
- 机密性 要求保护数据内容不能泄露,加密是实现机密性要求的常见手段
- 完整性 要求保护数据内容是完整、没有篡改的
- 可用性 要求保护资源是”随需而得”
如何实施安全评估
1、资产等级划分
互联网安全的核心问题是数据安全的问题
- 了解不同数据的重要程度,为后续评估过程指明方向
2、威胁分析
我们把可能造成危险的来源称为威胁,而把可能会出现的损失称为风险
- 威胁建模(STRIDE模型)
威胁 | 定义 | 对应的安全属性 |
---|---|---|
伪装(Spoofing) | 冒充他人身份 | 认证 |
篡改(Tampering) | 修改数据或代码 | 完整性 |
抵赖(Repudiation) | 否认做过的事情 | 不可抵赖性 |
信息泄露(InformationDisclosure) | 机密信息泄露 | 机密性 |
拒绝服务(Denial of Service) | 拒绝服务 | 可用性 |
提升权限(Elcvation of Privilege) | 未经授权获得许可 | 授权 |
漏洞的定义:系统中可能被威胁利用以造成危害的地方
3、风险分析
风险由一下因素组成:
Risk=Probability*Damage Poteneial
- 风险建模(DEREAD)
等级 | 高(3) | 中(2) | 低(1) |
---|---|---|---|
Damage Potential | 获取完全验证权限;执行管理员操作;非法上传文件 | 泄露敏感信息 | 泄露其他信息 |
Reproducibility | 攻击者可以随意再次攻击 | 攻击者可以重复攻击,但有时间限制 | 攻击者很难重复攻击 |
Exploitability | 初学者在短期内能掌握攻击方法 | 熟练的攻击者才能完成这次攻击 | 漏洞利用条件非常苛刻 |
Affected users | 所有用户,默认设置,关键用户 | 部分用户,非默认配置 | 极少数用户,匿名用户 |
Discoverability | 漏洞很显眼,攻击条件很容易获得 | 在私有区域,部分人能看到,需要深入挖掘漏洞 | 发现该漏洞极其困难 |
4、确认解决方案
- 一个优秀的安全方案应该具备一下特点:
- 用户体验好
- 能够有效解决问题
- 高性能
- 低耦合
- 高性能
- 易于扩展和升级
白帽子兵法
Secure By Default 原则
- 黑名单/白名单
白名单:设置能通过用户,白名单以外的用户不能通过
黑名单:设置不能通过的用户,黑名单以外的用户都能通过
2.最小权限原则
最小权限原则要求系统只授予主题必要的权限,而不要过度授权,这样才能有效地减少系统/网络/.应用/数据库出错的机会
纵深防御原则(Defense in Depth)
- 要在不同层面 不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体
需要考虑的可能有Web应用安全、OS数据安全、数据库安全、网络环境安全等
- 要在正确的地方做正确的事,即:在解决问题的地方实现针对性的安全方案
要求我们深入理解威胁的本质,必须把防御方案放到最合适的地方去解决
数据与代码分离原则
缓冲区溢出可以认为是程序违背了这一原则的后果-程序在栈中或堆中,将用户数据当作代码执行,混淆了代码与数据的边界,从而导致安全问题的发生
不可预测性原则
- 从克服攻击方法的角度看问题
- 能够有效地对抗篡改和伪造的攻击
- 不可预测性的实现往往需要用到加密算法 随机算法 哈希算法,利用好这条原则可使安全方案的设计事半功倍
小结
安全是一门朴素的学问,也是一种平衡的艺术,只需抓住安全的本质,无论遇到任何安全问题都会无往而不利!