智能硬件设备八大安全问题分析

简介:

目前,IoT 技术还处于起步阶段,与金融、电子商务等其他行业相比,安全性尚未得到充分理解和明确定义。开发一款IoT 产品时,不论是像可穿戴设备这样的小型产品,还是像油田传感器网络或全球配送作业这样的大型IoT部署,从一开始就必须考虑到安全问题。要了解安全的问题所在,就需要了解IoT 设备的攻击方法,通过研究攻击方法提高IoT产品的防御能力。

作为国内最早从事智能硬件安全攻防研究的团队,基于长期的智能硬件安全攻防实践,360攻防实验室对智能硬件设备的安全隐患进行了系统的分析和梳理,总结了智能硬件设备存在的八大安全隐患。

以下内容已经收录入即将出版的《智能硬件安全》一书,这将是国内第一本系统介绍物联网安全的专业书籍,该书的核心观点是通过“以攻促防、以防抑攻”的安全理念,全面提高IoT产品自身的安全防御能力。

以下是智能硬件设备八大安全隐患分析:

智能硬件主要安全问题比例

1. 数据存储不安全

毫无疑问,移动设备用户面临的最大风险是设备丢失或被盗。任何捡到或偷盗设备的人都能得到存储在设备上的信息。这很大程度上依赖设备上的应用为存储的数据提供何种保护。很多智能硬件手机客户端的开发者对于智能硬件的配置信息和控制信息都没有选择可靠的存储方式。可以通过调试接口直接读取到明文或者直接输出至logcat 中。用户身份认证凭证、会话令牌等,可以安全地存储在设备的信任域内,通过对移动设备的破解,即可达到劫持控制的目的。

2. 服务端控制措施部署不当

现有智能硬件的安全策略由于要降低对于服务端的性能损耗,很多情况下是把安全的过规则部署在客户端,没有对所有客户端输入数据的输入检查和标准化。使用正则表达式和其他机制来确保只有允许的数据能进入客户端应用程序。在设计时并没有实现让移动端和服务端支持的一套共同的安全需求,可以通过将数据参数直接提交至云端,客户端APK 对参数过滤的限制,达到破解设备功能的目的。

3. 传输过程中没有加密

在智能硬件的使用过程中,存在连接开放Wi-Fi 网络的情况,故应设计在此场景下的防护措施。我们列一个清单,确保所有清单内的应用数据在传输过程中得到保护(保护要确保机密性和完整性)。清单中应包括身份认证令牌、会话令牌和应用程序数据。确保传输和接收所有清单数据时使用SSL/TLS 加密(See CFNetwork Programming Guide)。确保你的应用程序只接受经过验证的SSL 证书(CA 链验证在测试环境是禁用的;确保你的应用程序在发布前已经删除这类测试代码)。通过动态测试来验证所有的清单数据在应用程序的操作中都得到充分保护。通过动态测试,确保伪造、自签名等方式生成的证书在任何情况下都不被应用程序接受,如下图所示。

传输过程没有加密(图中右侧是明文数据编码后的格式)

4. 手机客户端的注入

手机客户端和Web 应用程序的输入验证和输出过滤应该遵循同样的规则。要标准化转换和积极验证所有的输入数据。即使对于本地SQLite/SQLcipher 的查询调用,也使用参数化查询。当使用URL scheme 时,要格外注意验证和接收输入,因为设备上的任何一个应用程序都可以调用URL scheme。当开发一个Web/移动端混合的应用时,保证本地/local 的权限是满足其运行要求的最低权限。还有就是控制所有UIWebView 的内容和页面,防止用户访问任意的、不可信的网络内容。

5. 身份认证措施不当

授权和身份认证大部分是由服务端进行控制的,服务端会存在用户安全校验简单、设备识别码规律可循、设备间授权不严等安全问题。目前可以在分析出设备身份认证标识规律的情况下,如MAC 地址、SN 号等都可以通过猜测、枚举的方式得到,从而批量控制大量设备,如下图所示。这个漏洞的危害在智能硬件里是最大的,因为它能够影响到全部的智能硬件。

身份认证措施不当

6. 密钥保护措施不当

有些IoT 产品在开发过程中考虑到了安全加密,比如使用AES128 位加密做为传输加密的内容,使用MD5 加密用户密码。在对于对称性加密方式的处理过程中,密钥的保存方式是至关重要的。在IoT 解决方案中,手机客户端发起的请求需要对数据内容进行加密,也就是说,手机客户端内需要有AES 的密钥。如果对于密钥存放的方式不当,可以轻而易举地将数据还原成明文进行逆向分析,从而进行进一步的攻击。在对大量的IoT 设备进行安全研究后发现,设备基本上都会把AES 的密钥存放在手机客户端中,有的做得很简单,写在了一个加密函数里。有的做得很深,放在了一个Lib 库中。但这些只是提高了一定的技术门槛而已,不是解决安全问题的办法,如下图所示。

密码保护措施不当

7. 会话处理不当

有很多智能设备都会由于会话管理措施不当,造成能够通过会话劫持攻击,直接控制设备,达到设备被破解的一种程度,所以说永远不要使用设备唯一标示符(如UDID、IP、MAC 地址、IEME)来标示一个会话。保证令牌在设备丢失/被盗取、会话被截获时可以被迅速重置。务必保护好认证令牌的机密性和完整性(例如,只使用SSL/TLS 来传输数据)。使用可信任的服务来生成会话。

8. 敏感数据泄露

对于智能设备的安全研究,可以通过智能设备所泄露出来的数据,进行进一步利用,从而获得控制权限。所以必须保证安全的东西都不放在移动设备上;最好将它们(如算法、专有/机密信息)存储在服务器端。如果安全信息必须存储在移动设备上,尽量将它们保存在进程内存中。如果一定要放在设备存储上,就要做好保护。不要硬编码或简单地存储密码、会话令牌等机密数据。在发布前,清理被编译进二进制数据中的敏感信息,因为编译后的可执行文件仍然可以被逆向破解物。

敏感数据泄露


作者:佚名

来源:51CTO

相关文章
|
Python
dataframe循环更新某列的值
你可以使用Python的循环结构(如for循环)结合Pandas DataFrame的iterrows()方法来更新DataFrame中某一列的值。以下是一个简单的例子:
338 0
|
11月前
|
监控 安全 算法
线程死循环确实是多线程编程中的一个常见问题,它可能导致应用程序性能下降,甚至使整个系统变得不稳定。
线程死循环是多线程编程中常见的问题,可能导致性能下降或系统不稳定。通过代码审查、静态分析、日志监控、设置超时、使用锁机制、测试、选择线程安全的数据结构、限制线程数、使用现代并发库及培训,可有效预防和解决死循环问题。
266 1
|
11月前
|
并行计算 数据处理 Python
Python并发编程迷雾:IO密集型为何偏爱异步?CPU密集型又该如何应对?
在Python的并发编程世界中,没有万能的解决方案,只有最适合特定场景的方法。希望本文能够为你拨开迷雾,找到那条通往高效并发编程的光明大道。
145 2
|
存储 监控 安全
智能家居安全漏洞分析与防护策略
随着物联网技术的快速发展,智能家居系统已成为现代生活的一个趋势。然而,随之而来的安全问题也日益突出。本文将深入探讨智能家居系统中存在的安全漏洞,并针对性地提出一系列有效的防护措施。通过实际案例分析,旨在提升用户的安全防护意识,确保智能家居环境的安全性和可靠性。
237 27
|
7月前
|
算法 Java 调度
算法系列之贪心算法
在算法中,贪心算法(Greedy Algorithm)是一种常见的解决优化问题的算法。贪心算法的核心思想是:在每一步选择中都采取当前状态下最优的选择,即贪心的做出局部最优的决策,从而希望最终能够得到全局最优解。尽管贪心算法并不总是能够得到全局最优解,但在许多实际问题中,它能够提供足够好的解决方案,并且具有较高的计算效率。
210 7
算法系列之贪心算法
|
11月前
|
设计模式 中间件 程序员
【实战指南】深入了解23种设计模式
《深入了解23种设计模式:程序员必读指南》旨在帮助程序员理解和应用设计模式,以解决常见编程问题。书中介绍了设计模式的起源、目的及其在提高代码复用性、质量和团队沟通中的作用。涵盖创建型、结构型和行为型三大类共23种设计模式,每种模式均附有详细解析与C++实现示例,适合初学者和有经验的开发者学习参考。
257 85
|
机器学习/深度学习 传感器 算法
改进黑猩猩优化算法SLWCHOA 可直接运行 提供23个基准函数对比与秩和检验 注释详细适合新手小白~Matlab
改进黑猩猩优化算法SLWCHOA 可直接运行 提供23个基准函数对比与秩和检验 注释详细适合新手小白~Matlab
|
供应链 安全 物联网
物联网(IoT)安全:风险与防护策略
【6月更文挑战第26天】物联网(IoT)安全风险包括数据泄露、设备劫持、DDoS攻击、超级漏洞和不安全设备。防护策略涉及强化设备安全设计、建立认证授权机制、加密数据传输、实施安全监控、加强供应链管理、提升用户安全意识及采用零信任模型。多层面合作以降低安全威胁,确保物联网稳定安全。
|
数据采集 监控 数据安全/隐私保护
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
在Selenium Web数据采集时,日志管理至关重要。通过调整`–log-level`参数可优化日志详细度,如设置为`INFO`记录一般操作信息。结合代理IP、Cookie及user-agent配置,不仅能提高采集成功率,还能规避反爬机制。合理选择日志级别有助于调试与性能平衡,在复杂的数据采集任务中保持程序稳定与可控。
354 1
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
|
机器学习/深度学习 传感器 安全