MainlandStudent
MainlandStudent

A student from mainland china

编译:建立安全系统的原则(1)

这篇文章将介绍安全系统设计的一些基本原则。

*表示您可能需要一些计算机科学方面的预备知识。

安全即经济(Security is economics)

没有任何系统是完全安全的,可以100%抵御所有攻击。相反,系统可能只需要抵抗一定程度的攻击即可。购买价值10,000美元的防火墙来保护价值1,000美元的商业秘密毫无意义。

此外,量化攻击者【破坏系统所需的工作量】通常也很有帮助。 Adi Shamir曾经写道:“没有安全的系统,只有不安全的程度。比如说,消费级保险柜可以抵抗任何【没有使用工具的人】长达5分钟的攻击。而高端保险箱可以抵抗任何【使用破坏保险箱工具的人】长达30分钟的攻击。 (有了这样的保险箱,我们对保安的要求就可以大大降低:他只需要能在30分钟内察觉有贼闯入就可以。)

该原则告诉我们,应该将精力集中在保护最薄弱的环节上。安全就像一条链:系统的安全性仅取决于最薄弱的环节(木桶原理)。攻击者会对系统的最弱点下手。在屏风门上装一个昂贵的高端固定螺栓是没有道理的。攻击者只要能够破坏门本身,就不会费心去尝试撬开锁。

最低权限原则(Least privilege)*

为一个程序提供能使其工作所需的所有权限,但最好到此为止。 尝试最小化您赋予每个程序和系统组件的权限。最低权限原则不会减少故障的可能性,但可以减少预期的故障成本。 程序拥有的特权越少,它能造成的破坏就越少。

例如,最低权限原则可以帮助减少缓冲区溢出所造成的损害。如果程序由于缓冲区溢出攻击而受到威胁,则它可能会完全被入侵者接管,入侵者将获得程序所拥有的所有特权。因此,程序拥有的特权越少,则被攻击后造成的危害就越小。

责任分离(Separation of responsibility)

拆分某一权限,以至于没有人具有完整的权限。 也就是说,某一件事可能需要多方批准。

示例1:必须至少有两名发射人员同意才能发射导弹。

示例2:在某些电影院中,您向收银员付款并获得电影票; 然后,当您进入放映厅前,另一位员工检票(收取票根)。 为什么要这样做? 一个答案是,这有助于防止电影院内部人员的欺诈行为。收银员是低薪职员,他们可能很想让朋友低价看电影,或者给陌生人高价售票赚取差额。责任分离的做法有助于两人的诚实,因为在一天结束时,经理可以将所收集的票根数量与所收集的现金数量进行核对。

示例3:在许多公司中,超过一定金额的采购必须同时由提出要求的员工和单独的采购部门批准。 这种控制措施有助于防止欺诈行为,因为两者勾结可能性较小。

(未完待续)

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论