转载 低代码开发

作者:BILL DOERRFELD 来源:DevOps.Com

打开网易新闻 查看更多图片

Gartner预测,到2025年底,超过65%的开发项目将使用低代码构建,低代码领域不断扩大。但是低代码带来了哪些安全隐患?

低代码是指使用可视化编程模型来构建应用程序的工具。无代码和低代码平台采用拖放组件代替传统代码,使非技术人员无需IT部门的帮助即可构建自己的工作流程。

但是,在安全培训较少的情况下将权力交给公民开发人员可能会带来风险。此外低代码平台可能拥有受损的专有库,或者利用了可能会在不知不觉中将敏感数据暴露给外界的API。如果管理不当,低代码也有可能增加影子IT。

低代码打开了更多生产者的大门。但是,它也打开后门了吗?

我最近与Veracode的首席技术官兼联合创始人Chris Wysopal会面,讨论了低代码应用程序带来的日益增长的安全风险。

Chris认为,强化低代码环境涉及隔离,动态和运行时技术的结合,并全面采用“尽可能少的特权”规则。下面,我们将扩展潜在的低代码风险,并查看Wysopal建议组织采用哪些其他方法来保护新兴的低代码范式。

01 低代码安全问题

Verizon的2020年数据泄露调查报告(DBIR)发现,所有违规事件中有43%与应用程序层的漏洞有关。保护这些应用程序,或者在低代码的情况下,保护它们的生成层,对于业务平稳运行至关重要。

当涉及低代码时,Wysopal会注意到一些关键区域的风险:

■ 具有隐藏漏洞的专有库。从本质上讲,低代码平台通常使用大量专有软件,这使它们的保护有些不透明。这些系统可能涉及专有语言,专有库和专有框架。

有些平台会生成传统代码,组织可以将其导出以在Node.JS或Java服务器上运行。Wysopal说,这通常涉及代码和专有库的混合。虽然可以对生成的代码运行传统的静态分析,但是可能会丢失一些上下文。

■ 缺乏安全培训。公民开发人员几乎没有技术知识,更不用说DevSecOps培训了。如果运行时应用程序存在漏洞,期望无代码用户解决这些漏洞是不现实的。

■ API集成。如果低代码平台公开了API或通过API生成了Web应用程序,则该平台可能公开了敏感数据。

02 强化低代码环境的方法

为了应对这些领域,Wysopal提供了一些有关保护低代码环境的建议:

  • 执行静态代码分析:对任何生成的代码执行自己的静态分析,并测试常见错误。Wysopal建议:“查看代码,了解它与外部的交互位置。”
  • 审计专有库:Wysopal表示,只要有可能,他建议不要让供应商对他们的应用程序安全标准提出质疑,并检查专有库的潜在风险。
  • 验证合作伙伴:同样,在与低代码工具的第三方合作伙伴合作时,请采取预防措施。合作伙伴工具应经过仔细审查,并取得低代码平台的某种应用程序安全认证。
  • 保护API层:了解应用程序与之交互的API。这些连接应使用API扫描程序动态自动进行测试。
  • 隔离:Wysopal还建议使用传统的隔离技术。不仅仅考虑应用程序层;Wysopal建议隔离该应用程序并在虚拟机或容器中运行它。
  • 针对公民开发人员的安全培训:由于公民开发人员通常不接受有关appsec惯例的培训,因此请进行安全演习以对他们进行基础培训。一个有用的演示可能涉及直接攻击应用程序以发现缺陷。
  • 应用尽可能少的特权规则:分配用户功能时,请尽可能使用默认安全设置,并仅允许需要此功能的用户访问。

如果您正在使用专有的低代码系统,可能无法立即对发现的漏洞进行修复,而是必须向供应商发送请求,等待供应商对漏洞进行修补。Wysopal表示,“值得庆幸的是,大多数技术提供商对错误的响应要比对功能请求的响应更为及时”。

03 改变对安全性的态度

Wysopal说,在低代码范围内,人们的态度是“人们并没有真正在执行关键任务应用程序,他们主要是在进行原型设计或后台办公自动化”。

或者,由于低代码应用程序通常不会公开某个应用程序,因此它们被认为是低风险的,它们的安全等级和优先级最低。安全团队会说:“我们没有办法保护所有应用程序的安全。”

但是,这些态度有点短视,因为“应用程序不是孤岛”,Wysopal说。即使应用程序仅供内部使用,网络钓鱼尝试也可能暴露凭据并获得对网络的访问权限。在这里,攻击者可以利用敏感资源或窃取基础设施来获得计算能力。

因此,所有低码用户应认识到潜在威胁,并有应对风险的意识。低代码供应商也有责任充分武装他们的系统。要不断修补问题,披露漏洞信息,如有必要可以发布赏金计划或者接受白帽安全研究人员检测。

04 无代码≠无错误

低代码继续渗透到越来越多的数字操作中,为公民开发人员打开了新的潜力。虽然低代码带来了可观的回报,但它也带来了潜在的风险。

Wysopal说,为减轻这些担忧,我们必须提高对安全的认识,改进我们的方法”。“任何应用程序中都可能存在缺陷和安全漏洞。” 仅仅因为您没有用C语言编写函数,而是依靠可视化编程模型,并不意味着没有漏洞。

重视安全的低代码平台才能获得长足发展。否则,带有安全隐患无疑是一枚定时炸弹,终将伤人伤己。