工业无线物联网解决方案中的缺陷可让攻击者深入访问OT网络

news2024/9/22 19:40:18

运营技术 (OT) 团队通常通过无线和蜂窝解决方案将工业控制系统 (ICS) 连接到远程控制和监控中心,这些解决方案有时带有供应商运行的基于云的管理界面。

这些连接解决方案,也称为工业无线物联网设备,增加了 OT 网络的攻击面,并且可以为远程攻击者提供进入包含关键控制器的先前分段网络段的捷径。

工业网络安全公司 Otorio 本周发布了一份报告,强调了这些设备容易受到的攻击向量以及该公司的研究人员在几种此类产品中发现的漏洞。

研究人员在他们的报告中说:工业无线物联网设备及其基于云的管理平台是攻击者在工业环境中寻找初步立足点的有吸引力的目标。这是由于对开发和潜在影响的最低要求。

传统 OT 网络架构的转变

OT 安全通常遵循Purdue 企业参考架构 (PERA)模型来决定在何处放置强大的访问控制层并进行分段。该模型可追溯到 1990 年代,将企业 IT 和 OT 网络分为六个功能级别。

0 层是直接影响物理过程的设备,包括阀门、电机、执行器和传感器等。

第 1 层或基本控制层包括现场控制器,例如可编程逻辑控制器 (PLC) 和远程终端单元 (RTU),它们根据工程师上传的逻辑(程序)控制这些传感器、阀门和执行器。

第 2 层是监督控制层,包括监督控制和数据采集 (SCADA) 系统,这些系统收集从第 1 层控制器接收到的数据并根据这些数据采取行动。

第 3 层是现场控制层,包括直接支持工厂运营的系统,例如数据库服务器、应用程序服务器、人机界面、用于对现场控制器进行编程的工程工作站等。这通常称为控制中心,并通过非隔离区 (DMZ) 连接到组织的通用 IT 企业网络(第 4 级)。

正是在这个隔离区中,组织将他们的边界安全工作集中在其网络的 IT 和 OT 部分之间。额外的控制通常放在 3 级和 2 级之间,以保护现场设备免受入侵控制中心。

然而,一些组织可能有远程工业装置,他们需要连接到他们的中央控制中心。这在天然气和石油等行业更为常见,运营商在不同地点拥有多个油田和气井,但它在其他行业也很普遍。远程 0-2 级设备和 3 级控制系统之间的这些链接通常由工业蜂窝网关或工业 Wi-Fi 接入点提供。

这些工业无线物联网设备可以通过多种协议(如 Modbus 和 DNP3)与现场设备通信,然后使用各种安全通信机制(如 VPN)通过互联网连接回组织的控制中心。许多设备制造商还为工业资产所有者提供基于云的管理界面,以远程管理他们的设备。

工业无线物联网设备中的漏洞

这些与连接到互联网的任何其他设备一样,增加了 OT 网络的攻击面并削弱了组织传统上实施的安全控制,为攻击者提供了进入 OT 网络较低级别的旁路。

研究人员在他们的报告中说:利用 Shodan 等搜索引擎,我们观察到工业蜂窝网关和路由器的广泛暴露,使它们很容易被发现并且可能容易受到威胁行为者的利用。

他们关于具有可访问互联网 Web 服务器和接口的设备的一些发现包括:

Vendor

Count

Filter

Sierra Wireless

96,715

http.title:ACEmanager

Teltonika Networks

37,100

http.title:Teltonika

InHand Networks

13,990

http.html:"Login failed! Check

your username & password"

Moxa

1,782

http.html:"MOXA OnCell"

ETIC Telecom

1,538

http.html:"ETIC TELECOM"

研究人员声称,他们在来自其中三个供应商(Sierra、InHand 和 ETIC)的设备的基于 Web 的界面中发现了 24 个漏洞,并设法在所有这三个供应商上实现了远程代码执行。

虽然其中许多漏洞仍在负责任地披露过程中,但已经修补的漏洞影响了 Sierra Wireless AirLink 路由器,并被跟踪为 CVE-2022-46649。

这是路由器基于 Web 的管理界面 ACEManager 的 IP 日志记录功能中的一个命令注入漏洞,是 Talos 研究人员在 2018 年发现的另一个漏洞的变体,该漏洞被追踪为 CVE-2018-4061。

事实证明,Sierra 为解决 CVE-2018-4061 而实施的过滤并未涵盖所有漏洞利用场景,Otorio 的研究人员能够绕过它。在 CVE-2018-4061 中,攻击者可以使用 -z 标志将额外的 shell 命令附加到由 ACEManager iplogging.cgi 脚本执行的 tcpdump 命令。

此标志由命令行 tcpdump 实用程序支持,用于传递所谓的 postrotate 命令。Sierra 通过执行一个过滤器来修复它,该过滤器从传递给 iplogging 脚本的命令中删除任何 -z 标志,如果它后面跟着空格,制表符,换页符或垂直制表符,这将阻止,例如,“tcpdump -z reboot ”。

根据 Otorio 的说法,他们错过的是 -z 标志后面不需要任何这些字符,并且像“tcpdump -zreboot”这样的命令可以很好地执行并绕过过滤。单靠这种绕过仍然会限制攻击者执行设备上已经存在的二进制文件,因此研究人员开发了一种方法,将他们的有效负载隐藏在通过另一个名为 iplogging_upload.cgi 的 ACEManager 功能上传到设备的 PCAP(包捕获)文件中。

这个特制的 PCAP 文件在被 sh(shell 解释器)解析时也可以充当 shell 脚本,并且可以通过使用 iplogging.cgi 中的 -z 漏洞触发其解析和执行。

云管理风险

即使这些设备不将其基于 Web 的管理界面直接暴露给互联网(这不是一种安全的部署做法),远程攻击者也不会完全无法访问它们。

这是因为大多数供应商都提供基于云的管理平台,允许设备所有者执行配置更改、固件更新、设备重启、设备上的隧道流量等。

这些设备通常使用 MQTT 等机器对机器 (M2M) 协议与这些云管理服务进行通信,它们的实现可能存在弱点。研究人员在三个供应商的云平台中发现了严重漏洞,允许攻击者在无需身份验证的情况下远程破坏任何云管理设备。

通过针对单一供应商基于云的管理平台,远程攻击者可能会暴露位于不同网络和部门的数千台设备,云管理平台的攻击面很广。它包括利用 Web 应用程序(云用户界面)、滥用 M2M 协议、薄弱的访问控制策略或滥用薄弱的注册过程。

研究人员通过他们在 InHand Networks 的“设备管理器”云平台及其 InRouter 设备的固件中发现的一系列三个漏洞来举例说明这些风险,这些漏洞可能导致在所有云管理的 InRouter 设备上以 root 权限远程执行代码。

首先,他们研究了设备通过 MQTT 与平台对话的方式以及实现身份验证或“注册”的方式,他们发现注册使用的随机值不够充分,并且可能被强制执行。换句话说,其中两个漏洞允许研究人员通过模拟经过身份验证的连接并向路由器写入任务(例如更改其主机名)来强制路由器提供其配置文件。

第三个漏洞是路由器通过 MQTT 解析配置文件的方式,特别是在用于解析名为 auto_ping 的功能参数的函数中。研究人员发现他们可以启用 auto_ping,然后将反向 shell 命令行连接到 auto_ping_dst 函数,这将在设备上以 root 权限执行。

对 OT 网络的无线攻击

除了互联网上可用的远程攻击媒介之外,这些设备还在本地暴露 Wi-Fi 和蜂窝信号,因此可以利用这些技术对它们进行任何攻击。

可以对 Wi-Fi 和蜂窝通信通道使用不同类型的本地攻击,从对 WEP 等弱加密的攻击和对易受攻击的 GPRS 的降级攻击开始,一直到可能需要时间修补的复杂芯片组漏洞。

虽然研究人员没有调查 Wi-Fi 或蜂窝基带调制解调器漏洞,但他们使用 WiGLE 进行了侦察,WiGLE 是一种公共无线网络映射服务,可收集全球无线接入点的信息。

利用高级过滤选项,我们编写了一个 Python 脚本扫描潜在的高价值工业或关键基础设施环境,突出显示配置了弱加密的环境。我们的扫描发现了数千个与工业和关键基础设施相关的无线设备,其中数百个配置了众所周知的弱加密。

使用这种技术,研究人员设法在现实世界中的制造厂、油田、变电站和水处理设施中找到部署了弱无线加密的设备。攻击者可以使用这种侦察来识别薄弱的设备,然后前往现场利用它们。

缓解无线物联网设备漏洞

由于此类设备在 OT 网络中的特权地位和对关键控制器的直接访问权限,因此在发现此类设备中的漏洞时对其进行修补非常重要,因此应采取额外的预防措施来降低风险。Otorio 研究人员有以下建议:                                                                        

  • 禁用并避免任何不安全的加密(WEP、WAP),并且在可能的情况下,不允许使用 GPRS 等旧协议。

  • 隐藏您的网络名称 (SSID)。

  • 对连接的设备使用基于 MAC 的白名单,或使用证书。

  • 验证管理服务仅限于 LAN 接口或 IP 白名单。

  • 确保没有使用默认凭据。

  • 警惕您设备的新安全更新。

  • 确认这些服务在未使用时被禁用(在许多情况下默认启用)。

  • 单独实施安全解决方案(VPN、防火墙),将来自 IIoT 的流量视为不受信任。

 关注回复 20230212 获取工业无线物联网研究

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/341563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS8基础篇6:文件属性的读取和修改

一、文件属性 每一行代表对应文件或目录的详细信息。从左到右具体的含义是文件属性、文件数、拥有者、所属的组、文件大小、建立月份、建立日期、建立年份或时间、以及文件名。其中“建立年份或时间”字段,如果文件是今年建立的,则显示具体时间&#xf…

文献阅读笔记 # GraphCodeBERT: Pre-training Code Representations with Data Flow

《GraphCodeBERT: Pre-training Code Representations with Data Flow》ICLR 2021 (TH-CPL A会,公认顶会,但未上 CCF 榜)作者部分与 CodeBERT 重叠,主要来自 MSRA Intern 和 MSRA 研究员,学生来自国内多个顶尖高校。资源&#xff…

java 黑马头条 day3 实名认证分布式事务问题 seata

1 完善实名认证功能 1.1 实名认证分布式事务问题 1.1.1 问题分析 在昨天的实名认证代码中,审核完毕后添加 id5的演示异常,重新使用postman进行测试, 会发现 出现异常后 本地方法因为有 Transactional注解 对ap_user ap_user_realname的操作会回滚 而…

【Docker】配置lsky pro兰空图床

Docker 部署 lsky pro 兰空图床的教程 本文首发于 慕雪的寒舍 1.使用Docker部署 命令比较简单,用下面的即可 docker run -d \ --name lsky \ -p 14728:80 \ -v /root/docker/lsky:/var/www/html \ halcyonazure/lsky-pro-docker:latest--name 设置容器名字为 lsky…

基于VS调试分析 + 堆栈观察问题代码段

文章目录问题代码段1 —— 阶乘之和问题代码段2 —— 越界的危害① 发现问题② 分析问题③ 思考问题【⭐堆栈原理⭐】④ 解决问题【DeBug与Release】👨程序员与测试人员👩✒总结与提炼问题代码段1 —— 阶乘之和 先来看一道C语言中比较基础的题目&#x…

新能源汽车PK燃油汽车,首次胜出,输赢真的那么重要?

新能源汽车PK燃油汽车,输赢真的那么重要?是的。【科技明说 | 每日看点】今天看到一个新能源汽车领域的消息,我觉得很有意思,是说中国新能源汽车满意度水平首次超过了燃油汽车,你们觉得是这样么?…

语义通信:DeepSC用于文本传输也太香了吧

论文标题:Deep Learning Enabled Semantic Communication Systems 论文链接:https://arxiv.org/abs/2006.10685v1 摘要 最近,人们开发了支持深度学习的端到端(E2E)通信系统,以合并传统通信系统中的所有物…

React中JSX的用法和理解

React的特点 React是用于构建用户界面的高效且灵活的 JavaScript 库,采用组件化模式和声明式编码;使用DOMdiff算法,最大限度地减少与DOM的交互。 相关js库 react.js:React核心库。react-dom.js:提供操作DOM的react扩…

Eclipse导出jar时的错误

文章目录一、发现问题二、解决问题三、新的问题今天,本来是风和日丽,轻风和畅的,复习的一天,直到我开始尝试导出 jar 可执行文件,兄弟们请记住这个词,我将被他折磨很久。一、发现问题 首先,我美…

RT-Thread MSH_CMD_EXPORT分析

RT-Thread MSH_CMD_EXPORT分析 1. 源码分析 在rt-thread中,使用FinSH,可以支持命令行。在源码中,使用MSH_CMD_EXPORT导出函数到对应命令。 extern void rt_show_version(void); long version(void) {rt_show_version();return 0; } MSH_CM…

实战超详细MySQL8离线安装

在RedHat中,RPM Bundle 方式安装MySQL8。建议一定要用 RPM Bndle 版本安装,包全。官网下载:https://dev.mysql.com/downloads/mysql/1.卸载mariadb,会与MySQL安装冲突。rpm -qa | grep mariadb 查看有无mariadb如果有&#xff0…

数据机构笔记哈夫曼编码

1.什么是哈夫曼树?哈夫曼树经典问题:合并果堆问题:如果有三个果堆,其质量分别是1,2,3,我们现在需要将这三堆合并成一堆果堆,合并过程消耗体力等于两堆果堆的质量之和,求最小体力消耗值&#xff…

java贪心算法

1 应用场景-集合覆盖问题 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区 都可以接收到信号 2 贪心算法介绍 贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优…

Threadlocal为何引发内存泄漏问题

首先我们要先了解什么是泄漏问题和什么是内存溢出 内存泄漏表示程序员申请了内存,但是该内存一直无法被释放 内存溢出表示申请内存不足,就会报错 为何引发内存泄漏问题 因为每个线程都有自己独立的ThreadLocalMap对象,key为ThreadLocal&…

【C++1】函数重载,类和对象,引用,string类,vector容器,类继承和多态,/socket,进程信号

文章目录1.函数重载:writetofile(),Ctrue和false,C0和非02.类和对象:vprintf2.1 构造函数:对成员变量初始化2.2 析构函数:一个类只有一个,不允许被重载3.引用:C中&取地址&#x…

【shell 编程大全】内容格式化以及多样化输出

内容格式化以及多样化输出 1. 前倾回顾 本章节我们一起来学习下,shell中内容格式化,以及多样输出。但是在学习之前,我们先来看看上个章节【shell 变量的定义以及使用】 我们都学习到了什么知识 shell 变量的定义以及使用 变量分类变量定义类…

SpringBoot设置和读取配置文件(1)

SpringBoot配置文件是用来保存SpringBoot项目当中所有重要的数据的,比如说数据库连接信息,数据库的启动端口,如果端口被占用了,那么就可以随时修改; 1)比如说我们之前再写JDBC的代码的时候,要去写链接字符串…

C 字符串

在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。空字符(Null character)又称结束符,缩写 NUL,是一个数值为 0 的控制字符,\0 是转义字符&#…

SNI生效条件 - 补充nginx-host绕过实例复现中SNI绕过的先决条件

文章目录1.前置环境搭建2.测试SNI生效条件(时间)3. 证书对SNI的影响3.1 双方使用同一个证书:3.2 双方使用不同的证书与私钥4. 端口号区分测试4.1 端口号区分,证书区分:4.2 端口号区分,证书不区分:5.总结SNI运行机制6. SNI机制绕过…

Docker-安装Jenkins-使用jenkins发版Java项目

文章目录0.前言环境背景1.操作流程1.1前期准备工作1.1.1环境变量的配置1.2使用流水线的方式进行发版1.2.1新建流水线任务1.2.2流水线操作工具tools步骤stages步骤1:拉取代码编译步骤2:发送文件并启动0.前言 学海无涯,旅“途”漫漫,“途”中小记&#xff…