0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

中国工商银行软件开发中心应用安全支撑体系概述

发表时间:2023-10-27 14:03:47

文章来源:炫佑科技

浏览次数:189

菏泽炫佑科技

中国工商银行软件开发中心应用安全支撑体系概述

作者 | 中国工商银行软件开发中心

工行软件开发中心应用安全支撑体系概况

随着安全成为数字时代*重要的问题之一,越来越多的企业已经集成(是“开发、安全和运营”的缩写),在软件开发生命周期的每个阶段自动集成安全性——从*初的设计集成、测试、部署以及一直到软件交付)生命周期,从而进一步增强安全性,并用于简化治理和提高可见性。

主要思想是安全性应该遵循“左移”方法,而不是事后修复和弥补。 根据*新趋势,大约40%的企业正在使用DAST(动态应用程序安全测试,模拟黑客行为对应用程序进行动态攻击,并分析应用程序的响应以确定Web应用程序是否存在漏洞)测试。 50%正在使用SAST(静态应用程序安全测试,通常在编码阶段对应用程序的源代码或二进制文件的语法、结构、流程、接口等进行分析,以发现程序代码中的安全漏洞),其余的的公司使用扫描依赖项和容器来确保软件安全。

工行软件开发中心应用安全支撑体系建设重点关注安全左移、流程控制和安全右移三个方面。 安全左移方面,通过自研IDE插件提前发现安全风险; 在流程控制方面,通过持续集成管道识别和阻断安全风险,通过DAST和IAST持续检测安全问题; 在安全右移方面,安全就是监控,提高可疑流量报警和攻击行为拦截,通过安全右移反馈流程控制。 通过这些措施,安全团队更早地将安全流程和工具纳入软件开发生命周期(SDLC),并将开发和测试阶段的安全问题检出率提高到99.22%。

当前的主要问题和挑战

从公司内部信息安全团队的角度来看,整个研发过程中公司内部遇到的风险点较多。 经过对各种攻击面的梳理和分析,我们发现研发过程中经常提到的主要风险包括三大类:代码安全风险、供应链相关风险、服务器安全,下面将一一讨论。

安全问题的引入-构建-发布过程往往与企业内部的持续集成流水线高度一致。 简单来说,可以抽象成下图:

开发人员编写代码后,提交到源代码管理平台,然后触发CI/CD构建、编译和打包过程。 在这个过程中,构建平台的服务器会从依赖仓库中拉取代码(大型企业往往会搭建自己的Nexus私有服务器)。 获取所需的依赖包,完成构建编译,创建镜像并推送到镜像仓库,通过项目分发平台分发到生产环境,完成系统上线。 从发展的角度来看,这是正常的app开发,但从安全的角度来看中国工商银行软件开发中心应用安全支撑体系概述,却充满了危险。

供应链安全

在引入依赖的过程中,如果引入了有问题的组件,就相当于引入了风险。 这也是目前*典型的供应链攻击方式。 通过我们对各种来源的安全调查和分析,我们发现“中毒”的重灾区是在技术栈。 中毒的主要目的是控制设备进行“挖矿”。 (一个原因是因为前端“挖矿”已经非常成熟,容易被黑产品滥用。另一个原因是机器学习库相当丰富,支持机器学习的计算环境强大,导致在“挖矿”利润会比入侵普通IDC主机更高)。 由于例子很多,这里就不一一列举了。

服务器安全

在研发初期,在已经完成代码完整性测试的前提下,如果流程没有被篡改或者构建平台运行正常,出现问题的概率一般很低。 但如果CI/CD平台像之前的Git一样被恶意篡改或者破坏,也会产生安全风险。 此次事件就是由于这个原因引起的。 攻击者在 CI/CD 过程中嵌入“后门”并传递签名。 经过OTA验证和补丁分发后,令人震惊的攻击发生了。

代码安全

在软件开发过程中,开发人员经常会因为熟练程度、安全意识等多种原因,在开发过程中引入漏洞。 这本身就是一件很正常的事情。 但对于开源软件来说,由于几乎所有人都可以向开源项目提交代码,并且通过审核后就可以合并到项目中,因此可能会有恶意的人故意引入有问题的代码。 这个风险实际上是由于审计疏忽可能直接引入的风险。

应用安全支撑体系建设

工行软件开发中心应用安全支撑体系建设主要围绕应用编写、应用构建、应用发布和持续运行等方面。 通过提供各个阶段完整的工具链支持,实现各个阶段的安全赋能。

申请书撰写流程

工商银行通过自主研发的IDE插件,在开发者编码阶段对代码进行准实时检测并引入依赖。 基于风险特征匹配,提示开发者在编码前期完成安全问题的修复,降低后期修复成本。 这实际上是“安全左移”的*佳实践之一,即将安全程序(代码审查、分析、测试等)移至软件开发生命周期(SDLC)的早期阶段,以防止缺陷发生并尽早发现漏洞。 在问题变成需要昂贵修复的灾难性漏洞之前尽早解决问题,从而节省时间和金钱。

应用程序构建和发布阶段

工行软件开发中心通过在应用构建和发布阶段建立软件物料清单(SBOM),实现软件资产可视化,快速发现和消除安全威胁。 应用软件通常由大量的开源代码、自研代码和第三方库组成。 除了直接引用开源代码和第三方库之外,开源代码在构建阶段往往会引入额外的依赖项。 因此,在软件开发阶段生成SBOM对于提高软件透明度、提高安全事件处理效率具有重要意义。 工行软件开发中心将软件物料清单融入到流程中,并通过CI/CD的标准实践尝试覆盖大部分场景(业务应用系统、作业及其他数据服务、其他运维服务等)。 SBOM中包含的信息将随着管道的进展而不断更新,并且SBOM将作为软件产品的一部分在统一的存储库中存储和管理。 SBOM作为软件信息数据源,为安全操作系统中的各种应用提供软件信息数据支持,包括但不限于安全资产管理、安全信息和事件管理(SIEM)、威胁情报管理等。SBOM集成后配合安全运营平台上的各项业务功能,不仅提高了组件漏洞的可视性,还大大提高了主动应对风险和风险防范的能力。

持续经营

工行软件开发中心通过搭建安全运营平台,实现安全风险的可视化、全生命周期管理。 企业组织不能以牺牲运行时安全性为代价来整体向左移动。 开发人员永远无法编写完美的代码,也无法在发布窗口内对其进行足够广泛的扫描。 扫描程序旨在发现遵循明确模式的已知漏洞或弱点。 因此,安全团队通过监控生产和运营流量来识别威胁和攻击流量并发出警报。 通过构建风险预警与资产关联的基础设施,安全团队可以快速定位并及时修复受攻击的资产,并通过安全右移进行反馈。 过程控制。

结论

罗马不是一天建成的。 即使整体应用安全支撑平台的建设需求和方向确定,实施仍需要分阶段完成。 与其他安全子系统建设一样,工行也将继续从智能化、合规性、多层防御等方面加强应用安全支撑体系建设,在高度变化的威胁环境中保持战略优势。

——往期推荐——

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多