首页 > 其他分享 >应用软件安全开发的基本流程

应用软件安全开发的基本流程

时间:2022-11-09 17:45:33浏览次数:49  
标签:漏洞 流程 应用软件 安全 开发 代码 进行

 

应用软件存在大量的漏洞是当前信息安全领域面临的极大困境,云应用软件也同样如此。如何有效减少应用软件内的漏洞,提高应用软件安全是目前应用软件开发中亟待解决的问题,尤其在云计算中,应用软件安全尤为重要。在进行应用软件开发时,应充分参考安全软件开发生命周期相关模型,如下图1所示,强化应用软件在开发、部署和运行的各个阶段中的安全,建立规范化的安全开发流程。

 

图 1 应用软件安全开发流程

 

(1)需求阶段

首先应对应用软件在开发过程中面临的风险进行评估,分析可能面临的威胁、存在的脆弱性及其可能造成的影响,并对上述三者进行量化评估;然后识别应用软件开发过程中的关键对象,并对关键对象进行安全防护;最后结合云应用的业务场景分析应用软件的安全需求,包括应用软件数据的机密性、完整性与可用性,应用软件与开发环境交互所必需的输入、输出信息的安全属性,以及应用软件的弹性、可控性和业务连续性。

(2)设计阶段

首先需要对云应用进行受攻击面分析,枚举所有访问入库、接口、协议以及一切可执行代码的过程,减少攻击者利用潜在弱点或漏洞的机会,使攻击面最小化;然后基于对受攻击面的分析,对应用软件面临的威胁建立模型,通过模型化的方式来管理威胁、风险和对应的缓解措施;最后形成安全设计方案,安全设计方案包括客户端安全设计、服务器安全设计和服务器安全配置基线三部分,设计方案应满足安全需求、定义安全漏洞的严重性阈值、确定风险的最低可接受级别。

(3)开发阶段

云服务提供商首先需要提供主流编程语言的安全编码规范,包含代码书写规范、数据库标准接口、输入输出验证等,通过安全编码规范可以有效减少缓冲区溢出、跨站点脚本、SQL注入等代码漏洞;然后开发团队需要分析应用软件开发项目使用的所有函数和API,并禁用确定为不安全的函数和API,构建安全函数库;最后开发团队应进行代码分析,通过人工代码评析或静态代码分析工具对代码的质量进行检查,减少代码中的语法错误和安全漏洞等问题。除此之外,还需要对源代码进行版本管理,保证应用软件版本的正确性。

(4)测试阶段

在完成开发后,云服务提供商需要基于威胁建模进行测试设计,首先对应用软件进行Fuzzing测试,以应用软件的预期用途及功能为基础,故意向应用软件输入不良格式或随机数据来诱发程序故障,检测应用软件的安全性;然后进行渗透测试,由专业人员模拟黑客对应用软件进行攻击,通过渗透测试发现由于编码错误、系统配置错误或其他运行部署弱点导致的潜在漏洞。除此之外,还可通过安全众测平台,如阿里云的先知平台、Sobug的白帽众测平台等对应用软件开展安全测试。

(5)发布阶段

在应用软件发布阶段,云服务提供商首先需要在类似的生产环境下,对应用软件进行集成测试,确保能够安全运行;然后由安全专家进行最终安全评审,通过安全评审,则可发布;最后,云服务提供商需要制订应用软件安全响应和预警计划,包括指定运维团队、制订代码安全维护计划、制定安全预警方案等。

随着云计算技术和平台的出现和普及,应用软件开发者不必进行任何底层系统工作,软件开发的周期越来越短,为了确保短周期内应用软件的安全开发和运维,出现了DevOps概念。DevOps的核心思想是将开发和运维一体化,缩短应用软件开发的周期,提高应用软件交付的质量和频率。目前,DevOps 思想在应用软件的开发和部署中被广泛使用,已经成为软件行业的标准配置。

标签:漏洞,流程,应用软件,安全,开发,代码,进行
From: https://www.cnblogs.com/tiduyun/p/16874601.html

相关文章

  • 请收下这 10 个安全相关的开源项目 原创 削微寒 手动 11/04 08:48 阅读数 1.3K
    开源为我们的开发带来了极大便利,但这些便利也伴随着一些安全隐患。每当项目引入一个库、框架、服务时,随之而来的安全风险也不可忽视。所以,当开源吞噬世界的时候,代码安全就......
  • Java线程安全
    线程安全的本质其实第一张图的例子是有问题的,主内存中的变量是共享的,所有线程都可以访问读写,而线程工作内存又是线程私有的,线程间不可互相访问。那在多线程场景下,图上的线程......
  • 【转载】Byzer + OpenMLDB 实现端到端的,基于实时特征计算的机器学习流程
    背景本文示范如何使用OpenMLDB和Byzer-lang联合完成一个完整的机器学习应用。Byzer-lang作为面向大数据和AI的一门语言,通过Byzer-Notebook和用户进行交互,用户可......
  • 系统接口安全设计
    1系统接口安全设计接口运行环境为互联网环境,接口安全尤为重要,我们设计三个机制保障接口数据安全。1.1客户端授权机制第三方单位需要向地环总站申请对接appKey客户端系......
  • uniapp上架ios流程
    上架基本需求资料 1、苹果开发者账号2、开发好的APP 上架AppStore审核分7步进行。 1、安装iOS上架辅助软件Appuploader2、申请iOS发布证书(p12)window操作教程3、......
  • 信息安全系统设计与实现学习笔记11
    一、知识点归纳以及自己最有收获的内容1、知识点归纳第13章TCP/IP和网络编程1、TCP/IP协议TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用......
  • 河北稳控科技VM系列振弦采集模块启动流程的工作原理
    河北稳控科技VM系列振弦采集模块启动流程的工作原理振弦传感器采集读数模块:专指针对振弦传感器的特性而设计的传感器激励、读数模块。具有集成度高、功能模块化、数字接......
  • 面试官:在 Java 中 new 一个对象的流程是怎样的?彻底被问懵了。。
    对象怎么创建,这个太熟悉了,new一下(其实还有很多途径,比如反射、反序列化、clone等,这里拿最简单的new来讲):Dogdog=newDog();我们总是习惯于固定语句的执行,却对于背后......
  • (一)QT 生成DLL 流程
     1.先建立一个库文件         2.自定义项目名称以及项目路径  3.选择qmake        4.选择共享库和Qtmodule  ......
  • Java安全之Resin2内存马
    Java安全之Resin2内存马环境resin2.1.17添加Filter分析依然是web.xml注册一个filter,debug进去看注册流程debugdofilter逻辑时看到如下代码,最终走入this._filterChain......