关于IoT安全我有话说

2019-08-27 68352人围观 ,发现 6 个不明物体 工控安全

随着5G的到来,万物互联渐渐走入了千家万户,但是接着而来的就是安全问题了,目前市面上的路由器,摄像头,智能门锁等都普遍存在flash问题,也就是说拆掉flash放到xtw100上可以直接dump出未加密的原始数据。

一、iot大致的破解流程

1.1 寻找uart接口

当然一些板子做了一些简单的防护,要不少焊接一个零部件,要不没有焊接引脚,但是总归是从soc上把uart的线引出了。找到引脚后,开始用那个万用表有模有样的猜测tx,rx,gd引脚

1.2 测试波特率

找到uart引脚后,开始遍历波特率,最终的结果是不出现乱码,比如这样

1.3 文件系统密码

一些厂商也可能稍微做了一些安全防护,设置了一个复杂的密码,如果你不知道密码,可能控制台就不好使了,所以就需要用到binwalk这个软件,解压缩文件系统,替换一下密码,再打包一下

1.4替换文件系统

问题来了?

问题1:我怎么给打包好的文件系统替换进去了?

如果大家按照上面的步骤做下来,肯定会知道,默认linux 内核会打印系统分区表,

0x00000000-0x00040000 "bootloader"
0x00040000-0x00060000 "params"
0x00060000-0x00580000 "kernel"
0x00580000-0x10000000 "root"

问题2:知道位置了,我们怎么替换进去?

这里就有一个硬件(土豪金xtw100)

但是需要你的手艺好,能取下flash,再给flash放到xtw100上,进行读写。

1.5 开始挖掘漏洞

到了这一步,就开始传送gdbserver到iot设备上进行调试,挖掘漏洞,这里我就不扩展了。

二、flash的对抗

通过上面的步骤我们可以总结几点,

第一点:必须要获得分区表(这个是通过uart的打印信息获得到)

第二点:通过binwalk软件来提取文件系统

那么对于我们的对抗,就必须在这二点上做文章

2.1关于UART打印问题

设计板子的时候其实有母板,当然肯定有,但是成品后我不建议从soc上引出uart的线,如果你的意见是有问题我需要调试怎么办?那么就折中一下,修改一下bootloader,等用用户插入U盘或者sd卡,我们读取一下里面的内容,对他进行校验一下,如果验证通过,我们才开始打印。

2.2通过软件提取文件系统问题

我们首先来看看binwalk是怎么匹配文件系统的,我们打开binwalk-master/src/binwalk/magic/filesystems。

看到没有jffs2文件的匹配格式,这里我们就来最简单的,给magic修改掉,我们重新生成一下mkfs.jffs2软件。

这里我修改一下mkfs.jffs2里面jffs2文件的magic,具体位置:mtd-utils-2.1.1/include/linux/

我们给这里magic修改一下,再编译一下,再用mkfs.jffs2生成一下文件系统,再用binwalk这类软件扫描一下修改后的文件系统。

现在已经找不到了。

2.3 最后大混淆

虽然我们修改了文件系统,但是如果你们dump过整个flash,就应该知道。

看看

0x00000000-0x00040000 "bootloader"
0x00040000-0x00060000 "params"
0x00060000-0x00580000 "kernel"
0x00580000-0x10000000 "root"

虽然分区表很紧凑,但是你填写的内容没有这么大,所以中间默认以FF填充,那么我们聪明的破解者利用这些FF就大致可以猜测出分区表,所以为了更加安全,我们把一些没有用到的扇区填充杂乱无章的数据,这样让人分不清楚分区表,这样哪怕你dump出flash,也无法修改里面的内容。

2.4我移植后的文件系统

三、总结

3.1各个入口阻断

攻击者要攻击设备,第一步肯定是获得攻击源,那么我们就需要

flash填充未使用页的垃圾数据和自定义文件系统

升级包加密(防止通过抓包获得原始升级包)

3.2 uart打印

这里我们最好不引出uart的引脚,哪怕非要引出也需要通过外部授权才能打印调试信息

3.3 分区表隐藏

这里需要隐藏uboot和kernel中的分区表,最好加密存储

虽然每个程序的水平参差不齐,但是我们可以守护iot的第一道大门,不是虽然一个人就可以自由进出的,希望抛出这块砖希望能引出各大厂商这块玉,希望各大厂商保护好第一道门。

最后祝愿iot越来越红火。

一年没有见,刀郎想你们了。

*本文原创作者:刀郎,本文属于FreeBuf原创奖励计划,未经许可禁止转载

发表评论

已有 6 条评论

取消
Loading...

特别推荐

推荐关注

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php