Authour:Mr.Bingo
地址:http://oddboy.cn/2018/01/智能硬件安全一瞥/

智能硬件安全算是一个相对较新的领域,既有传统的安全问题(云服务器安全、APP安全、通讯安全等),又有属于电子产品范畴的安全。简单看看其涉及到的知识领域,评估下自己如何在该领域循序渐进。

智能硬件安全概览

随着万物互联的物联网思维发酵,原本自成系统的硬件设备及其自有网络(Bluetooth、Zigbee、Can总线等)接入到互联网中,打破原本隔离的状态,成为了今天大家熟知的智能硬件。使其在得到互联网加持的同时,也相应的需要面对互联网中的安全威胁。例如:关注度比较高的车联网安全,很多问题便是由于原本封闭安全的can总线网络接入到互联网之后带来的。

目前的智能硬件,其一般情况下部署架构均如图所示,个别情况可能缺少云端或者APP端。

所以,谈论智能硬件安全,其实三端点(终端设备+云端+APP)+ 三条线(三者之间的通讯)所涉及的安全问题。

点·终端设备安全

你以为硬件设备都长什么样呢? 如下便是扒光外壳后硬件本来的样子,其实这就是赫赫大名的树莓派。

有些硬件可能为了维修方便,都留有编程口(JTAG、ISP的等)、数据通信口(USB、SPI、CAN、UART等有线通信及WIFI、Zigbee、Bluetooth等无线通信)。这些接口未做相应的防护,导致终端直接面临安全风险。

固件(运行在硬件上的程序代码)安全主要关注点应该是固件的保密性措施。固件被盗被逆向,那么自家产品的复制品很快也就出来了。对于长开发周期的电子行业来讲,这是比较沉重的打击。

一般的,有三种获取固件的方式:

官网链接下载
捕获升级包
直接用调试器从硬件读取

这部分与固件安全有一定的交集,但相对于上一点有所区别,较多的依赖芯片厂商,硬件厂商需要认真评估芯片的安全性,并考虑做一些额外处理(如清除芯片型号、充分使用芯片安全特性等)

【芯片漏洞】
如利用单片机时序漏洞使单片机停留在解密状态;空白区域插入代码,将片内程序读取并传送出来。

【探针技术】
直接破开芯片外壳,暴露内部连接,然后观察、操控、干扰芯片。

【过错产生技术】
使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。使用最广泛的过错产生攻击手段包括电压冲击和时钟冲击。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。

【紫外线攻击】
紫外线攻击也称为UV攻击方法,就是利用紫外线照射芯片,让加密的芯片变成了不加密的芯片,然后用编程器直接读出程序。这种方法适合OTP的芯片。

【其它方法】
如熔丝恢复、修改加密线路、电子探针等。

关于固件漏洞,大家应该相对更加耳熟能详的,经常爆出的路由器漏洞便属于此类。

如果固件代码被攻击者篡改,重新烧录或伪装为升级服务器,终端便沦为肉鸡。降级攻击主要是将固件降级到存在漏洞的版本,以便攻击者进行利用。

硬件终端的丢失与失窃是非常正常的事,然而这些终端中却往往有用户非常敏感的个人数据。如果终端设备未对数据进行加密存储,那么用户信息、会话令牌,甚至明文口令都可能被直接读取。

点·APP安全

大多数APP客户端安全问题都源于APP被反编译,虽然没有百分百杜绝反编译的措施,但堆高破解门槛还是需要考虑的。

点·云端安全

也就是服务端主机的安全。这是白帽子聚集最多,也是最成熟的信息安全领域。

线·APP - Cloud

这部分的安全问题,在移动端测试中经常关注到,大部分也就是云端安全的问题。

线·IoT - Cloud

这部分通信与APP-Cloud直接的通信的主要区别在于,终端到服务器直接的数据传递多以API接口为主,通信协议使用的相对多一些,如XMPP、MQTT、COAP、RESTful HTTP等,这些通信协议的安全性还有待考验。

同时,由于传统的嵌入式开发工程师在安全开发方便的经验相对缺失,以及已有程序未考虑现有应用环境带来的安全问题。

线·IoT - APP

很多情况下也是因为新的应用环境导致的认知不足所致。

技能图

按照个人的粗浅理解,简单绘制了智能硬件安全白帽子的成长路线图。抛砖引玉,大咖们轻拍!


【参考资料】

http://www.eefocus.com/icpojie/blog/17-02/405496_d2475.html
http://blog.knownsec.com/Knownsec_RD_Checklist/
https://zhuanlan.zhihu.com/p/22273147
http://www.freebuf.com/articles/terminal/117262.html

源链接

Hacking more

...