硬件层面的修改在现实生活中是相当常见的事情,所谓的硬改、魔改、硬破等等说法,指的就是在硬件层面对设备进行diy功能改造。例如针对传统路由器的硬件架构,替换大容量的内存和闪存芯片,使之能够刷openwrt系统;对某些设备进行配置层的升级,如iPhone,小米等手机内存扩容,使之具有更大容量的存储空间和运行内存; 以及对设备的破解,例如ps,xbox等游戏主机系列的硬破、软破,还有对各种加密录音笔,摄像头,加密U盘和硬盘的破解。
研究硬件修改对硬件diy改造,以及厂商在硬件层的安全防护具有非常重要意义。硬件层修改分为硬改和软改两个部分,硬改是对硬件中芯片和电路的改造、替换等,软改是针对芯片固件的修改、重打包等。本节将用具体的几个实例展示如何对设备进行硬改。
《Vault 7》是由维基解密从2017年3月7日开始,发布的一系列文件。其中详细描述了美国中央情报局(Central Intelligence Agency)执行电子监视和网络战的细节活动和能力。Chimay Red是Vault 7中泄漏的CIA Hacking Tools中包含的一个用于exploit运行Router OS的MikroTik(MT) 路由器的一个工具,此工具可用来向MT路由器上传HIVE(Vault7中泄漏出的一个CIA远程控制工具)或者shellcode等payload。Vault7泄露的文档中只包含了工具的使用手册,但此工具并未公开。BigNerd95在github上的Chiamy Red项目根据RouterOS的补丁对Chimay Red中使用的漏洞进行了揭露并给出了poc。
芯片安全是针对芯片本身的安全研究,其在知识产权保护,防抄板山寨、加密破解、优化设计、漏洞挖掘和芯片木马等方面都具有深远意义,传统安全往往着眼于上层应用和驱动层面的安全,然而如果芯片存在本质的设计缺陷或安全漏洞,传统安全手段往往很难触及底层,前段时间英特尔芯片的“崩溃”(Meltdown)和“幽灵”(Spectre)漏洞,轰动整个世界,造成了巨额的损失,此次漏洞爆发就是因为芯片自身的设计缺陷所导致的,芯片级的安全研究是一项长期而艰难的工作,其是一门涉及多学科多门类的综合性研究,包括:微电子学、计算机科学、数学、物理学、化学、电磁学、光学等等。芯片分析方式主要包括非侵入式、半侵入式、侵入式、侧信道等。本文通过对某款蓝牙锁芯片的处理和固件提取,作为芯片分析的简单实例。
上节介绍了关于通过编程器直接读取芯片获取固件用来静态分析的一点思路,本篇将介绍通过UART串口来直接与机器交互,通过串口输出输入信息,做动态调试。
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。
对于物联网硬件的串口调试,多数情况下指的就是通过UART串口进行数据通讯, 但是我们经常搞不清楚它和COM口的区别, 以及RS232, TTL等关系, 实际上UART、COM指的物理接口形式(硬件), 而TTL、RS-232是指的电平标准(电信号).
UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V)、高电平为1(3.3V或以上),Uart串口的RXD、TXD等一般直接与处理器芯片的引脚相连,而RS232串口的RXD、TXD等一般需要经过电平转换(通常由Max232等芯片进行电平转换)才能接到处理器芯片的引脚上,否则这么高的电压很可能会把芯片烧坏。
在调试的时候, 多数情况下我们只引出rx、tx、gnd即可,但是UART的数据要传到电脑上分析就要匹配电脑的接口,通常我们电脑使用接口有COM口和USB口(最终在电脑上是一个虚拟的COM口),但是要想连上这两种接口都要需要进行硬件接口转换和电平转换。