金融服务机构有充分的理由确保其使用的软件代码是安全的。当然,一个显而易见的原因是需要保护他们的数据不被泄露,因为泄露的 PII、清理费用、罚款和赔偿以及对机构声誉的损害都会带来高昂的代价。另一个持续的原因是需要遵守一系列行业和政府法规。
由于金融服务处理大量敏感的个人和财务信息以及人们的资金,因此是一个受到严格监管的行业。根据所提供服务的不同,公司必须遵守各种规则和要求。
例如,支付卡行业数据安全标准(PCI DSS)因其保护持卡人数据的规定而闻名。萨班斯-奥克斯利法案》(Sarbanes-Oxely Act)对财务记录管理做出了规定。开展国际业务的公司都熟悉《数字运营弹性法案》(DORA)(这是一个具有约束力的风险管理框架),以及环球银行间金融电信协会(Swift)制定的全球资金转账标准。
加州消费者隐私法案》(CCPA)和《欧盟通用数据保护条例》(GDPR)等法律都对保护客户隐私和个人信息提出了要求。还有其他一些法律,如美国货币监理署(OCC)和欧洲中央银行(ECB)制定的法规。
如果这还不够,《国家网络安全战略》还特别指出,软件制造商应为无效的软件安全负责。网络安全和基础设施安全局(CISA)与 17 个美国和国际合作伙伴一起,发布了软件开发的安全设计原则指南。
金融服务公司的一个共同点是,安全代码是帮助实现这些法规目标的关键因素,有助于更轻松地证明符合这些法规。这也强调了为什么开发人员需要培训和提高技能,以确保在开发流程的一开始就对代码实施安全保护。
以最新版的 PCI DSS 为例,我们来看看它是如何运作的。
安全编码(和开发人员培训)是 PCI DSS 4.0 的核心内容
PCI DSS 4.0 于 2024 年 4 月 1 日强制实施,其中包括对 PCI DSS 3.2.1 的几项重大更新--其中最重要的是强调了开发人员在确保软件代码安全方面的作用。
PCI 在过去早已认识到安全软件的重要性。2017 年发布的 2.0 版包含了对开发人员的指导,以确保移动设备上的安全交易。现在,4.0 版中的指南强调将安全最佳实践应用于软件开发,并包括一些关于开发人员培训的具体指导。
尽管公司可能希望采用更彻底的方法,但这些要求通常都是概括性的。
例如,4.0 版中的一项要求指出,"开发和维护安全系统和软件的流程和机制是确定和理解的"。确保做到这一点的一个好办法就是让开发人员接受有关他们正在使用的编程语言和框架的精确培训,以填补任何知识空白。
另一项要求规定,开发定制软件的开发人员必须至少每 12 个月接受一次培训,培训内容包括
- 与其工作职能和开发语言相关的软件安全。
- 安全软件设计和编码技术。
- 如何使用安全测试工具(如果正在使用)来检测软件中的漏洞。
但实际上,一年一次的培训并不足以解决核心安全问题和改掉不良的编码习惯。培训应该是持续的、可衡量的,并有一个技能验证过程,以确保培训得到很好的利用。
PCI DSS 4.0 还包括六十多项其他要求,涉及的领域包括预防和减轻各种类型的攻击、记录第三方软件组件、识别和管理漏洞以及其他安全措施。在每种情况下,组织最好都能彻底执行这些措施。有关攻击载体的培训应经常进行,而不是每年一次。第三方组件经常是漏洞的来源,应通过软件物料清单(SBOM)计划仔细清点。组织应确保明确界定管理漏洞的职责。
新版本还为组织满足其要求提供了一定的灵活性,注重结果而不是勾选方框,同时增加了对身份验证控制、密码长度、共享账户和其他因素的新要求。
合规始于 SDLC 之初
这些法规的共同点是,它们试图为保护金融服务业的数据和交易设定高标准。而且,正如最新版的 PCI DSS 一样,它们越来越强调在软件开发生命周期(SDLC)之初安全代码的重要性。国家网络安全战略》和 CISA 的 "设计安全 "原则也要求软件制造商在软件出厂前承担安全责任,因此即使不受金融服务法规直接管辖的公司也需要遵守。
企业需要弥合 DevOps 团队(专注于开发速度)和 AppSec 团队(急于将安全纳入流程)之间存在的差距,方法是培训开发人员,使安全成为他们的固有方法。然而,这需要一套复杂的技能,其涉及的内容远非每年一次的培训课程或标准、停滞的教育计划所能提供的。培训应该是持续的、灵活的,通过积极的、真实世界的场景来吸引学员,并根据他们的工作时间安排分批进行。
金融服务公司需要确保安全,既要防止外泄,又要遵守日益严格的法规。就对公司声誉的影响和金钱成本而言,不合规的成本可能与外泄一样具有破坏性。例如,IBM 的《2023 年数据泄露成本报告》(Cost of a Data Breach Report 2023)发现,违规程度较高的企业平均面临的罚款和其他成本总计达 505 万美元,比实际数据泄露的平均成本高出50 万美元。
基于云的环境和数字交易的持续增长使得金融服务行业的软件安全变得至关重要,这也是 PCI DSS 等法规所认可的。确保软件安全的最佳方法是在 SDLC 开始时就进行安全编码。而实现这一目标的方法就是对开发人员进行有效的安全编码培训。
要全面了解安全编码如何帮助金融服务公司确保成功、安全和利润,您可以阅读最新发布的Secure Code Warrior 电子书:金融服务安全趋势终极指南。
查看 Secure Code Warrior博客页面,了解有关网络安全、日益危险的威胁环境的更多信息,以及如何利用创新技术和培训来更好地保护您的组织和客户。