什么是物联网?
物联网(Internet of Things,简称IoT)是指通过互联网将各种设备、物体和系统连接起来,使它们能够收集数据、交换信息,并且在某些情况下可以自动执行任务的技术体系。这些“物”可以是任何带有传感器、软件和其他技术的实体,如家用电器、工业机械、车辆、医疗设备等。物联网的核心理念是让日常物品变得更加智能,从而提高效率、减少浪费,并创造新的服务模式。随着物联网技术的广泛应用,从智能家居设备到工业控制系统,安全问题变得越来越重要。
OWASP IoT TOP 10
OWASP IoT项目始于2014年,旨在帮助开发人员、制造商、企业和消费者在创建和使用IoT系统时做出更好的决策。2018年发布的OWASP IoT Top 10也延续了这一理念。OWASP IoT TOP 10代表了构建、部署或管理IoT系统时需要避免的十大事项。接下来,让我们对OWASP IoT TOP 10进行简要阐述。
这是安全领域上最常见的安全漏洞,因为无法确保每一位用户或使用者都具备较高的安全意识。除了常见的弱口令以外的话,我们还需要关注在智能设备、设备固件中会不会暴露密码,因为IoT的开发者可能会把一些密码或密钥硬编码在固件或软件中。
通常情况下,如果存在这种类型的漏洞,意味着攻击者可以通过用户的弱密码、密码恢复机制的缺陷以及双因子身份验证机制的缺失来控制智能设备。
以下是部分厂家摄像头最常使用的十大默认用户名/密码:
以下是CWE中弱密码、可猜测密码或硬编码密码导致的漏洞:
不安全的网络服务是基于网络层的服务,比如说端口、网站和底层的安全隐患等。
不安全的网络服务的问题主要集中在开放了不必要的端口,通过UPnP向互联网暴露端口以及易受DoS攻击的网络服务。另外,未禁用的telnet也可能被用作攻击向量。
以下是CWE中不安全的网络服务导致的漏洞:
不安全的生态接口是基于应用层的服务,包含Web组件、后端API、移动接口等。一般情况下,攻击者首先会在智能设备的Web接口中寻找XSS、CSRF和SQL漏洞。此外,这些接口中还经常出现默认用户名和密码和缺乏帐户锁定机制之类的漏洞。
一方面,用于保护存储在云中的私人数据的加密算法的加密强度通常很弱;另一方面,即使加密算法具有足够的加密强度,仍然可能存在缺乏双因子身份验证,或者允许用户使用弱密码等安全漏洞。这种类型的漏洞意味着,只要攻击者能够访问Internet,就可以获取私人数据。
以下是CWE中不安全的生态接口导致的漏洞:
以前厂商会把固件放到网上供用户下载,攻击者也可以下载历史的固件进行安全漏洞的分析,因此存在很多的安全隐患。近年来大部分厂商已经意识到这个问题,不会在网络上发布固件,然而,在固件的更新机制方面依旧存在问题,比如传输的时候通过HTTP传输,可能会被中间截获获取固件,或者缺乏防回滚机制,当1.0版本的固件有安全问题,2.0版本修复后,攻击者可以通过降级固件来进行攻击。
有一些固件设备,例如路由器这类设备,由于使用了已遭弃用或不安全的软件库,从而产生了安全隐患。因此IoT开发者在开发过程中,需要明确自己用的组件有无历史漏洞,有无版本更新,需要及时关注并进行版本的更新。
以下是CWE中使用不安全或已遭弃用的组件导致的漏洞:
隐私保护不充分指的是设备收集的用户数据没有得到全面、有效的隐私防护措施,或者是在处理用户隐私数据时,没有构建足够严密的防护体系。无论是数据的收集环节,没有明确告知用户数据用途;还是在存储环节,未采用合适的加密手段;亦或是在使用环节,对数据访问权限的把控不严格,这些方面的不足都导致了隐私保护漏洞的产生。
以下是CWE中隐私保护不充分导致的漏洞:
不安全的数据传输和存储的问题主要集中在敏感信息以明文形式传递,SSL/TLS不可用或配置不当,或使用专有加密协议方面。含有这类漏洞的设备容易受到MITM攻击。
以下是CWE中不安全的数据传输和存储导致的漏洞:
部分厂商在IoT设备的管理和维护方面存在不足,造成了许多安全隐患。厂商需要对设备有一定的管控能力,需保证设备运行状态正常,确保设备未经篡改且无安全隐患,同时保证设备上传的数据是真实、有效且可靠的。
不安全的默认设置包括默认的密码、默认重置设备的命令、以及设备中开发者遗留的后门等。需要厂商在出厂的时候做统一的排查,如果安全隐患较大,那么需要在设备开机后立即进行重置操作。
以下是CWE中不安全的默认设置导致的漏洞:
缺乏物理加固措施主要是针对硬件安全。通常情况下,如果固件缺乏物理加固措施,只要拆开智能设备,攻击者就能找到其MCU、外部存储器等。此外,通过JTAG或其他连接器(UART、I2C、SPI),攻击者还可以对固件或外部存储器进行相应的读写操作。
以下是CWE中缺乏物理加固措施导致的漏洞:
物联网安全开发生命周期
物联网的开发周期很长,从供应链的选择到设备的选型再到硬件的测试过程都是很漫长的,如果在设计之初就把安全考虑进去,并将安全考虑贯穿于物联网设备的整个开发过程中,不但不会影响到项目的进展,反而会让产品以更为安全的形象进入市场,从而提高产品的竞争力。一般情况下,物联网生命周期分为以下几个阶段:
1、定义阶段
典型的物联网环境软件包括:
从设备接收数据以进行进一步处理的软件,例如通常位于云端的基于Web或其他的应用程序,这些应用程序对接收到的数据进行分析;
用于控制的移动设备软件,例如各类智能家居APP、安卓/ios操作系统等;
驻留在智能设备上的软件,例如设备固件、物联网产品操作系统、物联网设备驱动程序等;
物联网通信通讯协议栈,例如tcp/ip、802.1、coap、mqtt等;
在不同组件之间格式化和传输数据的中继服务,例如API、在智能设备、移动端和其他物联网组件之间传输数据的Web服务等。
2、需求阶段
典型的物联网环境在物理上(适用大量设备)和逻辑上(适用多种技术和应用程序)分布广泛,所以在安全需求识别阶段应该满足整个物联网产品和服务生命周期的灵活性。
3、设计阶段
对于每个物联网组件、应列举威胁因素和可能的威胁情况,考虑攻击者的潜在动机、意图、能力以及攻击途径、影响和可能性并对此设计特定的安全控制来防止潜在的安全问题。其中尤为重要的是物联网中网络与物理世界高度相关,所以针对智能设备的安全性也应该在设计阶段考虑。
4、开发阶段
考虑到物联网设备的硬件和软件限制,在其生态系统中的代码融入安全性对开发人员是一种挑战安全开发指南适用于不同组件的开发过程,包括常见语言(JAVA、J2EE、PHP)的安全编码指南,以及基于特定硬件的代码和控制嵌入式系统的代码(C、C++)。同时还应培养开发人员有关物联网攻击和威胁防御的意识。
5、测试阶段
物联网架构下需要包括对物理设备的评估测试,其不仅涉及软件还包括各类组件以及物理架构以预防诸如拆解、物理端口模糊测试、总线攻击、流量分析等。
6、部署阶段
物联网解决方案通常部署在广泛开放的环境中,其中管理员和支持团队可能无法完全控
制。物联网部署的另一个特殊性即在异构性,如智能设备的固件、用于后端物联网服务
的云服务器,实现物联网通信通讯协议的网关和网络组件等。
2024年10月25日
网安加云课堂
版权归原作者 网安加云课堂 所有, 如有侵权,请联系我们删除。