当前位置: 首页 > news >正文

软件开发企业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-代码审计网[官网]

相关文章:

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

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

ide-eval-resetter jar包下载、源码、使用介绍

如果你在找ide-eval-resetter插件,这里告诉你,2021.3版本开始该插件正式失效。 如果你安装的JB产品版本低于2021.3版本,你确定要找ide-eval-resetter,下面提供相关链接希望对你有帮助。 ide-eval-resetter源码: Githu…...

数据压缩算法一览

文章首发地址 Huffman编码: Huffman编码是一种基于字符频率的无损压缩算法。它将出现频率较高的字符用较短的编码表示,出现频率较低的字符用较长的编码表示,从而实现压缩。Lempel-Ziv-Welch (LZW): LZW是一种基于字典的无损压缩算…...

使用Rust开发命令行工具

生成二进制文件,将其扔到环境变量的path下即可~ 用rust打造实时天气命令行工具[1] 找到合适的API 使用该api[2] 如请求 api.openweathermap.org/data/2.5/weather?qBeijing&appidyour_key: { "coord": { "lon": 116.3972, "lat&quo…...

CentOS中Oracle11g进程有哪些

最近遇到Oracle数据库运行过程实例进程由于某种原因导致中止的问题,专门看了下正常Oracle数据库启动后的进程有哪些,查阅资料了解了下各进程的作用,记录如下。 oracle 3032 1 0 07:36 ? 00:00:00 ora_pmon_orcl oracle …...

WebRTC之FEC前向纠错协议

FEC前向纠错用于丢包恢复,对媒体包进行异或或其他算法生成冗余包进行发送。如果接收端出现丢包,可以通过冗余包恢复出原始的媒体包。FEC的代价是增加码率带宽,所以一般会根据网络状况、丢包率来动态调整FEC冗余系数,也会结合NACK/…...

软件测试技术分享丨使用Postman搞定各种接口token实战

现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…...

GBU812-ASEMI逆变器专用整流桥GBU812

编辑:ll GBU812-ASEMI逆变器专用整流桥GBU812 型号:GBU812 品牌:ASEMI 芯片个数:4 封装:GBU-4 恢复时间:>50ns 工作温度:-55C~150C 浪涌电流:200A 正向电流&…...

D2007在64位Win7出现 delphi 2007 assertion failure thread32.cpp 的解决办法

Delphi2007 原来安装在Win7 下 运行正常, 自从升级到Win10 ,新建工程运行然后关闭报错, 报错信息如下: --------------------------- bds.exe - bordbk105N.dll --------------------------- Assertion failure: "(!"S…...

windows10 docker 安装在D盘

win10安装docker后发现c盘空间急速减少,360管家查看发现images镜像安装在C盘,于是重装docker desktop以为在安装过程中能够选择,遗憾的是没有提供选择权限,默认直接就安装到了c盘。 desktop 迁移 百度得知可以将c盘的docker安装…...

Scikit-learn强化学习代码批注及相关练习

一、游戏介绍 木棒每保持平衡1个时间步,就得到1分。每一场游戏的最高得分为200分每一场游戏的结束条件为木棒倾斜角度大于41.8或者已经达到200分。最终获胜条件为最近100场游戏的平均得分高于195。代码中env.step(),的返回值就分…...

执行jmeter端口不够用报错(Address not available)

执行jmeter端口不够用报错(Address not available) linux解决方案 // 增加本地端口范围 echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range// 启用快速回收TIME_WAIT套接字 sudo sysctl -w net.ipv4.tcp_tw_recycle 1// 启用套接字的重用 sudo sysctl -w net.ipv4.…...

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

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

Android系统-性能-优化概述

目录 引言: APP优化: 网络优化: 内存优化: 卡顿优化: 引言: 先大概对Android性能优化做一个简单分类和梳理。由于性能影响因素多,比如本文分类的APP,内存,网络&…...

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part II

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法 Part II 用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022openCV4.8.0) Part I_松下J27的博客-CSDN博客 在上一篇文章中,我用cmake成功的生成了ope…...

深度学习5:长短期记忆网络 – Long short-term memory | LSTM

目录 什么是 LSTM? LSTM的核心思路 什么是 LSTM? 长短期记忆网络——通常被称为 LSTM,是一种特殊的RNN,能够学习长期依赖性。由 Hochreiter 和 Schmidhuber(1997)提出的,并且在接下来的工作中…...

LabVIEW开发灭火器机器人

LabVIEW开发灭火器机器人 如今,自主机器人在行业中有着巨大的需求。这是因为它们根据不同情况的适应性。由于消防员很难进入高风险区域,自主机器人出现了。该机器人具有自行检测火灾的能力,并通过自己的决定穿越路径。 由于消防安全是主要问…...

1.2 Kali Linux的网络配置

前言 最新文章请见此处,持续更新,敬请订阅!https://blog.csdn.net/algorithmyyds/category_12418682.html 网络在如今的社会已是十分重要的媒介,如果没有网络,很多事情将难以办成。渗透测试也是一样——毕竟在攻击机…...

目标检测的训练过程

数据集准备(Dataset preparation): 收集或创建带有注释的数据集,其中包括图像或帧以及标注,指定了其中物体的位置和类别。标注通常包括边界框坐标(x、y、宽度、高度)和相应的类别标签。数据预处理: 将图像调整为模型能…...

软考高级系统架构设计师系列论文七十七:论软件产品线技术

软考高级系统架构设计师系列论文七十七:论软件产品线技术 一、摘要二、正文三、总结一、摘要 本人在测井行业的一个国有企业软件开发部工作,从2021年初开始,我陆续参加了多个测井软件开发项目,这些项目都是测井行业资料处理解释软件,具有很强的行业特征,其开发方向和应用…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块&#xff0…...