当前位置:首页 > 数码 > 应用系统外包开发中的源代码安全风险管控措施研究 (应用系统外包有哪些)

应用系统外包开发中的源代码安全风险管控措施研究 (应用系统外包有哪些)

admin8个月前 (04-16)数码32

摘要

本文结合对应用系统设计、开发、测试、测评等建设过程的分析,总结了外包应用系统开发中存在的安全保密风险,并根据应用系统安全建设和测评经验,结合安全开发生命周期等安全开发管理理念,研究了应用系统外包开发中源代码安全风险管控技术和策略,以期从源头减少应用系统自身安全漏洞和风险,提升信息系统安全防御水平。

关键词

  • 应用系统
  • 外包开发
  • 安全保密
  • 风险管控

1引言

应用系统是信息系统中信息分发、传递、共享的主要工具,同时是业务管理的数字化基本设施,在信息网络中处于信息传递的核心。随着企业数字化转型的不断推进,各单位为满足各种业务需要建设了各类业务应用系统,如财务系统、人力管理系统、项目管理系统等。但由于应用系统开发建设具有专业性、复杂性,一般需要专业的软件开发团队进行建设,而大部分单位不具备自行开发应用系统的能力,应用系统外包开发成为主流的建设方式。

随着网络攻防技术的发展,越来越多的安全漏洞在各类应用系统中被发现,根据Forrester调研,仅Web类安全漏洞就占2021年发现安全漏洞的39%,由此可见应用系统已成为网络攻防双方的主战场之一。因此,如何管控外包开发应用系统源代码安全漏洞,从根本上有效减少安全漏洞,保障应用系统安全成为各单位信息化和网络安全管理部门面临的重要议题。

2外包开发中的源代码安全风险分析

在对外包应用系统进行测评的过程中,存在以下风险。

源代码安全
  1. 现行相关标准对安全要求较高,但对开发厂商的安全开发能力、开发质量缺少直观的考核和选择指标,导致部分开发厂商不注重安全开发能力的建设和开发质量的提升,一些应用系统的开发过程管理混乱,缺少源代码安全的管理与技术措施,甚至在互联网中开展代码管理,极易引入安全风险,部分应用系统安全质量没有保障。
  2. 在编程实现阶段,随着开发技术的迅猛发展,部分中小厂商或建设使用单位为追求新技术应用,开发中大量采用未经安全检测的开源框架、开源组件等第三方代码进行快速迭代开发,对使用了哪些开源组件或开源组件的哪个版本并不了解。建设使用单位对使用开源组件、开源代码的情况缺少要求和限制,给应用系统带来不可控的安全风险。
  3. 在验收和上线运行阶段,建设使用单位主要对应用系统业务功能进行测试验收,缺少对源代码安全漏洞、业务逻辑漏洞等的安全性测试,缺少开发人员参与的安全加固,往往不知道是否存在安全漏洞,对已发现的安全漏洞不知如何修复,导致应用系统带病上线带病运行。

3对外包开发的安全风险管控措施实践

为保障应用系统源代码安全质量,微软提出从安全管理角度指导应用系统开发过程的安全开发生命周期(SecurityDevelopmentLifecycle,SDL)理念,经过世界主流厂商多年实践和不断改进,发展成为安全—软件开发生命周期(SecureSoftwareDevelopmentLifecycle,S-SDLC)等方法论,其理念是将安全与软件开发全过程融合,通过在软件开发生命周期中每个阶段执行必要的安全实践,使安全风险最小化、安全威胁最少化。SDL的实施在一定程度上降低了发布运行后安全漏洞的数量,被各大软件厂商广泛采用。

但是,SDL、开发安全运维一体化(DevSecOps)等安全开发理念都主要是针对开发厂商的实施或实践方法,对应用系统建设使用的甲方单位,特别是在外包开发的场景下,甲方单位也迫切需要介入整个安全开发过程中。本文利用SDL安全开发理念,从建设使用单位的角度,针对外包开发全流程进行代码安全管控策略设计和技术保障措施研究,通过参与关键流程活动,协助开发出既符合安全要求又尽可能减少网络安全漏洞的应用系统。

本文设计的建设使用单位针对外包开发过程中的安全实践措施和策略架构如图1所示。

3.1加强开发厂商的选择与安全培训

外包应用系统开发时,在厂商具有相应资质的基础上,建设使用单位应重点考察开发厂商的安全开发能力和安全管理水平,包括:

  • 是否建立了安全开发生命周期管理体系,拥有安全开发流程和安全编码规范
  • 是否具备专业、经验丰富的安全人员,并建立了安全开发团队
  • 是否定期开展安全培训,提高开发人员的安全意识和安全技能
  • 是否开展过源代码安全审计或渗透测试等安全评估活动

在确定合作厂商后,建设使用单位应组织开发厂商进行安全意识和安全技能培训,内容包括安全开发生命周期、安全编码规范、安全工具使用等方面,提高开发人员的安全素养。

3.2参与需求评审和设计评审

在需求评审阶段,建设使用单位应参与需求评审活动,重点关注需求规格说明书中是否明确了应用系统的安全要求,包括:数据安全、访问控制、异常处理等方面。在设计评审阶段,建设使用单位应参与设计评审活动,重点关注设计文档中是否体现了安全设计原则,是否采用了安全设计模式和技术。

3.3参与代码审查和渗透测试

在代码审查阶段,建设使用单位应参与代码审查活动,重点关注代码中是否存在安全漏洞和安全缺陷,包括:缓冲区溢出、SQL注入、跨站脚本攻击等常见漏洞。在渗透测试阶段,建设使用单位应聘请第三方安全测试机构进行渗透测试,重点关注应用系统的安全漏洞和安全缺陷。

3.4要求使用安全开发工具和平台

建设使用单位应要求开发厂商使用安全开发工具和平台进行开发,包括:

  • 静态代码分析工具,用于自动扫描和检测源代码中的安全漏洞和安全缺陷
  • 动态分析工具,用于检测应用运行时的安全问题,如缓冲区溢出、内存泄漏等
  • 安全开发环境,用于隔离和控制开发环境,防止恶意代码和攻击

3.5开展源代码安全审计

在应用系统开发完成并验收通过后,建设使用单位应聘请第三方安全审计机构开展源代码安全审计,重点关注:

  • 安全开发生命周期执行情况
  • 安全编码规范遵守情况
  • 安全漏洞和安全缺陷是否存在
  • 安全风险评估和处置情况

3.6安全运营和维护

在应用系统上线运行后,建设使用单位应建立并实施安全运营和维护机制,包括:

  • 定期进行安全漏洞扫描和渗透测试
  • 及时修复已发现的安全漏洞和安全缺陷
  • 对安全事件进行应急响应和处置
  • 定期开展安全意识培训和安全演练

4结语

通过实施本文提出的安全实践措施和策略,建设使用单位可以有效地管控外包开发应用系统的源代码安全风险,从源头减少安全漏洞,提高应用系统的安全性。安全开发生命周期理念的引入,强调了安全


企业应如何规避IT外包风险?

企业规避IT外包风险的方法:1.减少核心业务外包。 根据调查,企业信息泄露的80%来自企业内部,例如来自对公司或领导不满的员工等。 公司在决定IT外包之前,必须确定外包的部分包含的公司数据量较少。 2.制定外包工作进行期间的规范,例如,不得携带存储设备进入工作场地等。 3.法规制约。 检查外包公司是否遵循数据隐私法案和特殊行业法规,例如萨班斯法案、HIPPA、ISO等。 4.技术保证。 检查外包供应商是否具备保障信息安全的技术条件。 5.公司在选择外包供应商之初,应该首先查看外包供应商的保密政策,并在外包合同中明确保密协议和信息泄露后的责任归属。

如何控制软件外包的风险

审慎地选择合适的IT服务商、制定详细而全面的外包合同、制定外包相关管理规定和KPI,以及引入第三方负责监督系统建设全过程的监理等这些具体的防范手段都被大多数专家提起。 从以往税务IT外包成功运营的经验看,可以从确立外包管理工作原则,并从制度、流程、考核三方面入手,抓好外包管理工作。 湖南省地方税务局信息中心 杨米加:其一要高度重视IT外包风险。 IT在税务系统中的地位日益重要,因此对于IT外包的风险管理更要引起领导的重视。 税务部门要有一定数量的IT专家和风险专家组成的专门管理IT外包风险的机构或组织,定期召开例会,及时通报IT外包过程中遇到的各种问题和潜在的风险。 发现比较大的风险隐患时,一定要向上一级风险管理机构汇报,以便采取及时有效的防范措施。 同时,在资本金管理方面,也要为IT外包业务提取必要的风险准备,以应对不可预料的IT外包的风险发生。 其二要选择合适的IT服务商。 选择IT服务商时,应根据项目的实际情况,结合以往的工作经验,选择真正符合自己标准的公司。 税务部门的管理机构必须对IT服务商进行评估以决定其财务和营运方面的能力是否能够满足税务部门现有和未来发展的业务需求。 在选择IT服务商时,必须对服务商支持外包业务的技术能力和水平、关键技术人员的综合素质和业务能力、业务处理的操作能力和控制突发事件的能力以及服务商的财务状况等4个方面进行全面评估,以此选择业务能力强、信誉好的服务商。 其三重视人员配备和提高管理技术。 将IT项目外包后,作为建设单位,税务部门不能对工程项目放任自流,不闻不问,而要积极参与到项目的实施过程中,对工程项目进行过程化管理,才能保证工程的质量。 如果条件允许,税务部门应该多安排人员参与,才可能在项目过程中更多地跟踪服务商的工作,方便未来的维护。 同时,税务部门应培养一支自己的IT队伍,这支队伍能够有效监控所提供的IT服务,能够在问题发生前提前采取行动,避免由于IT服务措施不当而使税务部门遭受重大损失。 另外,税务部门本身的技术人员逐步由实施转向实施与项目管理并重,技术人员不但要学习最新的IT技术,同时要掌握一定的项目管理知识,以适应不断发展的技术要求。 其四制定详细而全面的外包合同。 外包合同是实现外包策略至关重要的一个环节, 外包合同制定的全面与否,将直接决定着外包服务的成败,也直接关系着税务部门在未来的风险程度。 税务部门与IT服务商在制定外包合同时,应该注意以下几个方面的问题:确定外包服务的定义,明确外包服务的范围和灵活性的外包协议;明确双方在合同中的权力和义务,尤其要明确发生问题时的赔偿责任与解决争端的程序;合理的服务级别说明和度量;安全性和保密性的要求;突发应急事件的应急方案与具体实施计划;限制外包费用增加和终止合同的权利;分包合同与多重外包服务商的关系等。 其五强化项目的监督控制。 监控外包风险的目的是从定性和定量的方法来监控IT外包风险的暴露,保证足够的控制手段和体系发挥作用,在风险发生之前彻底解决。 在IT外包合同执行期间,税务部门应高度重视对服务商的持续的、有效的监督。 应成立包括IT专家、风险专家、审计专家等组成的监管组,定期和不定期地对服务商进行有效的监管,监管主要应包括以下内容:监控服务商的财务状况和经营状况;监控服务商的服务质量和技术支持水平;监控服务商内部关键人员的变动情况,尤其是服务商高层的变动,为税务部门提供IT服务的关键技术人员的变动情况;监控服务商全面履行合同的情况;监控服务商把服务再次分包的情况。 深圳市国税局信息中心 肖胜球:重点应把握以下几方面:首先,要慎重选择外包供应商。 选择一个好的供应商外包就成功了一半。 在选择供应商前,一定要对外包项目进行认真细致的分析,明确提出各项具体要求,本着“做你最拿手的,其余的让别人去做”的原则谨慎地对供应商进行选择,争取为每个外包项目选择到最适合的承包方。 其次,要加强外包的沟通管理。 外包项目的沟通比一般项目更加重要,沟通管理是影响软件外包项目质量的一大因素。 一要确定可以采用的沟通方式,以及什么情况下应该采用什么沟通工具(现场交流、电话交流、电子邮件、在线交谈等)。 二要确定交流的时机和频率,包括承包方提交进度报告和双方召开项目实施交流会。 另外,为能够有效地进行沟通和监控,应注意:承包商的项目联系人员必须是直接参与开发项目的主要人员,最好是开发组的主管。 第三,要加强外包项目的计划与进度控制。 项目计划和进度的控制对外包项目来说尤为重要,这也是确保项目顺利实施的关键因素之一。 金税工程三期项目管理工作千头万绪,工作过程千变万化,外包过程中没有一个完整的工作计划和综合协调是无法实现预期目标的。 第四,要制定外包相关管理规定和KPI。 相关管理规定是指针对外包制定的一系列的管理制度、工作规章和流程,要确保外包工作开展前双方达成共识,并作为后序工作的基础。 最后,要引入外包的经济责任追究制度。 因外包公司责任导致信息系统开发延误或发生故障时,外包管理执行部门将根据故障的具体情况进行责任认定、资源损失评估,编制安全责任事故和资源损毁责任事故处理报告书,对外包公司进行经济责任追究。 深圳地方税务局数据处理中心 薛海波:如果没有风险意识,如果在项目建设过程中疏于管理,如果在项目建设结束后没有及时实现技术转移,幻想着“一包就灵”是不现实和不负责任的。 须知,在复杂多变的税务系统实施信息化建设采取交钥匙工程是注定要失败的,应该主要从以下几个方面规避外包带来的风险。 首先,必须慎重选择承建商;其次,必须慎重选择外包项目,仔细研究税务信息化的哪些方面可以外包;第三,必须引进和培养大量的税务信息化专业技术及管理人才。 二十年多年的税务信息化的经验充分证明,是否建立有效的信息化管理机构和信息化专业人才队伍是信息化建设成败的关键。 外包过程必须有4驾马车——开发商、监理、IT运维和专家委员会在同时运作,而且还要建立相应的机制,催生两个行业,制订相应的规范,从而才能建立好的外包产业环境。 现在的外包条件并不是很成熟。 外包需要监理的参与,还有就是创造外包条件。 参照房地产的方法,北京地税信息系统的运维就象物业公司,首先被分离出来,监理则主要负责监督系统建设的过程,而系统运行后期的长期责任是由运维部门承担。 北京地税也因此做了一个利益分配,即按照责任时间长短进行利益分配。 当我们把机制建设好,才能将外包做好。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: 源代码安全