软件开发企业SDL安全培训案例

1.背景

随着计算机技术的发展、internet及mobile应用的普遍使用,软件安全像功能、性能、稳定性一样是计算机系统的一个非常重要部分。没有安全的软件,任何美好的功能都是徒劳的,没有安全的软件,公司的机密数据、客户隐私、系统的可靠性都得不到保障.如何有效评估、开发安全、可靠的软件是目前无数软件开发企业所面临的重大挑战。

某银行是一个为客户提供高效优质服务的全球性商业银行,,其业务系统越来越多,比如网点柜台、网上银行、网上支付、电话银行、手机短信银行、ATM、自助服务终端、POS、第三方支付对接平台...等. 随着互联网和移动技术的深入,银行业务的发展正在不断深入到人民生活的各个方面,

为了高效开发安全的软件,并在软件的开发过程中使用成熟的软件安全开发过程和安全标准,XXX银行要求端玛科技及其专家团队协助其实现微软安全开发生命周期(SDL)优化模型,并在采纳和实施SDL优化模型过程中提供帮助,以便他们能够从SDL的五个能力领域的最初的基本级水平不断过渡到标准级、高级和动态级。

2.微软安全开发生命周期(SDL)优化模型介绍

微软安全开发生命周期(SDL)优化模型旨在促进微软以外的开发企业逐步、连贯并且以低成本更有效地实现SDL。该模型可以帮助负责企业软件开发生命周期中纳入安全性和隐私的负责人,来评估其目前的状态,并帮助这些负责人带领企业逐步利用微软的成熟过程来生产更安全软件。SDL优化模型让IT开发管理人员和IT决策者制定人员可以对其开发安全性进行评估。这些人员可以以更低成本、循序渐进、始经如一的方式创建更加安全可靠的软件,创建愿景和发展路线图,从而为客户降低风险。

2.1 SDL能力领域

完整的SDL流程说明如下图。绿色箭头部分表示软件开发生命周期中与安全和隐私相关的步骤,这几步通过两端的培训和响应实践来进行提升与加强。

微软的软件开发生命周期

如果我们将上述内容进行简化,SDL优化模型可以被分组放进五个能力领域。为了帮助SDL优化工作来完成预算计算、计划制定以及人员配置,我们在设计这五个能力领域时,将其与大多数软件开发企业的架构相呼应,并考虑到项目管理、开发、测试及操作中员工的角色。这些基本责任与角色很可能也适用于较小的企业,即使这些小企业的组织结构并没有与此处我们所展示的角色一致,也没有关系。此外,我们还建议建立一个中央安全专家团队来管理活动、提供专家援助和资源,帮助不同团队新的安全和隐私相关的实践。以下部分为大家高度概括了这五个能力领域的内容

2.2.3优化水平3:高级

高级水平中包含的事实上可以验证的工作是很少的,这些工作对于遵守微软SDL要求来说是很有必要的。在这一水平,执行力度是明确的,所有新的、高风险项目都必须实施SDL实践和质量把关。安全和隐私实践已被纳入到整个软件开发生命周期,环环相扣,实现了工作价值的最大化。已部署了安全测试指引,并且使用工具来有效降低成本。安全响应快速、可控,在生命周期较早阶段就开始应用安全和隐私实践有助于减少生产安全软件的总体成本。

2.2.4优化水平4:动态级

具有动态SDL进程的企业能够意识到一个完全实现的SDL可以带来的战略价值,它可以帮助企业保护客户、高效地实现创新、在业界立于不败之地。与高级水平不同的是,高级水平的对象是新的、高风险的产品与项目,动态水平要实现企业级培训目标、在整个企业的所有可应用项目上要求实现软件安全。从本质上来说,动态水平指的是企业已经到达了一个成熟度水平,所有的项目都有SDL使用的历史可以追溯。在每个发布周期都能够达到越来越高的安全要求,并且原有的系统也都合规。团队已经以软件实现了安全的内部开发,不需要中央安全专业团队的支持也可以完成大量的实践。除对事件进行响应之外,可以将安全重点集中在创新、工具定制方面。并且,产品在市场上忆经培育起良好的安全信誉。

2.3 日益提高SDL的成熟度水平

随着企业SDL优化模型中成熟度不断提高,企业也需要提高自身执行方面的目标和SDL成果,应从初步验收合格水平提高到强制执行水平。企业的SDL实践也会升级为技术精通和高效的级别,同时,SDL活动的覆盖面也应从少数几个试点项目扩展到存在有安全和隐私风险的所有产品与服务。下表高度概括了针对各能力领域不能成熟度水平所包含的主要活动。为了让该表更具可读性,从左至右针,活动的各成熟度水平依次升高。

3.工作建议

某银行希望将微软安全开发生命周期(SDL)优化模型整合到其目前正在开发的手机银行系统中,以手机银行系统作为SDL的试点项目,并在一年时间里,使该项目组织成熟能力由最初的基本级提高到标准级,进而进入高级水平,以此提高手机银行系统的安全性,同时将此过程中整理的策略、标准、最佳实践、培训、分析方法、过程和工具逐渐推广到XXX银行的其它项目。以便后期在整个银行推广SDL。

为了取得本项目的成功,端玛科技及其安全专家团将为某银行提供如下的咨询服务。1. 安全软件开发生命周期(SSDLC)差距分析,主要包含如下的活动。

从访问调查及对现有过程文档进行审查收集信息,以图表形式描述银行目前的软件开发生命周期(SDLC)。

就将策略、过程、工具和关键安全工程活动纳入SDLC提出详细建议。

为银行的开发团队,对关键标准及检查清单进行文档化。

根据安全标准,对新的及现有软件应用进行评估,对评估的正式流程及步骤进行文档化。

将标准翻译解释成为正式的安全需求声明,并纳入到供应商合同与服务等级协议中去。

对实施建议活动所需时间进行量化(即安全代码审查、渗透测试)。

针对具体SDLC建议制定实现纠正路线图。

包括对工具及新安全活动的引入,和/或利用现有工具与设施的方法。

企业内部应用安全专业知识的培训计划。

包括针对特定开发角色与技术所提出的培训建议。

2 .安全软件开发生命周期(SSDLC)过程指导

指导手机银行系统项目团队在需求、设计、实现、测试和部署阶段如何实现SDL优化模型所要求的能力。

3. 针对设计、实现、测试和质量保证进行分团队指导

包含但不限于需求安全和隐私分析、威胁建模、攻击面最小化、代码审计、渗透测试、FUZZ测试、安全评审等。

4. 软件安全培训 - 在整个安全开发生命周期对不同角色提供基本安全培训,如程序员、系统设计师、安全测试人员、架构师、安全人员。

针对30个项目团队及开发人员,提供Java 、iOS 、 Android、攻击技术、web攻击技术、Mobile攻击技术,安全设计、开发、测试的培训。

本文由端玛| DMSCA|代码扫描|代码审计|安全培训|漏洞分析|-端玛安全[官网]

代码审计网|端玛| DMSCA|Checkmarx|Fortify|代码扫描|代码审计|安全培训|漏洞分析|合规要求|VeraCode-代码审计网[官网]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/54911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elemenPlus ElMessage 字符串如何换行问题

因为后端返回的数据是一长串,而且带有\r,\n等换行符,但是并没有生效。前端写法: // 抛出错误ElMessage.error(msg);我们知道\r,\n,\r\n 是在不同系统下的换行符的表示,但在JavaScript返回字符串中并没有生效…

TiDB 源码编译之 TiProxy 篇

作者: ShawnYan 原文来源: https://tidb.net/blog/3d57f54d TiProxy 简介 TiProxy 是一个基于 Apache 2.0 协议开源的、轻量级的 TiDB 数据库代理,基于 Go 语言编写,支持 MySQL 协议。 TiProxy 支持负载均衡,接收来…

【滑动窗口】leetcode209:长度最小的子数组

一.题目描述 长度最小的子数组 二.思路分析 题目要求:找出长度最小的符合要求的连续子数组,这个要求就是子数组的元素之和大于等于target。 如何确定一个连续的子数组?确定它的左右边界即可。如此一来,我们最先想到的就是暴力枚…

Linux 多线程基础

文章目录 前言一、多线程基础函数1. pthread_create2. pthread_self3. pthread_exit4. pthread_join5. pthread_cancel6. pthread_detach 二、线程间的共享数据三、多线程 &#xff0c;进程对比总结 前言 一、多线程基础函数 1. pthread_create 创建新的线程。 #include <…

使用EventLog Analyzer 进行路由器监控

路由器是任何计算机网络的构建块&#xff0c;引导网络中的流量&#xff0c;管理员需要确保路由器已配置并正常工作&#xff0c;以确保网络安全。 监控路由器中的用户活动 在网络安全方面&#xff0c;与路由器相关的风险是一个严重的问题。具有松散安全策略的网络使入侵者可以…

kafka--技术文档--基本docker中安装<单机>-linux

安装zookeeper 阿丹小科普&#xff1a; Kafka在0.11.0.0版本之后不再依赖Zookeeper&#xff0c;而是使用基于Raft协议的Kafka自身的仲裁机制来替代Zookeeper。具体来说&#xff0c;Kafka 2.8.0版本是第一个不需要Zookeeper就可以运行Kafka的版本&#xff0c;这被称为Kafka Raf…

3 自制一个集群分发脚本

1. 随便取了一个名字&#xff1a;xsync 2. 在一个配置环境变量的目录下&#xff0c;我是放在了/opt/software下&#xff0c;这个路径我是配置了环境变量的。 3. 编辑脚本&#xff1a;vim xsync #!/bin/bash#1. 判断参数个数 if [ $# -lt 1 ] thenecho Not Enough Arguement!…

【⑮MySQL | 视图】概述 | 创建 | 查看 | 更新 | 修改 | 删除

前言 ✨欢迎来到小K的MySQL专栏&#xff0c;本节将为大家带来MySQL视图概述 | 创建 | 查看 | 更新 | 修改 | 删除的分享✨ 目录 前言1.视图概述2.创建视图3.查看视图4.更新视图数据5.修改视图6.删除视图总结 1.视图概述 1.1 为什么使用视图&#xff1f; 视图一方面可以帮我们使…

如何构建多域名HTTPS代理服务器转发

在当今互联网时代&#xff0c;安全可靠的网络访问是至关重要的。本文将介绍如何使用SNI Routing技术来构建多域名HTTPS代理服务器转发&#xff0c;轻松实现多域名的安全访问和数据传输。 SNI代表"Server Name Indication"&#xff0c;是TLS协议的扩展&#xff0c;用于…

2023年国赛 高教社杯数学建模思路 - 案例:随机森林

文章目录 1 什么是随机森林&#xff1f;2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林&#xff…

数据结构(Java实现)-二叉树(下)

获取二叉树的高度 检测值为value的元素是否存在(前序遍历) 层序遍历 判断一棵树是不是完全二叉树 获取节点的路径 二叉树的最近公共祖先

Docker基本部署和相关操作

1.安装docker服务&#xff0c;配置镜像加速器 1、yum安装并且添加源信息 yum install yum-utils device-mapper-persistent-data lvm2 -y yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo2、修改一些配置信息 sed…

Kaggle回归问题Mercedes——Benz Greener Manufacturing

目录 前言1 题目介绍2 数据清洗3 数据可视化分析4 模型训练5 源码 前言 这是我在大三选修课的课程设计&#xff0c;内容参考了Kaggle上高赞的代码&#xff0c;有详细批注&#xff0c;整体比较基础&#xff0c;结构相对完整&#xff0c;便于初学者学习。这个是一个回归问题&…

⌈算法进阶⌋图论::拓扑排序(Topological Sorting)——快速理解到熟练运用

目录 一、原理 1. 引例&#xff1a;207.课程表 2. 应用场景 3. 代码思路 二、代码模板 三、练习 1、210.课程表Ⅱ&#x1f7e2; 2、2392.给定条件下构造举证&#x1f7e1; 3、310.最小高度树 &#x1f7e1; 一、原理 1. 引例&#xff1a;207.课程表 就如大学课程安排一样&…

21.2 CSS 三大特性与页面布局

1. 开发者工具修改样式 使用开发者工具修改样式, 操作步骤如下: * 1. 打开开发者工具: 在浏览器中右键点击页面, 然后选择检查或者使用快捷键(一般是 F12 或者 CtrlShiftI)来打开开发者工具.* 2. 打开样式编辑器: 在开发者工具中, 找到选项卡或面板, 一般是Elements或者Elemen…

【Go Web 篇】从零开始:构建最简单的 Go 语言 Web 服务器

随着互联网的迅速发展&#xff0c;Web 服务器成为了连接世界的关键组件之一。而在现代编程语言中&#xff0c;Go 语言因其卓越的性能和并发能力而备受青睐。本篇博客将带你从零开始&#xff0c;一步步构建最简单的 Go 语言 Web 服务器&#xff0c;让你对 Go 语言的 Web 开发能力…

线性代数的学习和整理14: 线性方程组求解

目录 1 线性方程组 2 有解&#xff0c;无解 3 解的个数 1 线性方程组 A*xy 3根直线的交点&#xff0c;就是解 无解的情况 无解&#xff1a; 三线平行无解&#xff1a;三线不相交 有解 有唯一解&#xff1a;三线相交于一点有无数解&#xff1a;三条线重叠 2 齐次线性方程组…

Vue的使用

Vue的使用 Vue到底是啥&#xff1f;Vue中包含了两部分虚拟DOM 模块化编程虚拟DOM&#xff0c;在我们重用模板的时候&#xff0c;在Vue中存在虚拟DOM 虚拟DOM是为了更好的去重用我们的DOM (增加元素的时候&#xff0c;先去虚拟DOM找是否存在&#xff0c;如果有那么不用生成&am…

VUE笔记(六)vue路由

一、路由的简介 1、实现生活中的路由 路由&#xff1a;路由其实就是一个key-value对应关系 路由器&#xff1a;用于管理多个路由关系的设备被称为路由器 2、前端的路由 目前使用的前端项目都是单页面的应用&#xff08;SPA&#xff09;&#xff0c;一个项目中只有一个html页…

c语言中编译过程与预处理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、c语言的编译与链接1、编译与链接概述2、编译与链接详解 二、c语言预处理1.c语言中内置的预定义符号2、#define定义标识符3、#define定义宏4、#define 替换规…