外包开发的风险,一半以上的企业都被坑过

来源:http://www.chinese-glasses.com 作者:Web前端 人气:147 发布时间:2020-05-06
摘要:时间: 2019-09-06阅读: 468标签: 外包 前阵子有篇文章叫《史上最坑爹外包!花费 2 亿耗时 2年,网站至今未交付》的热文在 IT圈刷了屏,讲的是世界顶级咨询公司埃森哲为美国汽车租赁公司

时间: 2019-09-06阅读: 468标签: 外包

前阵子有篇文章叫《史上最坑爹外包!花费 2 亿耗时 2 年,网站至今未交付》的热文在 IT 圈刷了屏,讲的是世界顶级咨询公司埃森哲为美国汽车租赁公司赫兹开发新网站和移动应用程序的外包项目烂尾了,后者无奈之下诉诸公堂,从而让这个惊天大瓜暴露在世人面前。我们注意到,该项目代码存在影响面极广的严重安全漏洞,也让其难以投入使用。

图片 1

一说到外包开发项目中的安全问题,相信找过外包开发商开发项目的同学再熟悉不过了,外包开发项目的安全漏洞不仅多,而且还经常是越权访问、SQL 注入、文件上传、代码注入等高危漏洞。

如今,大到国际巨头的资金往来,小到日常每一笔网上银行交易,金融IT的触角已经延伸到各个角落。我们在日常生活中频繁使用着网络支付、电子银行、移动支付等金融工具,相应的交易模式也在不断变化中。永远在线的交易,自然也促使银行业对软件质量的关注提升到了新高度。

针对这一问题,本文就来谈谈外包开发存在的意义、外包开发中的安全风险与应对解决方案。

作为一家品牌综合影响力不断扩大的地方银行,天津银行自成立以来,一直注重为用户提供专业、安全、可靠的金融服务和产品。近年来,他们更是通过部署HPE Fortify产品,进一步完善了系统安全测试流程,大幅提升了测试团队查找软件安全漏洞的效率,降低系统在实际运行中可能存在的巨大风险,从而真正为最终用户提供安全周到的金融产品。

一、外包开发存在的意义

人工方式代码审核费时、费力,时常漏检

外包开发是 IT 服务外包的一种子类,实质还是基于企业与 IT 外包服务提供者之间的委托代理关系,由前者提出开发需求与系统设计后,由后者提供应用程序或者系统开发的服务。

天津银行在不断创新金融产品和服务方式的同时,持续强化信息科技安全建设,他们采取多种安全措施确保软件系统安全,如在办公、生产、测试等不同区域设置防火墙、加密机制保证网络层的安全,在新产品上线或系统升级时进行功能、业务压力测试,通过质量管理工具降低风险防止代码被改动,等等。

首先,随着企业对核心竞争力的重视,越来越多的企业将 IT 服务外包作为一种新的长期战略成本管理工具,用来消除不属于核心业务的干扰分支。企业需要重新定位,截断价值链中较短的部分,缩小经营范围。

验收测试是天津银行对应用系统最主要的质量控制环节,而从安全角度对每款新软件进行全面的风险分析,并提出有针对性的整改方案也已经成为产品稳定上线前必不可少的一步,这项工作需要测试人员通过代码审核来完成。

在此基础上,需要对企业的各种资源进行重新配置,将资源集中于最能体现企业优势的领域,从而更好地构建竞争优势,获得可持续发展的能力,这对于企业核心资源的长远发展有着重要的意义,可实现“成本控制”和“管理效益”的有效兼顾。参考链接:

图片 2

其次,对于一些非核心系统或者应用,企业采用自行开发的方式成本过高;或者对于一些需要前沿技术的产品,企业自身并不具备成熟的开发能力。因此选择外包开发是其平衡成本与效益的最佳选择。

代码审核是从安全角度对源代码进行分析,其关注点是有可能对软件产生威胁的安全漏洞或架构上的设计缺陷,而这些通常也是黑客攻击利用的漏洞。天津银行以前一直采用人工方式来进行代码安全检测,但这种方式会占用大量的时间和人力,并且审核的效率也不高,同时,也不能将所有的系统进行深入的检测。另外,由于天津银行外包商提供的产品,在标准、语言、操作系统版本等方面也各有差异,更加大了测试的任务量和复杂度漏检、错检的问题常有发生,这对于人员精简的天津银行软件测试部门来讲无疑是雪上加霜。

再者,在移动互联网蓬勃发展、全民互联网创业的风潮之下,对于那些自身没有开发能力的创业者,如果从 0 构建开发能力则需要太多投入,一方面是业务紧迫性不允许,另一方面,即便投入了也不见得比专业外包做的更好,所以他们选择了外包开发。

竞争的激烈导致银行业在快速推出新业务的同时,除了要保持高效的服务能力之外,更要确保客户交易安全。这种业务的快速变化迫使支撑它运行的IT系统也要更敏捷。IT必须敏捷,但业务系统却越做越复杂、越来越多,而银行又要在有限的人员投入下保证质量、防范风险,挑战和压力越来越大。快速的去交付一个软件服务,纯手工人工非自动化的方式已然不能适应业务的快速变化,所以天津银行亟需要采用专业的自动化测试工具,通过一组全面规则、测试机制在软件开发、测试过程中发现和管理软件的安全隐患,进而提升审核效率。

二、外包开发安全风险

对于安全测试工具的选择,天津银行负责软件开发的许平副总经理认为非常有必要,她表示:“以前通过人工方式进行代码审核,虽然也能达到银监会审计要求的标准,但其实心里没有底,没有统一标准、源代码扫描不规范、细小错误能不能发现等问题都是现实存在的,软件即使审计通过上线了,但在实际运行过程中风险依然非常大。”许平希望能够采用成熟的代码检测工具来进一步完善系统测试流程,消除代码潜在的风险,提高代码的质量、可读性和可维护性,保护银行的应用。

来自国外的报告显示,56% 的企业数据泄露都源自第三方供应商,42% 的企业都因为第三方供应商遭遇攻击而出现数据泄露。前不久,Facebook 就因为第三方数据泄露而再次成为众矢之的。

HPE Fortify,实现源代码安全检测

因此,为了保护企业数据安全,企业不仅要抵御自身所面临的内外部安全威胁,还要进行第三方风险管理(TPCRM)。这里所说的 TPCRM,对应今天我们讨论的外包开发安全风险管理。

在选择安全测试工具时,天津银行直接将目标选定为HPE Fortify产品。因为全世界最大的10大银行中的9家都选择了HPE Fortify。HPE Fortify在业界拥有很好的用户口碑,国内许多金融企业也广为应用这款产品进行软件安全测试。HPE Fortify是一个静态的软件源代码安全测试工具,拥有最全面的安全代码规则包,支持市场上最流行、最多样化的编程语言,安全漏洞检查也最为彻底。成熟领先的产品、丰富的实施经验、专业的服务团队让天津银行锁定HPE。

1、外包开发模式分类

如今的黑客攻击主要利用软件本身的安全漏洞,这些漏洞是由不良的软件架构和不安全的代码产生的,而防御方案则非常明确——就是构建安全的代码。保证代码安全没有捷径可走,必须在每一个开发周期巩固软件安全性。开发人员可利用HPE Fortify进行强有力的源代码分析;安全测试人员借助HPE Fortify使测试变得可量化,更易修复漏洞;评审人员能够通过HPE Fortify从整个代码中找出安全问题,定下主次顺序,然后解决问题。

简单而言,按照代码部署场景、协作模式,目前的外包开发模式可以分成三类,分别是驻场式、远程式和完全独立式,它们在开发过程中所面临的安全风险或者甲方安全能力覆盖上都存在很大不同。

图片 3

1)驻场式

HPE Fortify完全自动化的测试流程、多维度分析源代码安全问题、精确定位漏洞产生的全路径,以及1分钟约1万行的扫描速度,让天津银行开发测试人员不仅在对源代码进行安全漏洞扫描时省时省力,还能获知详细的漏洞信息及相应的修复建议,能够在第一时间与应用开发外包团队沟通Bug所在,及时修正漏洞。

外包公司通过劳务派遣的方式或者临时办公的方式安排其员工到甲方办公地点进行服务,入驻到甲方产品或开发团队之中。

HPE Fortify通过内置的五大主要分析引擎:数据流、语义、结构、控制流和配置流对应用软件的源代码进行静态的分析,在分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来。HPE Fortify安全代码规则多达50000多条,规则内容涉及ASP.NET,C/C++,C#,Java,XML,VB.NET等多种语言,并且能够跨层、跨语言地分析代码的漏洞的产生,而上述这些也恰恰是天津银行目前系统架构所采用的多种语言环境,而HPE Fortify与世界同步的业界最权威的安全规则库,则确保了天津银行能够防范最新型的安全漏洞,在软件形成产品成本前将软件安全风险降到最低。

这种模式下甲方的风险控制程度最高,因为此时必须遵循甲方的办公、开发、测试、发布流程规范,整个 CI/CD 的流程与环境都为甲方所控制,同时也处于甲方安全能力覆盖范围,相对而言,这种情况下安全风险最小。

整合业务及服务,提升园区招商吸引力

2)远程式

谈到方案实施的好处,许平认为:代码审核更规范、更精确,原来人工方式无法监控到内存泄露问题,更不能定位到底是哪行代码出现内存泄露,黑客有可能会利用漏洞来影响应用或大幅度降低应用的性能,而现在,这一问题得到解决,有效降低新产品上线失败的风险,加速了对高质量应用的部署。而且通过减少漏洞被利用的频率,还有助于减少灾难恢复的成本。具体来讲还包括:

外包公司员工在其办公环境下完成代码开发、测试,然后通过公共代码仓库或者其他在线文件系统或存储系统进行代码共享,由甲方完成代码的部署和系统运维,或者合并到其主代码分支中,再由甲方完成代码部署与系统运维。

  • 提升代码审核效率;
  • 代码审核范围涉及全部应用;
  • 安全检测标准化、制度化;
  • 测试结果更规范、更全面;

这种模式下,甲方的风险控制程度相对较高,整个 CI/CD 的流程与环境都为甲方所控制,同时也处于甲方安全能力覆盖范围。

同时,许平还希望搭建起一个测试团队高效协同平台,以促进银行测试团队和项目开发人员间全产品生命周期内的协作,并且能够与银行测试人员同步漏洞检测,消除测试版本部署的随意性以及环境冲突的不可预见性,减少沟通时间,推动开发质量的提高,加速新产品上线。

但是无论合同中如何约定代码所有权,代码都会为外包公司所接触,而且代码共享路径经常需要对外网开放,这也为代码泄露留下口子。

图片 4

相对而言,如果外包公司有成熟的安全管控流程、代码共享路径进行有效的身份验证和访问控制,这种情况下安全风险较小。

为了防范风险,天津银行还研究制定了信息科技风险管理制度体系,完成了信息科技系统“两地三中心”的灾备体系建设,这一系列举措将使天津银行的信息科技支撑能力进一步增强。

3)完全独立式

“部署HPE Fortify方案后,天津银行对内网、外网中所有新上线应用全部进行源代码安全测试,极大提升了软件性能,能够满足监管要求,保护系统不会受到恶意代码攻击,大幅降低企业风险”,许平最后总结道。

外包公司独立完成代码开发、测试、发布,整个 CI/CD 流程为其控制,虽然线上运行环境不一定为外包公司控制,甲方可能只是配合域名指向或者品牌资源使用申请,但可以看到甲方对此风险控制程度非常弱。

【编辑推荐】

这种合作模式下的安全风险往往是极高的,因为甲方安全能力基本覆盖不到,其成熟的发布流程也不一定管控到。

2、风险列表1)敏感信息泄露

最常见的是调试模式未关闭、源码压缩包放在 web 根目录、版本控制文件.git/.svn 等文件放在根目录,或者外包开发人员将源码上传第三方仓库外泄,或者外包人员的个人电脑中毒或被入侵,导致甲方源码、数据泄露。

2)高危漏洞高可能性

外包开发通常使用开源开发框架,这类框架往往漏洞频发,很容易被批量利用,而且也经常出现高危漏洞,常见的如服务端任意文件下载、SQL 注入、客户端组件暴漏和敏感信息泄露漏洞等,可以拉取数据库信息或者入侵服务器。

另外,开发商代码架构、质量一般,更容易产生漏洞,或者在对用户可控输入的限制上存在遗漏。

3)敏感信息窃取

之前出现过银行外包开发商违规收集用户信息或者甲方业务数据。

4)埋入后门

外包开发人员故意留逻辑后门等。

5)漏洞分布的广泛性

由于外包团队的代码复用,一旦在某个外包开发的系统出现漏洞,很大可能也能在其开发的其他系统找到相同或类似漏洞。另外,外包开发商一旦被黑,其客户源码、数据也会泄露。

3、原因剖析外包公司自身的安全管理水平较低、安全运维能力不足,对于完全独立式的外包开发模式而言极易出现安全漏洞。外包公司员工安全技能和安全意识不足,可能本身外包公司对员工自身能力建设重视程度不高,也让其员工失去提升安全意识与技能的机会。模板式开发模式,换言之就是复制粘贴式的开发,自定义组件化程度往往不高,代码安全质量没有保障。三、外包开发安全风险管理

本文由10bet发布于Web前端,转载请注明出处:外包开发的风险,一半以上的企业都被坑过

关键词:

上一篇:HTML5表单标签

下一篇:伪类元素

最火资讯