读软件开发安全之道:概念、设计与实施01基础

2024-08-16  本文已影响0人  躺柒
读软件开发安全之道:概率、设计与实施01基础.png

1. 基础

1.1. 实现软件安全既需要运用逻辑,又是一项艺术

1.2. 需要准确地思考一下何谓安全

2. 理解安全

2.1. 世上所有生命体都会本能地远离风险

2.2. 软件安全的核心目标是保护数字资产,让它们不会受到各种威胁的侵害

2.3. “信息安全”这个专有名词专门指代数据的保护和访问权限的授予

2.4. 软件安全则是一个比较宽泛的概念,软件安全专注于可靠软件系统的设计、实施和操作,包括使其通过可靠的方式来实现信息安全

3. 信任

3.1. 信任在数字世界也同样重要,但是在数字世界中,人们常常认为信任是理所当然的

3.2. 软件安全从根本上都要依赖于信任

3.3. 企业都会根据功能或者价格来选择自己的软硬件产品

3.4. 安全性要求我们认真地分析信任关系

3.5. 违背信任有下面两种完全不同的形式

3.6. 在信息缺失的情况下做出重要决策,是人们最需要信任关系的场景

4. 信任感

4.1. 理解信任感的最好方法就是在我们依靠信任来做出判断的时候,仔细品味那种感受

4.2. 提升自己对数字信任方面的决策的认识,这样才能帮助别人看清这些决策给安全带来的影响

5. 比特不是肉眼可见的

5.1. 当我们自以为“眼睁睁地看着这些数据”的时候,我们其实看到的只是一种与数据本身距离十万八千里的数据展示方式

5.2. 数字科技让信任这件事变得相当棘手,因为它如此抽象、迅捷,看不见、摸不着

5.3. 数字信息的基本事实是极难直接进行分辨的

5.4. 关键在于,我们必须弄清楚这种信任的深度和广度,而不是认为所有的信任都是理所当然的

6. 能力与不足

6.1. 大多数攻击始于软件的缺陷或者误配

6.2. 软件使用许可都会包含免责声明,所以一切软件都是在用户知悉和认可风险的前提下使用的

6.3. “所有软件都有bug”,那么其中总有一些bug可以被利用,攻击者也总能找到一些bug并且加以利用

6.4. 软件专家一般很少因为错信了恶意软件,而成为攻击者的目标

6.5. 我们并不难判断哪些操作系统、编程语言比较可靠

6.6. 开源提供了这种透明性,但是开源软件的安全水平取决于项目甲方对开发者的监管是否严格到足以防止开发者在软件中有意无意地插入恶意代码

6.7. 没有一家软件公司会承诺在发生攻击事件时提供更高级别的安全性或者向用户提供赔偿,以此彰显自己在业内的特殊地位

6.8. 信任决策的重要性固然不可小觑,但是也没人能够永远做出正确的决策

7. 信任是一个频谱

7.1. 信任永远是分不同程度的,在对信任的评估过程中也总是包含一定的不确定性

7.2. 鉴于信任是一个频谱,“信任但仍要验证”的策略就是一个强大的工具,可以让我们在绝对信任与绝对不信任之间建立起一座桥梁

7.3. 审计包括自动审计(准确地校验大量重复的活动日志)与手动审计(选择性校验,以处理那些比较罕见的情况,它把人工核查作为最终决策的依据)

8. 信任决策

8.1. 在软件领域,人们有两种选择:信任或不信任

8.2. 做出信任决策的过程就像给一棵“信任树”剪枝,这棵树如果不加修剪就会长出无穷的枝杈

8.3. 如果我们只是希望降低整个系统的脆弱性,防止因软件问题导致错误传播,则可以在条件允许的情况下,尽可能增加一些安全校验

8.4. 隐式信任组件

8.5. 值得信赖

上一篇 下一篇

猜你喜欢

热点阅读