软件开发

安全性是从事安全解决方案开发的安全专家需考虑的重点。

语言发展的历程:机器语言-汇编语言-高级语言-自然语言(4GL)

面向对象编程

高内聚

低耦合

避免和缓解故障

输入验证

应急开放:少见,一般用于多级安全系统中较低级别的组件,一个组件开放了,还有其他安全措施进行保护。

应急防护:比较安全

安全性-功能性-用户友好型 三者应相互权衡

系统开发生命周期:使用规范化的开发流程,可以在每个阶段嵌入安全性

系统开发生命周期(设计的活动)

概念定义:定义了项目用途和系统的大体需求。开发过程中重复阅读,可以明确自己的目标。需领导批准

功能需求确认:需领导批准。

控制规范的开发:每次对设计规范进行重大改动时,都应涉及安全需求。(安全需求可从预防:访问控制、授权;检测:审计、问责制;纠正:可用性和容错;此外还有加密存储等)

设计审查:涉及模块设计和模块间的交互。

代码审查走查:多次的开发人员代码审查

用户验收测试:用户验收测试之后,代码可进行部署

维护和变更管理

生命周期模型

SDLC:初始步骤之一是获得管理层的批准

成熟度:

常见生命周期模型

瀑布模型:可返回至上一步

螺旋模型:模型的模型、元模型

敏捷软件开发

软件能力成熟度模型:(SW-CMM)。软件的质量依赖于开发过程的质量

IDEAL模型

软件能力成熟度模型

初始级

可重复

已定义

受管理

持续改进

IDEAL模型

启动:概述更改业务的原因

诊断:专家给出建议

建立:建立行动计划

行动:实施解决方案

学习:改进

甘特图:显示不同项目时间、调度关系的条形图。

PERT:一种项目调度方法;用于在开发中评价软件产品的大小和计算风险评估标准差。

软件开发过程中的变更管理流程分为三个组件。

请求变更:提出需求,管理层评估成本效益。

控制变更:

发布变更:通过发布控制过程进行发布认可。

DevOps(这个过程设计到开发、测试和部署)

软件开发

质量保证

IT操作

API:有的API也需要认证调用,认证授权需要API密钥支持,不需要认证授权的不需要API支持。API密钥一定要在加密的通信信道上传输。

软件测试

软件测试的最佳时期是设计模块之时。

不应使用真实数据用于开发测试

保证测试和开发的职责分离

三种软件测试方法

白盒测试:检查程序的内部逻辑结构,并逐行执行代码。

黑盒测试:从用户的角度出发,常见的用户验收测试就是此例子。

灰盒测试:从用户的角度出发,也分析源码,为了设计测试案例,不分析程序内部的工作原理。

专门评估应用程序安全性的测试类别

静态测试:分析源码,可以使用自动化监测工具,如代码审计软件。可以发现缓冲区溢出漏洞,不需要运行应用程序。

动态测试:分析类似EXE的文件,可以web扫描工具,注意避免意外服务中断。

软件采购

IAAS

SAAS:虽然安全责任大部分有供应商负责,但组织的安全人员也不能逃脱责任。组织还应当监控供应商,审计,漏洞扫描,确保验证供应商是否保持适当控制

数据库管理系统体系结构

层次式数据库:一对多,类似于组织的体系架构

分布式数据库:多对多,逻辑上连接,实际上分布

数据库概念

度:列

基数(元祖):行

候选键:多个候选主键

主键:唯一标识行

外键(对应参照完整性):在另一个表是主键,用于关联两张表,外键不能引用不存在的主键。

所有的关机数据库,都使用SQL语言,SQL控制粒度高,可针对表、行、列、甚至是单独的单元来限制用户访问。

使数据库遵从范式的过程称为规范化。规范化可以减少冗余。(考试中不考范式)

事务的4种特征:ACID

多级数据库的安全性

当知其所需和分类级别需求不同的数据混在一起,被称为数据库污染。

数据库视图限制访问:视图存储为SQL语句的形式,不是表的形式。

视图为一种安全机制:可限制用户访问视图,而不是直接访问原始表。

数据库的并发性:采用了锁的概念。

数据库的安全机制

语义完整性

内容相关的访问控制

上下文相关的访问控制

单元抑制:对数据库字段或单元隐藏或强加更安全的约束。

数据库分区:防止聚合、污染、推理

多实例:是针对推理攻击的防范措施。具体做法在同一张数据库表中是含有同一主键的两行或者多行,且具有不同的分类等级。

噪声和扰动:在数据库中插入错误的或者欺骗的数据。

数据库的安全性只涉及基本的前门渠道访问信息。

ODBC:连接了多种数据库类型和应用程序。

存储器的类型

主存储器

辅存储器

虚拟存储

顺序访问存储

随机访问存储:RAM

易失性存储

非易失性存储

针对数据存储的两种威胁

对存储器资源的非法访问:物理访问,采用加密文件系统

隐蔽通道:此处涉及存储型隐蔽通道

理解基于知识的系统

专家系统:知识库和推理引擎,优点:不受情绪影响

神经网络:包含计算单元链,用于模拟人脑的生物推理过程,使用DELta规则,神经网络就能从经验中学习知识。涉及分层计算,需要涉及大量的训练。

神经网络的特征:线性、输入和输出映射、自适应性。

决策支持系统(DSS):

你可能感兴趣的:(软件开发)