当前位置: 首页 > 科技观察

安全开发如何“无痛交付”?

时间:2023-03-20 20:17:18 科技观察

1。“火爆”的视频会议软件市场滑铁卢2020年初,一场突如其来的疫情让某知名视频会议系统的日活跃用户数从1000万飙升至2亿,一度被资本市场看好关于它。但好景不长,因为该系统暴露出严重的隐私和安全问题,股价受挫,商业信誉严重受损,被多家政府机构和高科技公司取缔。该视频会议软件的安全事件归根结底是由于开发安全失败。相信它的安全团队和开发部门一定为此经历了很多不眠之夜。其实早在2004年,微软就提出了SDL,强调在早期的开发过程中就应该涉及到安全,从根本上控制应用程序的安全。在2020RSA大会上,主打将安全融入DevOps流程的DevSecOps更是大放异彩。本文将从安全部门的角度出发,针对安全开发实施过程中容易被忽视的赋能和运营问题,希望能给大家一些思路。2、保卫部门的困境保卫部门处境尴尬。受制于业务开展的需求,安全往往需要为业务让路。但是从上面视频会议软件的案例中,我们也可以看出安全对于业务的重要性。无论是对业务的贡献,还是合规性要求,甚至更实际——安全人员自身的表现,都应该进行安全开发体系建设的工作。关于安全开发体系建设中普遍存在的难点,我们先来看两个案例:案例一:某传统制造企业,业务正在互联网化转型,应用开发项目逐渐增多,但安全团队规模仍然较小(较少5人以上),没有人手进行安全测试、代码审计等安全工作,更谈不上安全开发体系的建设。案例二:某科技银行拥有规模庞大的安全团队,仅安全测试就有几十人,测试团队每年人工成本上千万(一线城市)。随着项目的逐年扩大,测试工作也随之增加,但人力成本不可能无限增加。一般来说,实施安全开发的常见困难包括:人手不足:安全人员严重短缺;人员阻力:保障能力不足,保障工作量增加但绩效无法体现;流程变更:安全介入,导致流程变更,短时间内无法适应;项目周期紧:开发周期本来就很紧,但加入安全工作后,时间更紧了。3、安全赋能,合作共赢无论是人手不足的小型安全团队,还是人手充足的成熟安全团队,解决上述难题最有效的方法就是赋能。但赋能也要讲究方式方法,否则可能适得其反。1、制度合理合理高效的管理制度是确保开发安全可控的前提。安全开发管理体系需要明确安全干预的时机和每个角色需要执行的安全动作(安全工作和输出),以确保安全开发控制过程执行到位。但是,这已经侵入了之前的过程。在进行制度设计时,尽量避免创建新的制度和流程,采取对现有制度和流程进行修改和优化的方式,降低实施门槛。2、定期培训对于缺乏安全经验的产品和开发人员,应提供必要的安全培训(系统、意识、技能)支持,帮助相关人员提升安全能力,完成相关安全工作。需要提供给不同人员的培训内容也不同。下表是培训内容的一些参考:3.合作态度。参与,安全团队不要让大家觉得安全部门任务过重,设置卡点,必须配合协作。重点应该是为解决前期的安全问题提供帮助。例如:某传统行业的技术子公司,在实施安全开发系统之前,对开发部门进行研究。注入和隐私数据安全问题。安全部门将这些问题作为安全开发体系实施过程中的课题,提供编码安全规范和代码示例,指导开发人员提高代码质量,从源头上避免这些问题。代码提交后,通过IAST测试平台(交互式动态测试)帮助开发者查漏补缺。而且IAST发现的漏洞的细节非常详细:漏洞对应的代码位置、执行过程展示、修复方法和示例代码,甚至还提供了可以直接引用的安全组件,尽一切可能帮助开发者重现和修复漏洞。注:目前市场上应用安全测试的解决方案很多,其中最古老、使用最广泛的是SAST(静态)和DAST(动态)测试工具,通过源代码(SAST)或公共外部接口(DAST)运行对应用程序的安全扫描可以在应用程序上线之前识别并纠正许多漏洞。然而,随着DevSecOps的广泛接受,Gartner在2017年的一份研究报告中明确提倡用交互式应用程序安全测试(IAST)替代SAST和DAST。在后续的安全开发系统的实施中,开发部门配合的非常好。在20多个试点项目中,发现并修复了近千个逻辑越界漏洞和数百个SQL注入漏洞,私有数据的安全性也得到了极大提升。4.高效的安全工具就像上面提到的例子,IAST可以帮助开发者排查和修复漏洞。这样做的根本意义在于,安全工具可以为安全能力相对较弱的人员提供安全赋能。通过选择门槛低、检测效率高的安全工具,可以在极短的时间内完成相关环节的安全工作。另一方面,在使用优秀的安全工具的过程中,相关人员对安全知识的掌握和意识也会大大提高。5、知识库支持知识库主要用于提高人员的安全能力和工作效率。例如,一般的产品经理不具备威胁建模的能力,需要提供威胁建模的知识库。知识库会给出具体业务场景下的安全威胁和相应的安全需求,帮助产品经理快速准确地完成威胁建模。一个优秀的知识库需要长期的积累,通常需要由安全部门进行维护和更新,解决项目中积累的问题,不断提升赋能效果。4、安全运行,解决执行难题。赋能可以解决能力和效率的问题,但解决不了执行力的问题。需要配合安全运行,对系统的运行效果进行监控和提升。需要根据实际情况综合考虑,选择合适的运行方式。这里有一些操作尺寸作为参考。单个项目操作卡点:查看各个环节的输出,如:安全需求表、设计方案、安全测试报告...漏洞检测及修复状态,如:代码安全测试报告、IAST安全测试报告、渗透测试报告、未修复的漏洞和缓解方案……全球安全运营:全球漏洞统计:漏洞类型、漏洞数量、漏洞误报率、漏洞修复率……知识库沉淀:自定义漏洞检测规则、知识库更新报告…….个人绩效考核:项目经理:项目评级合理性产品经理:安全需求的全面性和合理性开发人员:漏洞自检发现率、漏洞密度、漏洞修复及时性...,SecurityFunctionTestAccuracy这里要强调的是t建立个人绩效指标不仅是对相关人员安全工作完成情况的考核,也是对个人绩效的反映,应考虑在项目评审和年度考核中增加这方面的权重。在提高人员积极性的同时,也为公司留住了安全发展领域的宝贵人才。5、重点突破点,高层支持除了以上几点,安全开发体系要想推广好,最重要的是要获得IT高层领导的认可,从而获得足够的行政资源推进:购买专业的咨询服务,获取专业的系统建设建议和成熟的知识库,协调和监督各部门的参与,完成管理制度和文化的迁移。增加各岗位安全发展部分的人力绩效预算。购买安全工具。并且有可以看到结果的环节开始建设,比如IAST测试,用实际的结果来争取高层的支持。6.写在最后安全发展体系建设,通过赋能与运营相结合,在高层管理支持下,帮助安全部门构建安全发展在诸多不利环境下的管理体系,如人手不足,项目扩张过快。帮助安全部门改变被动状态,获得应有的地位,发挥应有的作用,避免企业的核心业务因为安全问题被绊倒。安全牛回顾2020COVID-19大流行为互联网行业提供了一次大展身手的机会,但不幸的是,从智能硬件、视频会议、社交到互联网的产品安全问题,行业大佬纷纷扑街在磁盘业务中,一系列重大安全违规事件层出不穷,不仅严重威胁着用户的隐私和数据安全,也给企业的品牌、业务和市场价值带来极大的损害。从网络安全经济学的角度来看,产品安全不是一个“产品”的问题。冰山之下是一个全球性的问题——如何安全地实现敏捷和数字化,如何打通应用安全、数据安全/隐私保护的经脉,如何整合SecStuffingDevOps,绝非把大象塞进冰箱那么简单。构建全局和敏捷的安全能力不能仅靠企业安全团队来完成。这应该是所有企业主的责任,尤其是CEO。【本文为专栏作者“安安牛”原创文章,转载请通过安安牛(微信公众号id:gooann-sectv)获得授权】点此查看作者更多好文