物联网开源组件安全:Node-RED白盒审计

2024-03-23 19:58

本文主要是介绍物联网开源组件安全:Node-RED白盒审计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文|腾讯研发安全团队

Spine、martinzhou

背景

Node-RED是IBM开源的低代码物联网编排工具,在物联网领域有广泛应用,包括研华WISE PaaS、西门子Iot2000、美国groov EPIC/groov RIO等工业IoT硬件也都预装了Node-RED。此外,它亦常被作为低代码开发平台使用。

A large proportion of our users are individuals who run Node-RED on personal devices - a laptop, a Raspberry Pi or a virtual machine in the cloud. They are building solutions for themselves - whether it’s home automation, adding skills to their Alexa or Google Home, or doing the types of online services like IFTTT can provide.

Another group of users come from the companies who have integrated Node-RED into their own products and services. Hitachi, Siemens, Samsung, Particle and many others.

—Nick O'Leary, What's next with Node-RED?

基于腾讯自研SAST语义分析引擎“啄木鸟”,开展漏洞变体分析。我们对Node-RED平台进行了人工和自动化白盒代码审计,发现了多个通用高危漏洞(CVE-2021-21298、CVE-2021-21297、CVE-2021-3223、CVE-2021-25864等),并进一步探究了潜在利用方式及危害,本文将详述分析过程及典型案例。

攻击面及风险分析

Node-RED平台基于Express.js开发,我们从鉴权方式、http接口、客户端安全以及组件生态等多个维度入手开展分析。

2.1 鉴权方式

Node-RED的鉴权方式依赖配置,默认没有任何鉴权,当开启鉴权后,会对接口进行鉴权。相关权限在settings.js文件中定义:

2.1.1 登陆机制

如果开启了鉴权功能,Node-RED会通过passport中的OAuth策略对用户进行登录校验并提供访问token,token通过浏览器的Local Storage存储。OAuth策略中使用账号密码进行登陆校验,通过bcrypt对用户密码进行校验。

此处可以认为不存在绕过方式。access token使用bearer策略进行校验,主要函数是:

Tokens采用map存储,此处存在一个潜在的安全风险:

当传入accessToken为__proto__时,token会返回prototype的内容,从而绕过if(token)的检查,后续如果有一个原型链污染漏洞能伪造user(用户名)字段,即可绕过token检查。

2.1.2 权限机制

通过检测用户对象中的scope字段区分读写接口权限,当scope字段为 "*" 时,默认可以读写所有接口,admin默认权限就是 "*"。Node-RED在0.14版本之后对权限做了细分,详细可见:

https://nodered.org/docs/user-guide/runtime/securing-Node-RED#user-permissions,权限类型概述如下:

Node-RED的权限管控功能由needsPermission函数实现,用例如下:

该接口就需要一个settings.write权限才能读取。如果接口声明未能和它的行为相符,或者存在漏洞,那么也可以认为是一个越权漏洞。

2.2 http接口

Node-RED中存在3类http接口:

  • 原生http接口

  • 内置节点注册的http接口

  • 第三方节点注册的http接口

上一节描述了Node-RED的接口鉴权机制,原生http接口未鉴权的较少,其中2和3类接口通过以下两种方式暴露:

因此,可以在源码中批量搜索来找未鉴权的接口。在对第三方组件分析、扫描过程中,我们发现很多插件都没有采用needsPermission方式鉴权,存在较大安全隐患。

2.3 客户端安全

Node-RED通过http头来实现鉴权,这意味着传统的CSRF攻击不再奏效,也有对应的CORS安全策略。

因此,主要关注的风险是XSS漏洞。从功能设计上看,Node-RED 前端只有一个大页面,使用JS操作dom的方式渲染后端数据,这种机制一定程度上收敛了产生XSS漏洞的风险。各组件面临的XSS风险及框架采取的预防措施,如下:

这篇关于物联网开源组件安全:Node-RED白盒审计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839375

相关文章

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还