Gartner预测,到2025年底,[超过65%的开发项目]将使用低代码构建器。低码领域不断扩大。但是低代码带来了哪些安全隐患?
[低代码]是指使用可视化编程模型来构建应用程序的工具。[无代码和低代码平台]采用拖放组件而不是传统代码,[从而]使非技术人员无需IT部门的帮助即可构建自己的工作流程。但是,在安全培训较少的情况下将权力交给公民开发人员可能会带来风险。另外,低代码平台可能拥有受损的专有库,或者利用了可能会在不知不觉中将敏感数据暴露给外界的API。如果管理不当,低代码也有可能[增加影子IT]。
低代码打开了更多生产者的大门。但是,它也打开后门吗?我最近与Veracode的首席技术官兼联合创始人Chris Wysopal会面,讨论了低代码应用程序带来的日益增长的安全风险。克里斯认为,强化低代码环境涉及隔离,动态和运行时技术的结合,并全面采用“尽可能少的特权”规则。下面,我们将扩展潜在的低代码风险,并查看Wysopal建议组织采用哪些其他方法来保护新兴的低代码范式。
低代码安全问题
Verizon的2020年数据泄露调查报告(DBIR)发现,所有违规事件中有43%[与应用程序层]的[漏洞有关]。因此,保护这些应用程序,或者在低代码的情况下,保护它们的生成层,对于业务平稳运行至关重要。
当涉及低代码时,Wysopal会注意到一些关键的风险区域:
具有隐患的专有库。从本质上讲,低代码平台通常使用大量专有软件,从而使它们的保护有些不透明。这些系统可能涉及专有语言,专有库和专有框架。如果您信任低代码平台,那么您会对低代码供应商抱有很大的信心,以建立一个强大的安全流程。
某些平台会生成传统代码,组织可以将其导出以在Node.JS或Java服务器上运行。Wysopal说,然而,这通常涉及代码和专有库的混合。尽管您可以对生成的代码运行传统的静态分析,但是可能会错过一些上下文。
缺乏公民开发商安全培训。[公民开发]人员几乎没有技术知识,更不用说[DevSecOps培训了]。如果运行时应用程序存在漏洞,则期望无代码用户缓解这些漏洞是不现实的。
API集成。如果低代码平台公开了API或通过API生成了Web应用程序,则该平台可能公开了敏感数据。
强化低代码环境的方法
为了应对这些领域,Wysopal提供了一些有关保护低代码环境的建议:
- 执行静态代码分析:对任何生成的代码执行自己的静态分析,并测试常见错误。Wysopal建议:“看看代码,了解它与外界的相互作用。”
- 审计专有库:Wysopal表示,只要有可能,他建议不要让供应商对他们的应用程序安全标准提出质疑,并检查专有库的潜在风险。
- 验证合作伙伴:同样,在与低代码工具的第三方合作伙伴合作时,请采取预防措施。合作伙伴工具应经过仔细审查,并获得低代码平台的某种应用程序安全认证。
- 保护API层:了解应用程序与之交互的API。这些连接应使用API扫描程序动态自动进行测试。在您的旅途中,请考虑[这些API安全测试最佳实践]。
- 隔离:Wysopal还建议使用传统的隔离技术。不仅仅考虑应用程序层;Wysopal建议隔离该应用程序并在虚拟机或容器中运行它。
- 针对公民开发人员的安全培训:由于公民开发人员通常不接受有关appsec惯例的培训,因此请进行安全演习以对他们进行基础培训。一个有用的演示可能涉及直接攻击应用程序以发现缺陷。
- 应用可能的最小特权规则:分配用户功能时,请尽可能使用默认安全设置,并仅允许需要此功能的用户访问。
通过应用动态和运行时技术,您可能会发现漏洞,例如跨站点脚本错误。但是,如果您正在使用专有的低代码系统,则可能无法立即对其进行修复!您可能必须向供应商发送请求,然后等待对该错误进行修补。Wysopal指出,值得庆幸的是,大多数技术提供商对错误的响应要比对功能请求的响应更为及时。
更改对安全性的态度
Wysopal说,在[低代码范围内],人们的态度是“人们并没有真正在执行关键任务应用程序-他们主要是在进行原型设计或后台办公自动化”。或者,由于低代码应用程序通常不公开公开应用程序,因此它们被认为是低风险的,并落在安全团队的收件箱和待办事项清单的底部。他说:“我们仍处于人们无法保护所有应用程序安全的世界。”
但是,这些态度有点短视,因为“应用程序不是孤岛”,Wysopal说。即使应用程序仅供内部使用,网络钓鱼尝试也可能会暴露凭据并获得对网络的访问权限。在这里,攻击者可以利用敏感资源或窃取基础设施来获得计算能力。
因此,所有低码用户应意识到潜在的威胁,并改变习惯以相应地应对这些风险。但是,低代码供应商也有责任充分武装他们的系统。要不断修补问题,必须有一个漏洞披露信息,一项赏金计划以及一种接受白帽安全研究人员的错误报告的简便方法。
无代码≠无错误
低代码继续渗透到越来越多的数字操作中,[为公民开发人员]打开了[新的潜力]。虽然[低代码运动]的承诺可观的回报,也带来了潜在的风险。
Wysopal说,为减轻这些担忧,我们必须加深对安全的了解并发展我们的方法。“任何应用程序中都可能存在缺陷和安全漏洞。” 仅仅因为您没有用C语言编写函数,而是依靠可视化编程模型并不意味着您就没有引入缺陷。
网友评论