聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士

Nozomi Networks 公司发现了影响 ThroughTek 公司软件组件的一个新漏洞。该组件是很多消费者级别摄像头和物联网设备原始设备制造商供应链的一部分。ThroughTek 称其解决方案用于数百万台联网设备中。

ThroughTek 的 P2P 软件开发包 (SDK) 用于在互联网上为音频/视频流提供远程访问权限。多家摄像头厂商都在使用 P2P,因此今天的漏洞披露是检查 CCTV 解决方案是否具有该功能的另一个原因。

使用易受攻击摄像头的风险在于越权访问机密音频/视频摄像头内容。对于关键基础设施的运营人员而言,这样做可导致敏感的业务信息、生产信息和员工信息遭暴露。

本文将说明 ThroughTek 漏洞、评估安全摄像头系统风险以及为何对未来更好的软件安全保持乐观。

物联网安全摄像头的 P2P 功能

在深入说明之前,先简要回顾下关于 Reolink 安全摄像头 P2P 实现的早期发现。我们在安全摄像头上下文中谈论 P2P,是指允许客户端通过互联网访问音频/视频流的功能。一般的P2P结构的三个组件如下:

  • NVR:连接到安全摄像头,代表生成音频/视频流的本地 P2P 服务器

  • 异地 P2P 服务器,由摄像头厂商或 P2P SDK 厂商管理。该服务器发挥中间人角色,可使客户端和 NVR建立连接。

  • 软件客户端,或者是移动应用程序或者是桌面应用程序,能从互联网访问音频/视频流。

虽然 Reolink 开发了自己的 P2P 功能,但很多安全摄像头和物联网设备制造商从第三方提供商如 ThroughTek 处获得。P2P SDK 的特别之处在于 OEM 不仅为 P2P 软件库发布许可证,还接收基础设施服务(异地P2P服务器)以认证客户端和服务器并处理音频/视频流。

ThroughTek 网站指出,其技术用于各种OEM,如 IP 摄像头制造商、婴儿和宠物监控摄像头以及机器人和电池设备。

接下来我们详细分析 ThroughTek 漏洞详情。

发现 ThroughTek P2P SDK 漏洞

研究员接收到新设备后首先做的就是在实验环境中分析其网络流量。

实验室最近收到一台 NVR,快速判断出其具有 P2P 功能。之后研究员分析了通过 P2P 连接到 NVR 的 Windows 客户端生成的网络流量,发现多个程序包连接到 iotcplatform.com,该域名由 ThroughTek 的 P2P 平台的多个客户端访问。

之后研究员开始调查客户端实现,不久意识到它潜在不同的 P2P 库中。该软件客户端实际是一个白标产品,因此需要为多个 P2P 厂商提供完整的互用性。

设置了一些断点后,研究员设法找到了一些有意思的代码,在这些地方网络的软件包 payload 被反混淆 (deobsfuscated)。之后解析代码了解其中所包含的命令类型。这里通过“反混淆”一词来说明该协议缺少安全密钥交换,依赖于基于固定密钥的混淆图式。

Reolink 和 ThroughTek 漏洞造成的后果类似:由于流量遍历互联网,因此攻击者只要能访问就能重构音频/视频流。

如下是所开发的 PoC,反混淆了网络流量的 on-the-fly 数据包。以 “XYEU” 开头的字符串是唯一识别 P2P 网络中设备的 UID。

2021年3月,研究员负责任地披露了该漏洞,ThroughTek 及时证实了该漏洞的存在,并将情况告知客户且通过增加“基于 DTLS ECDSA-PSK 的加密层” 的方式修复该漏洞。ThroughTek 网页解决了该 SDK 漏洞并建议客户启用安全功能或升级至当前版本。

该漏洞的CVSS v3 基础评分为9.1。

漏洞风险难以评估

由于多年来, ThroughTek 的 P2P 库以被多个厂商集成到很多不同设备中,因此第三方基本不可能追踪到受影响产品。这类漏洞可利用的威胁模型限制了它的实际影响。

从本质上讲,凡是能够访问 NVR 和终端用户之间网络流量的任意人员,在某些情况下还包括 P2P 第三方服务器提供商,都能够访问并查看机密音频/视频流。

实现 P2P 协议的 DLL 具有一个导出,名为 “IOTC_Get_Version”,会返回内部版本号。从如下截图可知,版本号是3.1.4.35,而这正是我们首次分析的客户端所用的版本。该版本非常老旧且使用了其它 P2P 实现也在使用的硬编码密钥。

进一步研究后发现了该库的更新版本,它具有不同的混淆图式以及不同的参数集。相比找到其中的漏洞而言,找到运行更新协议版本的设备更具有挑战,因此研究员无法对这些库执行动态分析。

总言之,虽然 ThroughTek 指出其软件用于数百万台设备且 P2P 功能广泛存在于多个厂商中,因此难以评估特定安全摄像头的风险。

具有P2P 功能的安全摄像头难以评估

一般而言,当买家查看多种不同安全摄像头的技术详情时,无法识别 P2P 提供商或找到对该协议的正确说明。以我们的经验来看,获取该信息的最佳且唯一方法是直接查看客户端/服务器实现。遗憾的是,多数买家并不具备这样的技能或意图。

因此,阻止陌生人通过互联网查看捕获的音频/视频内容的最佳方法就是禁用 P2P 功能。

研究员建议用户尽在少数情况下启用 P2P,比如供应商可提供全面的技术详情,说明产品中所使用的算法为何是安全的。其它情况包括评估摄像头厂商和厂商所在辖区的安全和隐私策略。换句话说,不要轻易从互联网查看摄像头内容,除非已经进行了全面的技术尽职调查并对厂商的安全和隐私实践没有感到不适。

希望软件供应链更安全

SolarWinds 事件发生后,大家对软件供应链的风险意识提高。全球最大的买家之一美国联邦政府将要求其供应商为其所购买的解决方案提供软件物料清单。该要求正在被越来越多的商业采购所实现,而且随着时间的流逝,将会提高所有软件的安全门槛。

同时,安全摄像头采购,尤其是关键基础设施的采购应当接受细致的安全和厂商评估。

ICS-CERT 安全公告已发布具体缓解措施并推荐了控制系统的安全最佳实践。


推荐阅读

给开发者的9个安全建议:既能保护供应链安全,也不会拖慢开发进程

穿越「攻击常态化」迷雾,这份报告直击「中国软件供应链安全」的真实面貌

治理软件供应链安全要打“团体赛” 共同建立供应链安全体系

在线阅读版:《2021中国软件供应链安全分析报告》全文

详细分析PHP源代码后门事件及其供应链安全启示

原文链接

https://www.nozominetworks.com/blog/new-iot-security-risk-throughtek-p2p-supply-chain-vulnerability/

题图:Pixabay License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 或 "赞” 吧~

详解ThroughTek P2P 供应链漏洞对数百万物联网设备的安全新风险相关推荐

  1. BotenaGo 僵尸网络利用33个exploit 攻击数百万物联网设备

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 研究人员发现 BotenaGo 恶意软件僵尸网络使用30多个exploit,攻击数百万台路由器和物联网设备. BotenaGo 用Golang ...

  2. DNS漏洞影响数百万物联网设备安全,ZDNS打造Safeguard安全威胁管控系统,精准防御实现网络安全防线前移

    uClibc库域名系统(DNS)组件中的一个漏洞影响了数百万的物联网设备安全.近期,来自全球工业网络安全领域领导企业NozomiNetworks的一则警告,在业内引发了一场舆论"地震&quo ...

  3. P2P技术详解:NAT详解、P2P简介

    <P2P理论详解>系列文章中的总目录如下: <P2P技术详解(一):NAT详解--详细原理.P2P简介> <P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解(基 ...

  4. flutter开发视频播放器,69个经典安卓面试题和答案详解,下载量瞬秒百万

    这篇文章最近很火,我也有一些自己的看法:现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较666的技术,这些技术我们称之为开源框架. 比如 ...

  5. 联发科固件现窃听漏洞,影响全球约三分之一的手机和物联网设备

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 中国台湾企业联发科为全球智能手机和其它智能设备生产大量芯片.上个月,该公司发布安全更新,解决了可导致恶意安卓应用记录音频并监控电话机主的四个严重 ...

  6. NUCLEUS:13:西门子实时操作系统 Nucleus漏洞影响物联网设备等

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 今天,安全研究员披露了影响西门子关键软件库的13个漏洞,被统称为 "NUCLEAUS:13".这些漏洞影响 Nucleus ...

  7. WiFi Direct详解(p2p使能,扫描,连接流程)基于Android8.1.0

    如果你也是年轻的程序员,关注我一起学习探讨 简介:Wi-Fi Direct技术的目的是在没有Wi-Fi AP的情况下由两个或者多个Wi-Fi设备互相之间进行高速的数据通信.通信完全基于TCP/IP 协 ...

  8. windows无法配置此无线连接_Kubernetes 1.18功能详解:OIDC发现、Windows节点支持,还有哪些新特性值得期待?...

    Kubernetes 1.18发布,一些对社区产生影响的新特性日渐完善,如 KSA(Kubernetes Service Account) tokens的OIDC发现和对Windows节点的支持.在A ...

  9. TCP/IP详解--五层协议的作用以及对应的设备

    网络协议分层: l链路层:有时也称作链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.他们一起处理与电缆的物理接口细节. 网络层:有时也称为互联网层,处理分组在网络中的活 ...

最新文章

  1. 想在SqlDbHelper.cs类中加的垃圾方法
  2. TMS320F28335之GPIO原理
  3. FileUpload路径
  4. PureMVC(AS3)剖析:设计模式(二)
  5. 深度相机(三)--三种方案对比
  6. python 且_Pyface库:一个基于pyqt、pyside、wx且简化的python的GUI
  7. 浙江工商大学计算机专业有博士点吗,[浙江工商大学]统计学(博士点)
  8. 计算机网络 第一章 计算机网络体系结构
  9. 二级缓存:EHCache的使用
  10. mysql firstday_MySQL 计算本月的第一个和最后一个周一
  11. Linux下查看CPU型号,内存大小,硬盘空间,进程等的命令(详解)
  12. linux内核源码下载地址
  13. 模拟CMOS集成电路设计学习笔记(一)
  14. 51超声波测距简易代码
  15. html 设置整体字体,html font标签如何设置字体样式
  16. 实现px和vw的转换
  17. pl2303hxa串口线驱动_PL2303 USB转串口驱动64位(非认证线缆可用)_下载_热门驱动_驱动精灵...
  18. 【数据结构】初识时间空间复杂度
  19. 【运维心得】wps云文档被其他程序锁定了怎么办?
  20. 卢松松:百度凤巢系统知道推广功能上线

热门文章

  1. tomcat 访问本地C,D盘等文件配置
  2. Win7 64bit IIS无法访问ACCESS数据库解决方案
  3. C# interview questions--- 国外大公司c#技术面试必看(总结贴一)
  4. 给 console 添加颜色
  5. ubuntu16.04打造vim和python3的IDE
  6. mysql利用init-connect增加访问审计功能的实现
  7. ajax请求成功后返回值如何赋值给js变量
  8. 《软件测试自动化之道》读书笔记 之 目录导航
  9. jqgrid for asp.net 遍历所有列rowObject时不用输入编号
  10. Android中关于Volley的使用(三)认识Volley的架构