如今,公民开发者的积极性越来越高,同时企业也希望由非开发者开发和创建应用程序。这通常使用低代码或无代码框架来促进。这些框架和工具允许非开发人员使用GUI来获取和移动组件,以制作业务逻辑友好的应用程序。
授权更广泛的IT和业务社区创建应用程序以推动业务价值具有明显的吸引力。也就是说,使用低代码和无代码平台并非没有安全问题。就像任何其他软件产品一样,开发平台及其相关代码的严谨性是一个不容忽视的问题。
什么是低代码/无代码开发?
无代码工具和平台使用拖放界面来允许业务分析师等非编程人员创建或修改应用程序。在某些情况下,可能需要编码(低代码)来与其他应用程序集成、生成报告或修改用户界面。这通常使用SQL或Python等高级编程语言来完成。
低代码/无代码平台的示例包括Salesforce Lightning、FileMaker、Microsoft PowerApps和Google App Maker。以下是使用此类平台时应该注意的四个最重要的安全问题。
(1)低代码/无代码应用程序的可见性低
使用由外部开发的平台总是会带来可见性问题。很多人使用这些软件,却不了解源代码、相关漏洞或平台所经历的潜在测试和严格程度。
这可以通过利用向供应商申请软件物料清单(SBOM)等做法来缓解。这将提供对其包含的软件组件及其相关漏洞的深入了解。使用最新的Linux基础研究表明,78%的企业计划在2022使用软件物料清单(SBOM)。尽管如此,软件物料清单(SBOM)的使用仍在发展,该行业还有很大的发展空间规范实践、流程和工具。
(2)不安全的代码
与可见性问题相吻合的是不安全代码的可能性。低代码和无代码平台仍然有代码。他们只是抽象了编码,并允许最终用户使用预先提供的代码功能。这很好,因为它使非开发人员无需自己编写代码。当使用的代码是不安全的,并且通过低代码和无代码平台在企业和应用程序之间进行推断时,就会出现问题。
解决这个问题的一种方法是与平台供应商合作,要求平台内使用的代码的安全扫描结果。静态和动态应用程序安全测试(SAST/DAST)等扫描结果可以为消费者提供一定程度的保证,即他们不仅仅是复制不安全的代码。在企业控制之外创建代码的想法并不是一个新概念,并且在开源软件的使用中很普遍,98%以上的企业使用开源软件,并且与其他存储库相关的软件供应链威胁也很常见,例如用于基础设施的代码(IaC)模板。
另一个要考虑的方面是,许多低代码和无代码平台都是以SaaS方式交付的。这使企业可以向供应商申请行业认证,例如ISO、SOC2、FedRAMP和其他认证。这为企业的运营和适用于SaaS应用程序/平台本身的安全控制提供了进一步的保证。
SaaS应用程序本身存在许多安全风险,需要适当的治理和严格的安全性。如果没有对企业正在使用的SaaS应用程序和平台进行适当的审查,可能会让其业务面临不必要的风险。
(3)失控的影子IT
由于低代码和无代码平台允许快速创建应用程序,即使是那些没有开发背景的人员,也可能导致影子IT的泛滥。影子IT发生在业务部门和员工创建应用程序并将它们用在企业内部或外部时。这些应用程序可能包含企业和客户敏感的或受监管的数据,如果这些应用程序在数据泄露中受到损害,可能会对企业产生一系列影响。
(4)业务中断
从业务连续性的角度来看,如果平台出现中断,作为服务交付的低代码和无代码平台可能会中断业务。对于企业而言,为关键业务应用程序(包括低代码和无代码平台)建立服务水平协议(SLA)非常重要。
降低低代码/无代码开发风险的技巧
无论涉及何种技术,通用的安全最佳实践都可以减轻开发风险,其中包括:
从行业声誉良好的值得信赖的供应商那里购买软件和平台。
确保这些供应商拥有第三方认证证书,以代表其内部安全实践和流程。
在企业的应用程序和软件清单中考虑低代码和无代码平台,以及通过使用它们创建的应用程序。
保持良好的访问控制;知道谁在访问平台以及他们被允许执行哪些活动。
实施安全数据实践,以了解关键数据所在的位置,以及使用低代码和无代码平台创建的应用程序是否包含敏感数据。
了解托管低代码/无代码平台的位置。这些平台是否托管在AWS、Google或Microsoft Azure等超大规模全球云服务提供商的云平台中?或者它们是否托管在内部部署数据中心中,仅限于没有物理和逻辑访问控制?
考虑企业的安全文化也很重要。虽然平台用户可能不是行业的开发人员或安全专家,但他们应该了解正在使用和创建的低代码和无代码平台和应用程序的安全影响。正如他们所说,更多的权力伴随着更大的责任,这适用于低代码和无代码平台。