boxmoe_header_banner_img

⋅無⋅限⋅進⋅步⋅

加载中

文章导读

软件安全开发知识点


avatar
yuhui 2025年10月17日 32

软件安全开发知识点

《软件安全开发》关键考试知识点串讲

第一节 软件安全开发基础

1.软件工程三要素:理论方法、过程管理、语言工具。

2.软件开发模型:瀑布模型、迭代模型、增量模型、螺旋模型、原型模型、净室模型。

3.软件安全问题:三次危机、生命周期局限性、教育局限性、人的局限性。

4.软件缺陷密度:千行代码缺陷率(KLOC),即千分比的数值。例如,一千行代码有1个缺陷,缺陷率就为1。一千行代码有10个缺陷,缺陷率就为10。

5.软件安全原因:内因、外因。以内因处理为主。

6.软件安全目标:

(1)可信赖性:无论是恶意而为还是无意疏忽,软件都没有可利用的漏洞存在。

(2)可预见性:对软件执行时其功能符合开发者的意图的信心。

(3)可遵循性:软件开发跨学科的活动计划并系统化,以确保软件过程和软件产。

6.软件安全思想

(1)需要贯彻风险管理的思想。

(2)软件安全开发覆盖软件整个生命周期。

(3)软件安全保障—思想之提前介入思想等。

第二节 软件安全开发模型

1741666987731-16246d34-dc80-41a9-8712-8fa3df69c037.png

1、SDL:七个阶段、17项活动(了解)。

2、CMMI:能力集成成熟度模型1-5级。

3、SAMM:治理、构造、验证、部署。

4、BSI: 风险管理、接触点、安全知识。

5、BSIMM:有能力成熟度级别1-5,12维度安全度量。

6、CLASP:轻量级的应用安全开发指南,基于30种安全开发活动而实现的。

第三节 软件安全开发过程

1、软件安全需求

– 全面:政策、法律、标准、业务、应用场景、安全威胁等。

– 问题:合规、人性化、全面、刚性、去伪需求、注意悖论需求问题等。

2、软件安全设计

(1)设计原则:1-不信任、2-纵深防御、3-最小特权、4-权限分离、5-完全中立、6-经济性、7-公开设计、8-攻击面最小化、9-心理可接受、10-隐私保护、11-保护薄弱环节、12-默认故障处理、13-最小共享、14-信息保密原则等。

(2)降低攻击面:

A.攻击面:针对一个对象受到攻击方法、路径、接口等的集合。

B.降低受攻击面的方法:

– 分析产品的功能及特征。

– 分析从哪些路径可以访问该产品。

– 降低访问的特权和增强防护措施。

(3)威胁建模

— 流程:1-确定对象、2-识别威胁、3-评估威胁、4-消减威胁。

— 方法:基于STRIDE的威胁建模方法。

— S-欺骗;T-篡改;R-抵赖;I-信息泄露;D-拒绝服务;E-权限提升

3、软件安全编码

(1)语法规范

(2)逻辑开放性

(3)不存在冗余代码

(4)代码要精简清晰

(5)不存在复杂代码

(6)完全符合设计及详细设计

(7)源代码编写要进行体系化的规划和分解

(8)代码文件进行安全标识

(9)进行安全输入的验证(内部之间、外部输入)

(10)进行安全的输出和验证,返回最小化

(11)调用的协议、组件、命令、参数具有安全性并进行校验

(12)软件安全级别越高,则安全机制更多的向内实现

(13)高内聚和低耦合防止死锁

(14)统一的返回值设计

(15)写软件的代码注释

(16)源代码的安全审计(前提是对安全需求和安全设计的审计)

4、软件安全测试

(1)基础测试:单元、集成、系统、黑盒、灰盒、白盒、静态、动态、正常、异常等。

(2)模糊测试:提供非预期的输入监视异常的结果。

(3)渗透测试:异常、黑盒、动态测试的结合,发现严重问题,但属于非完全标准化测试。

(4)组合:根据软件开发实际需求和情况,软件的测试的措施是可以灵活组合。

5、软件验收交付

(1)供应链安全:知识产权、开发工具、编译器、开发人员、开源代码使用等安全。

(2)交付的安全:签名控制、Lisence控制、管理手册、使用手册、安全手册等。

(3)运行维护:参考安全管理体系、实施安全措施、安全测量、应急响应等内容。



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字

插入代码