传奇黑客Samy Kamkar在ISC演示基于射频的物联网设备破解

2015-10-04 来源:微波射频网编辑整理 字号:

9月30日,2015中国互联网安全大会(ISC2015)闭幕式暨全球互联网安全精英峰会盛大举行。当日下午,美国知名独立安全研究员Samy kamkar带来了《基于射频工程的物联网设备的破解》的精彩演讲,现场揭秘物联网设备的致命缺陷。

美国知名独立安全研究员Samy kamkar现场演示物联网中RF射频通讯

Samy kamkar表示,基本上物联网的设备无处不在,芯片、无线电深入到我们所有的产品当中,在家里可以放入的芯片看起来像是智能家居,它并不意味着是智能,很可能意味着攻击。当设备、家居、安保锁物联网化,可以通过智能设备控制时,就意味着也许你的邻居就能轻易驾驶你的车,打开你的门了……

智能车库和防盗门被他人控制是很可怕的情况,Samy kamkar通过大量的实验与研究找到了这类物联网设备被控制的重要原因。这类设备大部分运用了无线电技术,通过编码系统可以把一些无线电信号变成可视的,虽然这增加了无线电的可视性,但是并没有提高安全性,反而让它更容易被突破继而被他人控制。

汽车滚动码原理

汽车滚动码原理

Samy kamkar在实验中还发现,他的车库里有很多固定码的车库码(无线电编码),通常情况下3分钟才能够突破整个车库,但是使用了降低keys base技术后,8秒钟就可以进入任何一个车库码,通过STR了解其中的编码,突破车库也就变得轻而易举了。

这一实验结果让人感到了物联网设备的不安全性,令人感到安慰的是,Samy kamkar根据这个结果给出了一些提高安全性的经验“不要使用很小的密码空间,要用序言/同不断来开始每次的密码发送,并且要使用滚动码。”

滚动码相对于固定码固然更加的具有安全性,但是越来越多的汽车使用滚动码技术,促使了破解滚动码的方法愈加先进。最常用的方法就是回放滚动码,利用干扰设备让汽车无法接收到遥控钥匙发出的滚动码,并截取该滚动码,这时车主下达第二次解锁指令,一个新的滚动码就会发出,当车门被成功打开时,前一个被截取的滚动码就可以被黑客用来攻击车锁系统了。

Samy kamkar表示,许多汽车钥匙可以同时收发,但解锁信号人是单向的且不是基于时间的(滚动码无时效性),所以应使用HMAC加密技术防止位倒转,并且让滚动码使用基于时间的算法。

“物联网设备存在,那么黑客就不会消失,我们能做的除了不断努力完善安全系统之外,”Samy kamka提醒道:“请时刻假设自己在使用恶意的网络。”

以下是Samy kamkar演讲实录:

Samy kamkar:大家好!我几周之前来到北京,来过之后我非常高兴又回来了,我非常高兴和大家分享一下物联网的设备,基本上物联网的设备无处不在,芯片、无线电深入到我们所有的产品当中,在家里可以放入的芯片看起来像是智能家居,它并不意味着是智能,很可能意味着攻击,你要知道攻击从哪里来?我们可以知道智能设备、家居、安保锁等都可以通过智能设备控制。

一些方法或无线电频段,蓝牙等有些东西不算无线电,有些是红外的,有些是声频的,音频的,还有超声波等等。这里稍微给大家讲一下我们如何识别出在一个设备内部,工程角度来讲它有什么东西安装,特别是上面没有标签的话,很多像沙盒之类的东西,我们根本不知道里面有什么,所以我们需要分享一个设备前需要了解里面有什么。这是逻辑分析引擎,里面有很多和芯片相连的针尖,里面有一些微控制器和其他设备,我们可以通过这种方式来识别。

另外我愿意使用的方式,我们愿意和大家分享所有做反向工程里使用的设备,我们非常微笑的探针可以和套装进行联系。还有测试接地电压管脚,这里也可以连通很多电源电压器等等,实现它的导通性测试。我相信芯片当中有很多的点,我这里先对它进行绘制,首先我们要看一下这些芯片是什么?

我们看到有些无线电芯片,我们要去分析一下这些无线电芯片里有些数据是来自于新的芯片手册当中的内容,我们把所有跳频、获频的收发器列出来,看它到底影响分布是怎样的,我对它进行一个比较,假设这是一个无线电芯片,他们分析是哪一个芯片呢?我们可以在数据表格里铺开看里面具体有什么。我们做的时候可以做逻辑分析仪,现在有了数据表之后可以把它看到里面的无线电以及微控制器之间的通信,一般做到这些之后可以提取串行的通信,然后通过现在的一个网安系统。

下面跟大家分享的是我们的2.4G频段,我们等于每几秒钟就要进行一个跳频,通过这个测试检查间隔确定跳频模式之后算出反向算法,来判断它的调试方案。我们还有个微控制器对它进行频段之间、微控制器之间的设置,然后对它进行测试和改编。我们通过逆向的RF信号可以做非常多的编辑。很多东西都和无线电本身相关,分析这个设备,其中一点,每当我有无线电设备时会先看一下它的FCC ID,FCC是美国无线电管理委员会,负责无线电通信感觉的,网站上会有FCC表,找到FCC信息,把所有的东西看一下,这是注册的,你可以看到内部的图片,有时候你可以看到它的芯片本身和使用的名称,你可以对它进行研究,就算你不知道这个设备在你眼中也可以进行分析。这是非常惊人的。

我们还可以看到里面使用的频段、设备,你要知道里面的频段,如果你不知道可以从这个图上看到,这里有一些具体的信息,当然还有一些其他的虚拟设备通信的内部图片,或者所有的信息,都可以通过设备通过FCC网站上查询到,这些都是公开的信息。

我们可以看到它的频率调制模式,实际的频段是怎样的,信号是怎样的,有的设备我们在使用的时候和大家分享一点,就是我的演讲你要记住一点,我们软件定义的无线电它的能量何在,无论它是什么,就算是非常先进或者非常简单的,是非常强大的信息,有的时候可能会非常贵,有时候重放攻击当中我使用的设备是10—60左右赫兹在内,10—60左右的功能非常强大,我们可以进行简单的活动,并且还可以不需要波特率,调试和调节可以在20MHz之内做代码采集器,只有20美元,非常的简单。

还有无线电,你可以对它进行编程,软件定义的无线电。GQRX也是频段的频谱分析仪。如果大家没有这个东西也可以使用Windows或其他一些方法STR、rtl-fm,这也是非常好的应用,STR方式使用无线电解调。

解调是什么意思呢?所有的无线电除了数字之外进行调制,所以和你车一样的方式,这样的报告当中,也是FCC的报告,具体信息都在上面列了出来,你可以对它进行调制的扩展。所以,我们可以知道它使用的是哪个调制模式。这里我们可以肯清楚它不同的调试方案是什么样子的。如果你使用这样的方式可以知道它使用软件的情况,我们在30秒钟就可以把它打开,看一下这个设备的内部,看一下ROQ的内部,使用ASK还是DSK,采取那种方案,你可以知道这种STR方式,它是安全系统的一部分,我们可以把数据抽出来看到它的相关性,看到它的信号、带宽以及与实际的Bnell(音)进行对比。在我的车库里我也进行这样的测试,在我家里也使用同样的扩放方式。

编码系统,它只有12位码的,非常有意思的是,有一些无线电信号,无线电现在变成可视的了,有一些可以看到它,有人认为增加了它的可视性,有人认为这不是真正的安全性,只是非常容易突破。12位码的情况下它可以实现,非常快的速度就可以把Crash码打开。如果我们看到的话可以做很多事情,比如可以看到比特级,也可以理解背后的逻辑,可以使用不同的方法,不见得12个bit就是一个对比。

还可以进行更好的计算,来理解它内部的系统,这样我们就可以更好地降低突破系统的时间,我们还进行Crash和其他系统的测试。我经常会用它来控制等的开关等等。比如我发现我的车库里有很多固定码的车库码,通常3分钟时间才能够把整个车库来进行突破。但我们可以降低整个keys base 8秒时间可以进入任何一个车库码,STR里面了解了编码之后就可以在车库内部进行开发,你也可以使用Big seft(音)接收器的方式,通过它也可以使用。

我们也使用其他的设备,这个设备非常重要,比如Yard stick one,它是个转码器,可以实现转码的功能。还有一些硬件和STR是一样的,我们可以看到简单的数据,并看到数据的编程和变化的情况。

这是Mattle IM-ME,它也是有个芯片,我们使用CC1110,它也是强大的收发器,并且也是一个非常有用的工具,特别是我们使用手持的时候。而且也有非常好的编程设备。这是非常好的工具,可以让我做很多反向编程。

这里我把重点放在低成本的硬件当中,低成本的软件来做这种类型的反向,我们每天使用非常重要。这里有一些教训,不用使用很小的密码空间,我们基本可以使用非常小的密码空间时,要使用滚动码。另外一点,也是在LT里连接比较多的是物联网的车辆,他们现在都实现了互连,首先它带给我们污染,同时也接受收发器。上面也有通过无线电可以上网,通过因特网互联。

这是upside可以使用网络安装,使用Wi-Fi和车辆定位,可以实现开锁解锁和启动。检查之后可以看到我的手机和计算机、因特网进行互动。这实际上不是做验证的,我们可以进行通讯解析,攻击中间使得设备本身不用做早期的预警,可以使用它进行解码所有已经加密的路径,包括使用你的密码、用户名就可以,这样你可以使用车辆,非常容易地获得它的用户名和密码,就可以进入到这个车辆里面,对它进行远程的启动和解锁、上锁,非常得简单。我们也使用了非常低成本的东西,数媒态(音)和开源软件,还有SSL media以及其他设备结合来使用。

另外,你要确保使你的手机进入到连线网络里,怎么实现呢?够很多手机可以非常得有意思,如果你周围没有一个Wi-Fi网络时,你的手机就可以提出一个探查请求,比如我这里是ABC,可以使用360,手机就可以获得探查请求,手机可以获得一个网络,成为手机想要的名称,这样你的手机就自动加入这个网络,加入网络之后你可以自己作为中心来进行攻击,非常简单,每个人都可以进行使用,差不多100多个这样的设备,我自己就是用这样的设备可以把我朋友雪佛兰的车直接key进去了,可以非常简单定位这个车辆。

有很多教训,有很多车辆可以使用,比如奔驰、宝马、克莱斯勒等等,在这些平台车辆当中,我们依靠这些车辆进行驾驶,但用人工工具可以做非常多的事情,这个教训是,你你使用加密时要非常好地对它进行使用。我们今天听到很多关于恶意攻击,重点在于你进行密码加密时要做非常好的验证。

密码里现在使用越来越多的滚动码,我用滚动码做车控,家里也做安保,滚动码可以实现不同数据的传输。比如有些人想侵入你的系统的话,通过滚动码和实际的基站进行通信。今天使用滚动码,每当出现问题时就会看到锁定码,它使用不同的密码和不同的滚动码,这样可以防止重放攻击。当你想解锁你的车辆,有的人看到了,晚上他可以把你的代码进行替代,他说我不需要把你进行重新的解码了。我们如何防止这样的攻击呢?它的工作原理,需要获得你同步的工作种子,车辆的钥匙,你的车里面作为接受器,钥匙等于是个发送器。所以,非常有意思的一点,它可以防止重放攻击。架构上你可以直接摁你的钥匙,如果贴近你的车辆,你的车辆根本不会听到你独特的代码,这样你就可以把这个码拿走进行替换,当然这是非常难的攻击,因为当你摁你的钥匙时不在车里面,除非我进入到你家里面,但需要偷你的钥匙才行。

所以,我们可以做到的一点,我们可以干扰它,非常有意思的是它可以干扰,有非常多的情景应用,这样的应用过程中,我给大家展示了一下,在物联网安全当中以及车辆当中都可以使用。干扰是添加稍微一些频点进行发放,把你的车辆和频段稍微做一些偏移就可以了,这样让你的车辆没有办法读取到一些信息。比如我可以干扰你的频点,使得它在侵入时你的一些检测器它能够检测到我,就会回到基站说有人在干扰我,这样这个信号他就永远不会接收到了。

对于车辆来讲,如果我摁解锁键它就会把解锁间发到基站去,但这个解锁键是独一无二的,所以只要在我稍微偏移的频点对它进行干扰,只要稍微偏一点点我就可以把这个码来替代一下,而且这个码只能用一次,这样你的车就不能用了,你的车就没法解锁了,它就会干扰。这是我收听第二个码发出去,这时候你可以停止干扰,这时候用第一个代码把第二个代码替代,把车给解锁了。我这里要使用从来没有被车辆读取的信号,或者你安保系统从来没有读取过的系统。安保系统实际可以把这个代码拿走,后续做个攻击,比如我可以进行数据的重新编排,发现有人在侵入,我就可以干扰这个信号,后续我再对它进行小小的偏移。

我可以在一个比较大的建筑里,你可以说好的,在左翼可能出现了一个人侵入,我可以去检测这个滚动代码,更换这个信息,启动报警地区,我可以侵入这个地区,因为我有他们的数据和信号。所有的信息系统和I/O设备不是用射频,而是用简单的办法,使用沟通的协议。

我们做基本的分析,使用低成本的设备,你就可以做很多工作,滥用很多系统,这是一个非常激动人心的时刻,它现在无所不在。这是个例子,显示汽车的攻击。我打开了我邻居的灯,它里面有一些灯光的系统等等,这是Teensy3.1还有CC1101发射机等。这个硬件只有31美元,你可以打开它的车,打开它的家门,侵入到他的安全系统。因此,安全,我学到了很多的经验教训。现在他们使用更多的,我们希望基于时间的算法,还有Hash加密,如果接触到的话,可以防止被倒转。所有这些都是非常激动人心的,我希望能够做更多的研究,能够将我所做的研究信息和大家分享。

谢谢大家能够邀请我来参加此次的会议!

主题阅读: 物联网