随着移动应用、互联网+时代的到来,几乎每个银行的都已经把主要的业务搬到互联网和移动互联网上来。随之而给带来了两个重大的趋势:

  • 一方面,软件外包开发空前的繁荣起来,银行除了要提供网上银行,电话银行的业务,还要提供手机银行,银行APP, 网络支付、各类投资和理财业务APP等等。越来越多的银行业务需要更全面、功能更多、更强大的软件应用系统来支撑,这着实给本来就“压力山大”商业银行科技部(软件开发处)带来了不小的挑战。
  • 另一个方面,信息安全、个人隐私受到了越来越大的威胁。网络安全事件,个人隐私泄露,网络站点被黑等等事件几乎天天可以看到。所以国家在今年6月1日及时地颁布了《网络安全法》,希望从法律层面,给社会各界提供有力的依据,公同保护互联网安全环境。

其中,现在网络安全攻击事件不断频发的一个主要原因,就是大量定制化外包开发出来的软件应用系统的源代码中都存在着各种各样的安全漏洞,极易受到黑客攻击。这一点,我们可以从国内多家安全漏洞曝光平台上可以看出(国内主要的曝光平台有,360公司补天、漏洞盒子等),几乎各行各业的网站系统都会存在安全漏洞。其中不乏大型国企、央企、大中型商业银行、高校和科研单位等等。

2016年网络安全事件与源代码安全漏洞

面对上述严峻的网络安全形势,作为关系到国计民生、和老百姓的“钱”息息相关的商业银行,绝对不能再仅靠传统的几大件网络安全防护设备来解决问题。

正如上文所说,目前所面临的安全问题都是我们自主研发或者外包开发出来的定制化软件系统存在安全漏洞而导致的。而目前我国的绝大多数商业银行的软件系统开发是外包开发为主,由银行内所设置的科技部和信息系统部来管理。行方人员为数较少,常常都是一人身兼数职,同时也没有相对专业的软件安全管理人员。

针对中小型商业银行的软件开发特色,我们如果还是大谈如何在商业银行内部建立完整的SDLC安全开发生命周期来保证软件的安全性就显得非常的不且实际。今天,我们就来聊一聊大部分为外包开发模式的商业银行,用什么方法来保障自己所定制开发的软件系统、WEB站点以及移动APP等应用系统的源代码的安全性。

对于商业银行而言,自身不具备(也不必要具备)软件安全开发能力,不需要拥有很高的源代码安全开发水平。但对于自己的业务系统的安全性,商业银行是第一负责人,必须具备软件系统安全的检测和保障能力,否则一旦应用系统被攻击,触犯《网络安全法》的可是银行自己,要第一个被追责。所以,各个商业银行都应该在如何保证软件的源代码安全漏洞问题上下一番功夫,确保自身业务系统上线后的安全性、稳定性。

那么如何在外包开发模式下有效地对软件应用系统进行安全保障呢?换句话说,如何在“只有一个行方的开发项目经理,且方经理身兼多个项目”的情况下,又确保源代码是安全的?

根据我个人多年经验的总结,并结合外包管理的一些方法,我认为,在软件外包管理中引入软件源代码安全测试体系,建立强制性的源代码“安全验收”机制是最有效、最方便的手段。它可以从源代码层面上保证软件系统的安全性。这个“安全验收”机制如何建立才能即满足甲方安全保障的需要,又能让外包开发服务商积极地配合安全漏洞的检测和修复工作呢? 我们将其总结为一个“GATE+” 源代码安全测试管理模式,具体说明如下图所示:

“GATE+”安全测试管理模式

如上图所示,“GATE+”模式的主要思想就是,在外包开发管理中引入软件源代码的安全测试体系,对外包服务商所交付的软件系统的源代码进行安全性验收测试。如果交付的源代码存在易被攻击的安全漏洞,需要外包商进行安全修复,直至这些漏洞全部被消除,这个系统才能够验收,进行上线部署。该模式的几个关键点说明如下:

1. 行方制定并发布明确的《软件源代码安全测试验收标准》

由行方安全部门和开发项目经理联合专业的软件安全咨询顾问共同制定出明确的,符合甲方安全要求的《软件源代码安全测试验收标准》,并由行方权威部门正式发布,即上图中的“红线”。这是源代码安全验收时必须遵守的,也是最后的一道防线,由“行方开发项目经理”对标红线的进行各个项目的安全检查和验收。

与之相对应的是外包开发过程中的一个“虚黄线”。该虚黄线的意思是开发商可以在项目开发初期就明确地让开发人员知道将来的源代码验收标准,开发人员就可以提前预防,提前做好技术上的规避方案。这样一来,外包商和开发人员就会更加积极主动的配合安全漏洞的检查和修复工作。

2. 建立一个方便、高效的软件源代码安全测试管理平台

可能有安全管理人员会觉得源代码安全测试,直接找专业的第三方安全测试机构或者安全公司进行测试服务就可以了,不必要由行方自建源代码安全管理平台。

但根据经验,由甲方自建安全测试管理平台是非常有必要的。这是因为,如果把验收测试交由第三方来测试时,那势必安全测试只能在项目验收时进行一次到两次的测试。测试频度太低,时间后置,这样只能会造成“仓促地”测试和验收,外包人员“极不情愿地”配合和“应付式”修复漏洞的局面。一旦形成这样的情况,那上面行方项目经理的“安全验收”工作就会越来越难开展,也无法保证质量,慢慢地就只是留于“形势”了。

这一点,我们已经看到很多的商业银行就是这样的情况。所以,由甲方自建一个软件源代码安全测试管理平台,提供两种测试并行的方法才能把“安全测试标准”有效地执行下去。目前国内自主可控的源代码安全测试管理平台并不多,思客云公司找八哥云管理系统是个不错的选择。

3. “强制式”测试与“自助式”测试并行

为了避免上述的问题,在自建安全测试管理平台的基础上,我们提出了一个“强制式”测试与“自助式”测试并行的方案。

如上图中所示,验收式测试 +“蓝虚框”的外包自助式测试。其中验收式测试由甲方的项目管理人员完成。这是强制式的,每一个项目在交付前都要进行一次强制式验收测试。

同时,在开发过程中,允许外包商开发人员可以在开发过程中不定期的对源代码进行自助式的安全测试,这样可以让外包人员及时地检测出安全问题及时地修复漏洞。外包商就可以对强制验收式测试没有那么抵触,更加积极配合,安全测试工作就会更加的顺畅。同时也不会因为安全测试影响项目验收进度,影响交付和发布了。

软件源代码安全验收测试,一个简单又高效的软件安全保障手段,虽然已经提出多年,但是如果没有一个有效的模式为基础,则只会让商业银行,外包商,开发人员,安全人员和项目管理人员徒增烦恼。思客云找八哥系统以提供最佳“源代码安全测试”整体解决方案为己任,希望能够给您提供必要的帮助!

本文作者:王宏

来源:51CTO

中小型商业银行的软件安全测试之道相关推荐

  1. 谷歌测试之道—读书笔记

    谷歌软件测试之道 "Google 的 SWE 就是功能开发人员,负责客户使用的功能模块开发.他们编写功能代码及这些功能的单元测试代码. Google的SET就是测试开发人员,部分职责是在单元 ...

  2. 《Google软件测试之道》- Google软件测试介绍

    <Google软件测试之道>- Google软件测试介绍 2015-05-21 目录 1 质量与测试   2 角色   3 组织结构   4 爬.走.跑   5 测试类型   相关链接 与 ...

  3. python测试之道第5章模拟网络请求

    python发送网络请求是通过模块中的方法来实现的,模块定义好了请求的语法格式,只需要按照相应的语法格式对号入座写代码即可. 一般来说我们测试的都是基于HTTP和HTTPS的网络请求,python有很 ...

  4. 富文本存储型XSS的模糊测试之道

    富文本存储型XSS的模糊测试之道 凭借黑吧安全网漏洞报告平台的公开案例数据,我们足以管中窥豹,跨站脚本漏洞(Cross-site Script)仍是不少企业在业务安全风险排查和修复过程中需要对抗的&q ...

  5. 《微软的软件测试之道》读书笔记 之 结构测试技术

    <微软的软件测试之道>读书笔记 之 结构测试技术 2014-07-18 我们需要结构测试吗? 微软的一项试验说明了结构测试的在代码覆盖中起到的效果: 超过3000名测试员参与了这项实验,每 ...

  6. 补习系列(8)-springboot 单元测试之道

    目录 目标 一.About 单元测试 二.About Junit 三.SpringBoot-单元测试 项目依赖 测试样例 四.Mock测试 五.最后 目标 了解 单元测试的背景 了解如何 利用 spr ...

  7. 测试之道——阿里巴巴八年测试专家倾情奉献

    测试之道--阿里巴巴八年测试专家倾情奉献 发表于:2018-1-11 08:21  作者:雷藏   来源:云栖社区 字体:大 中 小 | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 软件测试管理  ...

  8. 细读《阿里测试之道》

    <阿里测试之道>也是国内第一本综合介绍测试"道"的书,昨天下单,今天早上看完了第一章节,里面对国内测试团队都遇到过的测试困局.难点给出了解决之道:以阿里的视角阐述了测试 ...

  9. 《Google 软件测试之道》摘录

    最近刚刚看完<Google 软件测试之道>,受益颇多,遂记录下: 只有在软件产品变得重要的时候质量才显得重要 第一章:谷歌软件测试介绍 角色介绍 SWE(Software Engineer ...

最新文章

  1. IBM GSA Senior DBA招聘
  2. Intel刚刚收购的Vertex.AI,到底有什么黑科技?
  3. request 和require区别_合同翻译时如何区分使用request和require
  4. 企业信息化解决方案——插件式平台开发框架
  5. HiveQL学习笔记(五):Hive练习题
  6. Mac基础操作:在双显示器设置中将Dock保持在一个屏幕上以防止其移动的方法
  7. mock of python
  8. pmp 资料_1年 = 15300订阅 + 超100万次收听 (感恩有您,这些PMP备考资料您值得拥有!)...
  9. Django开发收银系统二
  10. Tip3 百度网盘PC版去除广告和游戏运营位教程(百度网盘破解教程)
  11. JAVA查搜索文件内容
  12. csgo怎么一直连接服务器失败,CSGO提示连接到官方任意服务器失败怎么办?
  13. 基于C语言设计的一个医院叫号系统
  14. 区块链百科合集 之 层 级 架 构
  15. 强化学习萨顿和巴托部分习题
  16. 12 道腾讯前端面试真题及答案整理
  17. html静态网站中华传统文化网站主题设计 传统文化艺术耍牙15页
  18. 企业信息化:体系比软件更重要
  19. DQN笔记:高估问题 target network Double DQN
  20. 直流负载线和交流负载线静态工作点分析,与非线性失真类型分析

热门文章

  1. iframe,window,滚动栏的一些问题
  2. uestc 250 数位dp(水)
  3. c++设计一个不能被继承的类
  4. How good software makes us stupid?
  5. mint 15用fcitx框架安装中文谷歌输入法
  6. 准确率(Precision)、召回率(Recall)以及综合评价指标(F1-Measure )
  7. AngularJS转换请求内容
  8. 深度高能粒子对撞追踪:Kaggle TrackML粒子追踪挑战赛亚军访谈
  9. Java中使用memcache缓存
  10. JPA学习笔记2——JPA高级