Web安全(吴翰清)

安全工程师的核心竞争力不在于他能拥有多少个 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资产等级划分

互联网安全的核心问题,是数据安全的问题。

了解公司最重要的资产是什么,他们最看重的数据是什么。有最关心的是客户数据,有公司最关心的员工资料信息。
划分信任域和信任边界。

Web安全(吴翰清)_第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证书特殊待遇。

浏览器的安全以同源策略为基础,加深理解同源策略,才能把握住浏览器安全的本质。

你可能感兴趣的:(安全)