CBK8软件开发安全

打印 上一主题 下一主题

主题 883|帖子 883|积分 2653


系统开发生命周期的各个阶段:
系统调查、可行性研究、系统分析、系统设计、系统实行、系统评价和维护。
1.构建良好的代码



  • ​ 控制输入/加密/逻辑处理/数字处理方法/进程间通信/访问/输出/以及与其他软件的接口
    ​ 控制可能是预防性/探测性/纠正性的,表现情势可能是行政管理方法/物理方面的控制,更多的技术性的安全控制。
  • ​ 差别的环境需要差别的安全
    ​ 环境与应用程序
    ​ 功能与安全
    ​ 实现和默认配置题目
2 软件开发生命周期

需求网络阶段:


  • 安全需求:从机密性/完整性/可用性几个方面进行定义
  • 安全风险评估:标识潜在风险和它们的相干效果
  • 隐私风险评估:指明可访问数据大概将要处理的数据的敏感级别。
  • 风险级别验收:根据所评估的威胁和脆弱性来估计差别安全对策的成本/收益率
设计阶段:


  • 攻击面分析:辨认和淘汰可以被不可信用户访问的代码和功能的数量。
  • 威胁建模:了解差别威胁怎样实现,粉碎怎样成功进行的系统方法。
开发阶段


  • CASE盘算机辅助软件工具
  • 安全编码
  • 静态分析:一种调试技术,在不实行程序的环境下检查代码,因此在程序被压缩之前进行。
  • 代码考核:人工所做的检查
测试/验证阶段


  • 单位测试:个体组件位于一个受控的环境中,编程职员在这里确认数据结构/逻辑和边界测试方法
  • 集成测试:验证组件是否按设计规范中概述的那样协同工作
  • 验收测试:确保代码满意客户的需求
  • 回归测试:进行系统变更后重新测试,以确保功能性/性能和保护级别
  • 安全测试:手动测试和主动化测试
  • 动态分析:对程序进行及时评估
发布/维护阶段


  • 最终安全考核

3 软件开发方法论



  • ​ 边做边改模子:题目出现后处理时的一样平常做法,无法正确评估过程、质量和风险。
  • ​ 瀑布模子:采用的是线性生命周期方法,所有需求都要在初始阶段网络。(简朴小项目)
  • ​ V形模子:每个阶段进行验证和确认。
  • ​ 原型模子:快速原型的开发是为了快速理解建议性的办理方案,演化型是在实验室环境中创建和改进的,运行型是在生产环境中开发和改进的。原型法能节省大量的时间和成本。
  • ​ 增量模子:每个阶段都能提供一个可用的软件版本。
  • ​ 螺旋模子:迭代方法,每次迭代都要进行风险分析。包含了大量的软件开发模子的元模子。
  • ​ 敏捷模子
敏感宣言:


  • 代价观:

    • 个体和互动 高于流程和工具
    • 工作的软件 高于细致的文档
    • 客户互助 高于条约会商
    • 响应变化 高于遵照筹划

  • 遵照原则:我们最重要的目标,是通过持续不断地赶早交付有代价的软件使客户满意。
  • 三个脚色:

    • 产品负责人 Product Owner
    • 敏捷锻练 Scrum Master
    • 技术团队 Team

  • 联合分析开发(JAD):一个面向工作间的环境中采用工作组的方式开发应用程序。
  • 快速应用开发(PAD):一种判断用户需求并快速开发系统以满意即时需要的方法。
  • 重用模子(reuse model):通过使用日益增多的模子来进行软件开发。
  • 净室(clean room):通过遵照结构化且规范的开发和测试方法来力图阻止错误和题目的办理途径。
  • ​ DevOps:一种将开发、IT、质量保证(QA)工作职员构成同一个软件开发项目团队的实践。
4 能力成熟度集成模子CMMI

CMMI(Capability Maturity Model Integration)分为五个品级,从低到高分别为:
初始级:在这一级,组织的软件过程好坏结构化的,没有明确的规范和尺度。项目标成功往往依赖于个别职员的履历和技能,而缺乏统一的方法和流程。这种环境下,组织的软件过程容易出现杂乱和不可猜测的题目,导致项目标延期和质量题目。
可重复级:在这一级,组织开始建立一些基本的软件流程和尺度,并对这些流程和尺度进行管理和监控。组织可以或许提供肯定的项目管理和配置管理,但仍然存在一些不稳固性和不同等性。
定义级:在这一级,组织已经将软件管理和工程两方面的过程文档化、尺度化,并综合成该组织的尺度软件过程。所有项目都使用经答应、剪裁的尺度软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
管理级:在这一级,组织分析对软件过程和产品质量的具体度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,可以或许在定量的范围内猜测性能。
优化:在这一级,过程的量化反馈和先辈的新思想、新技术促使过程持续不断改进。

5  变更管理

​ 变更控制是控制变化的过程,发生在系统的生命周期过程中,并能记录必要的变更控制活动。
​ 变更必须获得答应、记录和测试
​ 软件配置管理(SCM):并行管理、版本控制和同步处理。 —-软件托管题目
​ 代码库的安全性
6 开发环境安全性



  • 开发平台IDE
  • 代码库
  • 软件配置管理
7 安全编码



  • OWASP TOP 10
  • SEI
  • MITRE组织,常见的漏洞枚举(CWE)
  • ISO/IEC27034
8 编程语言和概念



  • ​ 第一代机器语言:用二进制情势(1和0)来表现
  • ​ 第二代汇编语言:机器级别指令的符号表现
  • ​ 第三代高级语言
  • ​ 第四代非常高级语言:关注高度抽象算术,改进天然语言方法。
  • ​ 第五代天然语言
​ 汇编语言:将汇编语言源代码翻译成机器代码。编译器:将高级语言语句转换成所需的机器可理解的情势(如exe/dll)可以独立运行。解释器,把高级代码转换成机器代码(需要安装解释器才华在本地运行)。


  • ​ 面向对象OOP:类和对象,对象是一个类的实例,好比家具和桌子。

    • 数据潜伏由封装提供,保护外界不能访问对象的私有数据。
    • 多态,高内聚和低耦合。
    • 优点:模块化、耽误承诺(重新定义一个对象的内部组件)、可重用性(继承完善类)、天然性。

9 分布式盘算



  • ​分布式盘算环境 distributed computing Environment DCE 提供RPC服务,使用通用唯一标识符 UUID,UNIX系统工作
  • ​ CORBA与ORB,非微软的应用程序进行互操纵和分布式盘算。
  • ​ COM与DCOM,用全球唯一标识符GUID,由微软公司开发,windows系统工作。
  • ​ J2EE
  • ​ 面向服务的架构(SOA)
10. 移动代码



  • ​ Java applet:java为代码运行建立一个沙箱,限定代码访问用户盘算机系统上的资源。
  • ​ ActiveX控件:依赖于数字签名和信托认证授权的身份验证码技术。
11 Web安全



  • ​ 管理接口:最安全的系统管理接口应该是一种带外接口。
  • ​ 身份验证与访问控制:多因子认证,TLS 通道加密传输口令
  • ​ 输入验证
  • ​ 参数确认
  • ​ 会话管理
12  数据库管理

DBMS数据库管理系统
数据库模子:


  • 关系数据库模子:使用属性(列、字段)和元组(行、记录)来包含和组织信息,以表的情势表现信息。主键
  • 层次数据库模子:组合逻辑树架构中相干联的记录和字段。通常用于映射一对多关系。最常用的是轻量级目录访问协议(LDAP)模子。
  • 网络数据库模子:一种类似于网状网络拓扑的结构,比层次模子检索数据更快。使用记录和集合的结构。
  • 面向对象的数据库模子:可设计为管理多种差别类型的数据(图形、语音、文档和视频),使用类来定义其对象的属性和过程。
  • 对象-关系数据库(ORD):具有以面向对象编程语言编写的软件前端的关系数据库。 结构化查询语音(SQL):客户端和数据库交互一样平常使用SQL。
数据库编程接口:


  • 开放数据库毗连(ODBC):一个应用编程接口(API)
  • 对象链接和嵌入数据库(OLE DB):作为中央件运行在客户端 或服务器上,将数据分为多个构成部门,提供底层接口。限于基于微软的客户端工具所使用。
  • ActiveX数据对象(ADO):一个允许应用程序访问后端数据库系统的API,一组ODBC接口的集合。
  • java数据库互连(JDBC):一个允许java应用程序与数据库通信的API。
关系型数据库组件:


  • 数据定义语言(DDL):定义模式的数据定义语言,好比数据库描述被称为schema,采取DDL进行定义,如Create,Alter和Drop.在数据库中建立和修改表结构和其他对象的结构。
  • 数据操纵语言(DML):检查数据和定义怎样操纵数据库内数据的数据操纵语言,包含使用户能查看、操纵和使用数据库的所有下令(view、add、modify、sort和delete下令)。
  • 定义数据库内部组织的数据控制语言(DCL),数据权限控制,由 GRANT 和 REVOKE 两个指令构成。
  • 查询语言(QL):使用户可对数据库提出查询请求。 主键与外键:主键是一条记录的唯一标识符。包含的信息与另一个表的主键保存的信息雷同,视为外键。
完整性:


  • 语义完整性:保证结构化规则和语义规则
  • 参考完整性:所有外键参考现有主键,确保没有外键引用不存在的环境
  • 实体完整性:保证元组由主键值唯一确定。
  • 回滚、提交
  • 保存点:在系统出现故障时提供数据恢复的功能。
  • 检查点:将内存中的数据保存到一个临时文件中,一旦运行过程出现题目,可尝试还原。
数据库安全:


  • 数据库安全题目:聚合和推理,可通过实现内容相干和上下文相干访问控制来办理这个题目。
  • 防止推理攻击的常见措施:单位抑制/数据库分隔/噪声与扰动
  • 数据库视图
  • 多实例,创建雷同客体的多个版本,使低级别主体无法得知真实的信息,常用于防止推理攻击。
  • 联机事务处理(OLTP):用于集群数据库以提供容错和高性能。
​ 13  恶意软件(恶意代码)



  • ​ 病毒:借助宿主进行复制,具备自我复制的功能
  • ​ 蠕虫 :不需要宿主就进行自我复制,是一种独立的病毒程序。
  • ​ rookit
  • ​ 间谍软件和广告软件
  • ​ 僵尸网络
  • ​ 逻辑炸弹
  • ​ 特洛伊木马:一个看似合法的程序,但程序的背后却是用户看不到的恶意活动。
  • ​ 防病毒软件:特性型(指纹)检测、启发式检测、行为阻止
  • ​ 垃圾邮件检测:贝叶斯过滤
  • ​ 防恶意软件程序
14 评估外部获取软件的安全性



  • ​ 对供应商的评估,好比资质
  • ​ 代码检察/漏洞评估和渗出测试
知识点:



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表