2021年3月1日

在系统开发的每个阶段都应当考虑安全性。

编程语言:编译后不易被第三方操纵,但最终用户也无法查看原始指令。
1.编译型语言:C,Java,FORTRAN
2.解释型语言:Python,R,JavaScript,VBScript

面向对象(OOP)
保证:是据此在系统生命周期内构建信任的正规过程,CC提供了一种标准化的方法
避免和缓解系统故障:
1.输入验证
2.身份验证与绘画管理
3.故障防护和应急开放:故障防护(Fail-secure,故障时,高权才能访问)、应急开放(Fail-open,故障时,绕过安全控制)

系统开发生命周期
1.概念定义:有所有利益相关方(开发人员、客户、管理人员)协商的简单声明,规定了项目用途及系统大体需求。
2.功能需求确定:三个特征:输入、行为、输出。输出:功能需求文档。
3.控制规范的开发:具有安全意识的组织在开发伊始就设计,从多个安全角度分析:a.恰当访问控制,只有授权用户才能访问系统,并不允许超出授权级别;b.使用正确的加密和数据保护技术来保护关键数据的保密性;c.提供审计踪迹来强制实施个人的问责性,提供对非法活动的检测机制;d.根据系统的重要程度,必须解决可用性和容错问题。
4.设计评审
5.代码审计走查
6.用户验收测试
7.维护和变更管理

生命周期模型
1.瀑布模型:1970年Winstom Royce开发,反馈环特征,只允许开发人员后退一个阶段。
2.螺旋模型:1988年 Barry Boehm提出,元模型,“模型的模型”
3.敏捷软件开发:强调客户需求,快速开发新功能,迭代交付。“敏捷宣言”12原则:

  • 最重要的目标是持续不断及早交付有价值的软件,使用户满意。
  • 欢迎需求变化
  • 经常性交付可工作的软件
  • 业务人员和开发人员每天合作
  • 激发个体斗志,以他们为核心搭建项目
  • 团队内外,沟通信息最高效的方式是面对面交谈
  • 可工作的软件是进度的首要度量标准
  • 敏捷过程倡导可持续开发
  • 坚持不懈追求技术卓越和良好设计
  • 以简洁为本,减少不必要的工作量
  • 最好的架构、需求和设计出自自组织团队
  • 团队定期反思如何提高成效,并依次调整自身的举止表现
    4.软件能力成熟度模型:分为五个阶段:
  • 第一阶段,初始级:几乎没有定义软件开发过程。
  • 第二阶段,可重复级:基本生命周期管理过程,类似项目可预期具有可重复的结果。
  • 第三阶段,定义级:软开人员依据一些列正式的、稳定化的软件开发过程进行操作。标准化管理所有项目。
  • 第四阶段,管理级:定量衡量获得开发过程的详细信息。SEI关注的处理范围定义为:定量处理管理和古人讲质量管理。
  • 第五阶段,优化级:持续改进过程,成熟过程确定。SEI关注的处理范围定义为:缺陷预防,技术更改管理,过程更改管理。
    5.IDEAL模型,实现多个SW-CMM属性,五个阶段:启动、诊断、建立、行动、学习。

甘特图:显示不同时间项目和调度之间相互关系的条形图。
计划评审技术,PERT(Program Evaluation Review Technique),项目调度工具:用于开发中判断软件产品大小并为风险评估计算标准偏差。

变更管理:作为安全工具。三个基本组件:请求变更、变更控制、发布控制。

配置管理:用于控制整个组织范围内使用的软件版本,并正式跟踪和控制对软件配置的更改。4个主要组件:配置标识、配置控制、配置状态统计、配置审计。

DevOps方法:将软件开发,质量保证,技术操作集中在一个模型中,大幅度缩短开发、测试、部署时间。

应用编程接口(API):
1.必须考虑身份验证要求。
2.必须彻底测试安全缺陷。

软件测试:白盒、黑盒、灰盒;静态、动态。

代码仓库:
1.功能:存放源代码;版本控制、错误跟踪、web托管、发布管理和可支持软件开发的通信功能。
2.安全:必须适当控制开发人员对仓库的访问,仔细设计访问控制,仅允许适当的用户读取或写入。

服务水平协议:除服务指标外,还包括财务和补救措施。

软件采购:安全:
1.正确配置软件满足安全目标
2.关注安全公告和补丁,及时修复新发现的漏洞。
3.SaaS中,安全人员也要负责监控供应商的安全,验证供应商的安全措施。

数据库管理系统
1.层次式数据库以分层方式存储数据;分布式数据库的数据映射关系是多对多。
2.关系数据库:行列组成的二维表。行数为基数,列数为度。
候选键:可用于唯一标识表中记录的属性子集。
主键:从表候选键中选出来用来唯一标识表中记录的键。
外键:用于强制在两个表之间建立关系。
3.数据库事务:4个特征:原子性、一致性、隔离性、持久性
4.数据库并发性:两个进程同时更新数据,可能会丢失数据;从没有成功提价ode事务中读取记录,会出现脏读。
5.ODBC:应用程序和后端数据库驱动程序之间的代理。
6.NoSQL:键值存储,图数据库;文档数据库

存储器类型:
1.主存储器:内存。CPU可直接读取。
2.辅助存储器:硬盘,CD、DVD,可长期存储。
3.虚拟内存:辅助存储器模拟主存储器。
4.虚拟存储器:主存储器模拟辅助存储器,加快文件系统的读取。
5.随机访问存储器:RAM,硬盘
6.顺序访问存储器:磁带。

存储器威胁:
1.非法访问:使用加密是最好的方法。
2.隐蔽通道

基于知识的系统
1.专家系统:2个组件:知识库(包含专家系统已知的规则),推理引擎(对知识库中的信息进行分析,得到正确的决策);决策不受情绪影响,适合股票等系统
2.机器学习:从数据集中分析出新知识。监督学习(使用标记数据进行训练),非监督学习(使用未标记数据进行训练)
3.神经网络:计算单元键尝试模仿人脑的生物学推理过程,是机器学习的延伸,又叫深度学习或认知系统
4.安全性应用:基于知识分析技术的优点:快速做出一致决策的能力

课后习题20题,错了4个。

©著作权归作者所有:来自51CTO博客作者IT故事会的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. JAVA开发ORACLE的规范
  2. 基于oauth 2.0 开发第三方开放平台
  3. Spring boot stater开发小助手,mica-auto 1.1.0 发布
  4. 前端开发使用工具 gulp
  5. 推荐!10款最好用的Python IDE
  6. 嵌入式开发,各类存储方式知多少?
  7. 游戏思维开发社区问答系统的感受
  8. 微信小程序从开发到发布流程
  9. 1209列表元素

随机推荐

  1. Android系统介绍及平台特性
  2. Android加密之文件级加密
  3. Android系统构架分析和应用程序目录结构
  4. 各种类型Android Market了解
  5. android遮罩层
  6. Android for opencv(1)android使用opencv基
  7. 【Android 进阶】Android Home 键监听
  8. Android获取在桌面上有图标的app列表的方
  9. Android Camera 模块分析
  10. android CallCard.java/updateState(Phon