网络安全白帽子》第 1 章
前言
最近对于跨域以及网络安全的问题比较感兴趣,在网上查看了相关资料,理解了一点点,有点隔靴搔痒的感觉,不是特别懂,于是乎找到了这本书,系统的看一下,给自己答疑解惑。既然花时间看书了,那留下点什么证明我曾经来过吧(其实是7s钟的记忆,留下文档以便于后期查看)~
ps:红色/加粗是我认为的重点;绿色是我不清楚的地方,记录下便于后续深入了解。
(1)安全问题的本质是信任的问题
- 解释:
一切的安全方案设计的基础,都是建立在信任的关系上的。我们必须相信一些东西,必须有一些基本的假设,安全方案才能建立;若否定一切,安全方案则如无源之水,无法设计。
从另一个角度来讲,若我们作为决策一句的条件被打破/绕过,那么就会导致安全假设的前提条件不再可靠,变成一个伪命题。
- 例子1:
在Flash跨域访问请求中,目标资源服务器端会通过验证 crossdomain.xml 文件决定是否允许客户端发起的请求,crossdomain.xml文件如下图所示:
只允许特定域名的Flash对本域发起请求,但是,如果crossdomain.xml文件只的域名变得不可信,那么就会出现问题,例如:(2)安全三要素
<1> 机密性
保护数据内容不能泄露,加密是其常见手段。
例如:把文件放在透明盒子中(虽然无法直接获得,但能看到里面的内容);给文件加个封面(隐藏内容)。
<2> 完整性
要求被保护的数据内容是完整的/没有篡改的,数字签名是其常见手段(???什么是数字签名)。
例如:康熙皇帝的遗照写的是“传位十四子”,被四阿哥篡改为“传位于四子”。
<3> 可用性
要求被保护的资源是“随需而得”。
例如:某停车场可停100个车位,但有人搬了100块石头,占用了每一个车位,导致停车场无法提供正常服务。该攻击为:拒绝服务攻击(DoS:Denial of Service)
(3)安全方案(原名:白帽子兵法)
<1> Secure by Default 原则
* 白名单/黑名单
case 1:
【例子1】:客户端跨域请求服务器端的Flash资源时,服务器端使用crossdomain.xml文件验证是否通过该请求。它就是白名单的典型案例。
case 2:
若某网站只提供Web服务,如何对于该网站制定防火墙的网络访问控制策略?
- 白名单的方式:只允许网站服务器的80,443端口对外提供服务,屏蔽除此之外的其他端口。
- 黑名单的方式:不允许SSH端口对Internet开放,因此要审计SSH的默认端口(22端口)。但是存在问题:因为在工作中会有工程师私自改变SSH监听端口(例如,把SSH端口从22改为2222),进而绕过安全策略。
* 最小权限原则
最小权限原则要求系统只收于主体必要的权限,不要过度授权。
例子: Linux系统中,使用普通账户登录,在执行需要root权限的操作时,再通过sudo命令完成。
上一篇: 如何提高 docker 的安全性?