All In One - 第8章 软件开发安全

常见的软件开发问题

软件开发生命周期

安全软件的开发方法

DevOps & DevOpsSec

变更控制和配置管理

代码库的安全性

编程语言类型

数据库概念和安全问题

恶意软件类型和攻击

 

1.常见的软件开发问题

  • 需求阶段没有过多的考虑安全性
  • 由于时间限制导致对安全性的投入不足
  • 软件开发相关人员经验不足
  • 依赖于周边安全
  • 实现和默认配置问题

2.软件开发生命周期

SLDC是通过可重复和可预测的流程来帮助确保功能、成本、质量、交付周期的需求

具体流程:

  • 需求收集
  • 安全需求 可用性、机密性、完整性
  • 安全风险评估
  • 隐私风险评估 P1、P2、P3
  • 风险级别验收 减灾工作放在首位
  • 软件需求模型:

信息模型 规定要处理的信息类型和处理方式

功能模型 概述应用程序需要执行的任务和功能

行为模型 解释在具体事务处理发生过程中和发生之后应用程序的状态

  • 设计

让产品真正实现这些需求

  • 攻击面分析 目的是识别和减少可以被不可信用户访问的代码和功能的数量
  • 威胁建模 了解不同威胁如何实现、破坏如何成功进行的系统方法
  • 开发
  • 计算机辅助软件工程 CASE(Computer-Aided Software Engineering)
  • 输入验证
  • 详细审查
  • 缓冲区溢出
  • 静态分析 调试技术
  • 测试
  • 成熟的开发者会在编码之前,为模块开发单元测试,与编码同时进行,测试驱动开发
  • 单元测试 确认数据机构、逻辑和边界条件
  • 集成测试 验证组件石佛按设计规范中的概述协同工作
  • 验收测试 确保代码满足客户的需求
  • 回归测试 进行系统变更后重新测试,以确保功能性、性能和保护级别
  • 安全测试 手动和自动测试
  • 模糊测试 发送随机数据到目标程序从而出发故障的行为
  • 动态分析 
  • beta测试 通用客户测试
  • 验证 判断产品是否准确体现和满足产品规范 确认-判断产品是否为所针对的实际问题提供了必要的解决方案
  • 发布 将产品投入生产环境
  • 维护 最终安全审核

项目管理使计划顺利进展,并合理分配必须的资源,提供必需的领导,充分考虑可能遇到的各种情况

  • 安全计划
  • 文档-RFC文档、IEEE标准和最佳实践
  • 工作声明(Statement of Work,SOW)
  • 工作分解结构(Work Breaddown Structure,WBS)

 

2.安全软件开发最佳实践

  •  OWASP  https://owasp.org/www-project-top-ten/
  • DHS(BSI) 软件保障计划
     

3.软件开发模型

  • 边做边改模型

  • 瀑布模型

  • V形模型

  • 原型模型

  • 增量模型

  • 螺旋模型

  • 快速应用开发i

  • 敏捷模型<

你可能感兴趣的:(信息安全)