安全工程师的核心竞争力不在于他能拥有多少个 0day,掌握多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。
第一篇 我的安全世界观
脚本小子 “Script Kids”。
黑客精神所代表的 Open、Free、Share。
Web 1.0 服务器端动态脚本的安全问题。
SQL注入的出现是Web安全史上的一个里程碑。
XSS(跨站脚本攻击)的出现则是Web安全史上的另一个里程碑。
Web 2.0 攻击客户端,浏览器和用户。
白帽子,则是指那些精通安全技术,但是工作在反黑客领域的专家们;黑帽子,则是指利用黑客技术造成破坏,甚至进行网络犯罪的群体。
1.3安全的本质
数据从高等级的信任区域流向低等级的信任域,是不需要经过安全检查的;数据从低等级的信任域流向高等级的信任域,则需要经过信任边界的安全检查。
安全问题的本质是信任的问题。
安全是一个持续的过程。
1.5安全三要素
安全三要素是安全的基本组成元素,分别是机密性(confidentiality)、完整性(Integrity)、可用性(Availability)。
机密性要求保护数据内容不能泄露,加密是实现机密性要求的常规手段。
完整性则要求保护数据是完整、没有被篡改的。常规的保证一致性的技术手段是数字签名。
可用性要求保护资源是”随需而得“。
拒绝服务攻击破坏的是安全的可用性。
其他因素:可审计性、不可依赖性等。
1.6.1资产等级划分
互联网安全的核心问题,是数据安全的问题。
了解公司最重要的资产是什么,他们最看重的数据是什么。有最关心的是客户数据,有公司最关心的员工资料信息。
划分信任域和信任边界。
1.6.2威胁分析
可能造成危害的来源称为威胁(Threat)。
可能会出现的损失称为风险(Risk)。
风险一定是和损失联系在一起的。
STRIDE模型
----------------------------------------------------威胁 定义 对应的安全属性
----------------------------------------------------
Spoofing(伪装) 冒充他人身份 认证
----------------------------------------------------
Tampering(篡改) 修改数据或代码 完整性
----------------------------------------------------
Repudiation(抵赖) 否认做过的事情 不可抵赖性
----------------------------------------------------
InformationDisclosure 机密信息泄露 机密性
(信息泄露)
----------------------------------------------------
Denial of Service(拒绝服务)拒绝服务 可用性
----------------------------------------------------
Elevation of Privileg 未经授权获得许可 授权
(提升权限)
1,6.3风险分析
Risk = Probability*Damage Potential.
DREAD 模型
---------------------------------------------------
等级 高(3) 中(2) 低(1)
----------------------------------------------------
Damage 获取完全验证权限; 泄露敏感信息 泄露
Potential 执行管理员操作; 其他信息非法上传文件
---------------------------------------------------
Reproducibility 攻击者可以 攻击者可以重复攻击, 攻击者很
随意再次攻击 有时间限制 难重复攻击
---------------------------------------------------
Exploitability 初学者在短期内 熟练攻击者才能 漏洞利用条件
掌握攻击方法 完成这次攻击 非常苛刻
-----------------------------------------------------
Affected users 所有用户,默认 部分用户, 极少数用户
配置,关键用户 非默认配置 匿名用户
-----------------------------------------------------
Discoverability 漏洞很明显 在私有区域, 发现该漏洞
攻击条件很容易 部分人能看到 极其困难
获得 需要深入挖掘漏洞
-------------------------------------------------------
安全是产品的一种属性。
1.7白帽子兵法
1.7.1Secure By Default 原则
白名单,允许的清单。
黑明白,禁止的清单。
1.7.1.2最小权限原则
最小权限原则要求系统只授权主体必要的权限,而不要过度授权。
1.7.2纵深防御原则
纵深防御包含两层含义:首先,要在各个不同层面、不同方面实施安全方案,避免出现疏漏、不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。
1.7.3数据与代码分离原则
1.7.4不可预测性原则
Secure By Default,是时刻要牢记的总则;
纵深防御,是要更全面、更正确的看待问题;
数据与代码分离,是从漏洞成因上看问题;
接下来要讲的不可预测性”原则,则是从克服攻击方法的角度看问题。
不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法。
一个业务安全设计得好的网站,往往loginID和nickname(昵称)是分开的。登陆ID是用户的私有信息,只有用户本人能够看到;而nickname不能用于登录,大神可以公开给所有人看。
第二篇 客户端脚本安全
第2章浏览器安全
2.1同源策略
浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。
2.2浏览器沙箱
Sandbox即沙箱,已经泛指“资源隔离类模块”的代名词。Sandbox的设计目的一般是为了不可信任的代码运行在一定的环境中,限制不可信任的代码访问隔离区之外的资源。
2.3恶意网址拦截
常见的恶意网址分为两类:
一类是挂马网址,通常包含有恶意的脚本如JavaScript后Flash,通过利用浏览器的漏洞(包括一些插件,控件漏洞)执行shellcode,在用户电脑中植入木马;
另一类是钓鱼网站,通过模仿知名网站的相似页面来欺骗用户。
PhishTank是互联网上免费提供恶意网址黑名单的组织之一,它的黑名单由世界各地的志愿者提供,且更新频繁。
EVSSL证书(Extended Validation SSL certificate)是全球数字证书颁发机构与浏览器厂商一起打造的增强型证书,其主要特色是浏览器会给予EVSSL证书特殊待遇。
浏览器的安全以同源策略为基础,加深理解同源策略,才能把握住浏览器安全的本质。