记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

AIoT安全峰会议题回顾|车联网安全的攻与防

2020-11-22 21:14
车联网安全作为Iot安全中最为特别的一个领域,随着车联网的发展逐步走向前台成为焦点,那么,车联网安全的常见问题是什么?车联网又有哪些常见的业务安全问题?这些问题因何而来又如何防范?本议题将带你一探究竟。

演讲嘉宾:郑涛

某车联网安全研究负责人 

网名海盗。在十多年的工作中,先后专注于WEB安全、企业安全管理、Iot与车联网安全等领域,目前就职于斑马网络,负责车联网安全的研究。

车联网安全的攻与防

以下为速记全文:

我叫郑涛,网名海盗,搞WEB安全出身的河南人,混迹过新浪、去哪儿、阿里巴巴,目前方向是在车联网安全领域,外表音轨刀具,内心放荡不羁。 

今天大致分两大部分,一部分是攻的部分,另一部分是防的部分。先看攻的部分,我们经常看到一些车的一些安全资料上来就告诉你,我们要接触车的攻击面。其实有一句话可以拿到这儿来,就是病从口入,怎么理解呢?“口”我们可以理解为所有的数据交换入口,病就是攻击向量,系统处理了预期外的数据,导致偏离了原来的运行逻辑,从而出现各种各样的问题。

常规的渗透套路,我们基本上都会从信息收集开始,下一个过程是比较关键的一个过程,像固件提取、静态分析、动态分析,当然前面有一个前提,做静态分析之前我们还是要做一部分跟硬件相关的东西。我们拿到一个固件以后就可以做静态分析,但是之前我们还是通过这个设备做一个活体检测,即这个设备插上电以后,我可以通过其他的渠道可以在这个设备上跑一些东西,或者说我需要点一些设备上的应用,看看这些应用到底有什么样的数据流量。经过一个漫长的过程,最后到了我们POC的编写和测试,一整个过程的完成。

信息收集阶段,我刚才特别想表达的意思是我们的信息收集一直贯穿于整个项目中的。它非常重要,一个好的信息收集可能让我们的项目成功率能达到80%甚至百分之百,如果你前面做得不太好的话,可能后期对你的结果会产生很大的影响。这个阶段我想分享几个比较有意思的,最中间的是淘宝,我并不是要黑老东家的意思,像淘宝、eBay都是所谓万能的,可以买到所有的东西。现在的车型和信息架构都是持续演进的,一个架构设计好以后,他们就会在这个架构上持续演进,而不是说第三代立马全变了,他们会有一定的延续性。这些延续性就会带来一个问题,以前发现的问题,或者以前别人研究它发现的一些信息都可以沉淀下来,我们通过了解这些漏洞,了解他们发现的信息,再运用到我们自己的新的系统里面去,或者新的架构里面去。

最后一个就是修理厂,我不知道大家有多少开车的人会去跟修理厂老板聊,线下的修理厂也是很神奇的存在,你买不到车机等设备他们都可以帮你搞到,即便不在国内上市的车他们也可以搞到。可能这些都是跟我们的IoT研究是不太一样的地方。


漏洞挖掘这块我举两个我们总结出来的理论,一个是特种战理论,跟阵地战相对立,比如说我们要开车门,如果是阵地战,第二种方法相比第一种方法可能会特别简单,我找到你业务中有漏洞的东西,哪怕只有一个漏洞,我也可以把你的车搞定。这是我们后来总结出来特种战理论,当然也是有前提的,我们干不了特种战那么多人,我没有那么多资源和人力,所以我们只能想一些窍门去做这个事。

另外我们经常遇到的一个问题,我们有时候盯一个服务,搞了一段时间发现往前走不下去了,该怎么利用呢?这时候我们就像手电筒,我离这个目标特别近的时候,我会把这个东西看特别清楚。但是你看的视野就会比较窄,就像图上的地图一样,我只能看到一些路或者一些建筑。当你离目标比较远的时候,就可以清晰的看到我处于什么位置。也就是说当我找不到方向的时候离远了去看,可以看到更多的信息,组合我现在所处的位置,从而作出更好的判断。所以总结出来就是离远了看方向,离近了要看方法。这是我们在漏洞挖掘这块的两个感悟。


另外一个就是拓展攻击面,这是车联网安全方面特别重要的事。我们经常看到前期把攻击面整理完了,但是过程中发现很多攻击面根本没办法下手,这时候可以尝试挖一些隐藏的攻击面,比如说键盘鼠标。我不知道原来搞IoT的同学会不会做这方面的测试,我们原来也不太相信在车上或者车的设备上还有键盘鼠标能用,我们也是误打误撞发现还有这种。我们就通过键盘鼠标去搞定了一个车机,大概前后两三天的时间,你需要反复的根据键盘的信号反馈,然后去找系统的反应。

另外一个就是USB网卡,现在可能有很多设备也具有这种功能,包括我们看到的一些后装的车联网的盒子,有些设备还是会对特定芯片的USB网卡做识别,然后就能发现一些开放端口,比如ssh,然后我们就可以把密码dump出来,或简单的做暴力破解。

还有现在很多车上会做IoT设备的接入,这些设备并没有经过一个完整的检测流程,不像小米这样有一个完整的安全的供应链检查,发出每一个设备都保证是安全的,他们都没有经过完整的检测,车厂也不会对这部分IoT设备做覆盖。这时候就导致一个问题,这个IoT设备如果被攻击了,它就会作为一个跳板,我们就可以进入到车的网络里面去,从而做其他的破坏。

另外一个我想分享一下活体调试方法,其中有一个是重写固件的。我曾经合作过一个很牛的IoT同学,他直接把设备的固件dump出来,在电脑上对它做修改,写入一个后门,写好以后,再重新刷回到车机上。当然也是有前提的,我们有时候千万不要高估设备的安全性,到现在为止我们就遇到很多还在使用安卓4.4或者4.2的系统,他们在安全领域的水平参差不齐。

另外,车跟IoT设备我们理解有两个不同的地方,车具有社会能动性和社会参与性,我们开着车去其他的地方,它会带你到处逛。另外一个不一样的地方,车并不是一次交付就不用管的东西,它也不是一个特别小件或者特别便宜的,我出问题我找卖家换掉,这时候就需要4S店和车厂持续对这个车进行跟踪,包括故障的处理,车出问题了,我打电话,客服就会帮你做远程的解决。他们有很多内部隐藏调试程序,这个权限比较大,一旦搞出来就能利用他们做很多事情。这就是为什么叫隐藏程序。他们会做一些隐藏,不让我们很简单的发现,下图中列的这些就是我们一些常见的,比如说拨号盘,还有一些高级一点的比如是加密U盘,会在U盘插入的时候,系统自动识别你的信息是不是对的。


还有其他的,利用车上的组合按键,比如同时按住音量与重启车机的键,类似于我们手机上的组合键。还有就是多屏触动的,我两三个手指分别在不同的地方去按。这个我们把它称之为借东风,因为这些都是车厂埋进去的,我们要做的就是找出来利用它去完成我们的研究或者攻击。

另外一个就是打七寸,我们认为业务安全是一个特别重要的东西,这个东西相当于蛇的七寸,我可以做边界防御,但是业务没有办法做这些防御。业务必须运行的,业务必须要给用户提供便利,而且你这个业务也没办法暂停掉。就像特斯拉出问题的话,就完全暂停了,它虽然是被动的,但是一暂停之后,就会产生特别恶劣的影响。我们这里列了几个主要的业务,车辆远程控制与交互,系统升级与应用升级,个人网络应用。 

为什么叫打七寸?一辆车可能有成千上万家供应商,业务比如说车机是一个供应商,业务是一个供应商,等等,很多供应商大家一块攒一辆车,这些供应商由于参差不齐,就可能导致我的业务里有很多的问题,这也是我们为什么称之为七寸,很容易出问题,也很容易产生大的安全影响。

最后一个是黑盒流量分析,实验室建设其他的同学也聊了,我们为了简化了,把人从简单的重复的工作里面解放出来,就需要搞一些自动化的东西。一个是除了我们的项目结果产出以外,我们还可以落地一些工具,然后把这些工具往前推,推到一线的开发同学或者二线测试同学那,让他们自动化做一些事。

这里我只是列了一个简单的东西,我们可以做一些DNS劫持,把所有的请求都放到我的服务器上,我就可以拿到你的请求。还有HTTP、HTTPS劫持,我五分钟抓一次,不会漏掉每一个数据包。这个过程中我还可以对这个请求做一些简单的漏洞测试。

关于防守这块我认为防守的核心是平衡,为什么呢?我估计大家都知道,没有人能够做到极致的安全,安全是一个短暂时间节点的平衡。你现在是安全的,可能下一秒就会被攻击到,现在没有漏洞,可能下一秒就会出现漏洞,这时候到底是不是安全,怎么判断安全?你很难做到一个极致,你就会说我先挑重要的去做,这就是内视法与核心风险,我这个公司的定位到底是什么,比如说特斯拉对安全响应做得比较及时,也可以告诉大家说我安全做得虽然有漏洞,但是我可以及时修复。

像IoT厂商核心风险就是用户隐私,像小米现在对用户隐私也很重视。另外,我们还要去做一个准确的团队定位,团队到底是做什么的,我有几个人,到底是该打阵地战还是游击战,我到底有没有能力做更底层的研究,如果把这些搞清楚就很简单了。 

我如果可以做移动安全,我就重点把移动安全做好。当然,这些写的全部是我们在车联网安全,我们做攻防研究时会重点关注的点,当然它并不是全部。但是在这个逐级防御里面我想说两个问题,一个问题是说移动安全,大家经常会看到各种SDK,这些都是第三方的SDK,可能第三方的SDK它有漏洞的时候可以自己升级,但是它升级的时候,其他使用它这个SDK的厂商不见得会更新,我们团队有同学前段时间刚刚发现一个至少有上亿安装量的app,这里面的SDK去年存在的漏洞现在还在。我们这边给他反馈过去以后,他们也说这个漏洞我们早就知道了,但是我们就是一直没修,这种情况其实也是挺让人恨铁不成钢的。你既然这么大的安装量,为什么不把供应链做好呢?这也是最近各大厂商都在做供应链安全的核心原因。

端上的安全主要有两种,一个是应用,一个是系统,我们刚才反复强调业务安全是我们的重要切入点和方向。如果你没有端上的支撑,比如说密钥在哪里,我们的算法放在哪里,你如果没有这样一个支撑,你放在里面等于是没用的,攻击者很容易拿到,不管是存放还是其他的,就像前一段时间特斯曝出的APP接口问题。所以系统安全组件或者应用层面的安全组件也是我们要做防御时的一个很重要的能力点。

最后我想说,脚踏实地这个是必须的。安全运营也是很重要的,就像今天小米做的这么好的一个安全运营,假如所有人都是小米的朋友,不知道有没有人给小米挖漏洞,有肯定是有,但是这个漏洞会不会产生恶劣的影响?当然不会了,所以我们安全人员要团结一切可团结的力量,我们把所有人都变成朋友,就可以控制危害了。SDL就是说我要做一些能力建设、做一些编码的审核,大概把这些事做好就是把流程建立起来了。最后一个是业务安全,就是我们前期大家如果去做甲方的安全的工作,建议大家及早进去,你才能更好的发现这个业务到底在做什么东西,这些东西有没有可能存在安全问题,最后你还要重点看一下代码实现。因为我相信在座的各位可能没有多少同学是同时几百个,每个人都要负责很多的东西,所以一定要脚踏实地有取舍。





2020小米AIoT安全峰会议题索引



No.1 人脸识别的法律规制框架-洪延青

No.2 系统可信标准解读与实践-万鑫

No.3 构建安全可信的人工智能-朱玲凤

No.4 构建可信的物联网安全体-宋文宽

No.5 黑灯:“手机 × AIoT” 智能安全评估-陈长林

No.6 光明守卫:MIUI12全副武装的隐私保护-王乐

No.7 Cortex-M逆向分析与安全-李海粟

No.8 等保2.0-物联网安全扩展要求解读-宫月

No.9 破壁:探索IoT通信安全的研究之道-伍惠宇 李宇翔

No.10 针对汽车无钥匙进入的中继攻击及防护-林国辉


注意:关注小米安全中心,后台回复PPT即可获取本次峰会的议题ppt。

知识来源: https://mp.weixin.qq.com/s?__biz=MzI2NzI2OTExNA==&mid=2247497397&idx=1&sn=0c46bf7db6847cb926cccace43743309

阅读:8184 | 评论:0 | 标签:AI 安全

想收藏或者和大家分享这篇好文章→复制链接地址

“AIoT安全峰会议题回顾|车联网安全的攻与防”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄❤

ADS

标签云

本页关键词