今天跟女票下班之后直接去电影院看速8,当然看完速8之后并没有去速八而是直接回了家。首先对电影给个正面的评价,但是本人作为一个信息安全从业者,有必要扒一扒里面的黑客技术。
里面涉及到黑客技术的东西主要有两个——天眼(The Eye)和僵尸车队(Zombie Cars)。
对于这两个东西其实和现实当中两项比较前沿的安全技术相关——汽车及物联网安全和攻击者溯源,对于汽车安全这一部分,我的基友闹心均@Selfighter是砖家中的砖家,可惜人在HITB,所以我先很业余的说一些这方面的东西。
首先我们先来说说智能汽车和非智能汽车,智能汽车其实就可以当做一个物联网设备来解决,也就是说智能汽车的攻击面和其他IoT设备的攻击面是差不多甚至更多的。
其实汽车和计算机一样,内部通信依靠总线进行,汽车中的总线是CAN总线。CAN网络是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。CAN总线协议目前已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,同时也是车载ECU之间通信的主要总线。当前市场上的汽车至少拥有一个CAN网络,作为嵌入式系统之间互联的主干网进行车内信息的交互和共享。CAN总线的短帧数据结构、非破坏性总线仲裁技术、灵活的通讯方式等特点能够满足汽车实时性和可靠性的要求,但同时也带来了系列安全隐患,如广播消息易被监听,基于优先级的仲裁机制易遭受攻击,无源地址域和无认证域无法区分消息来源等问题。特别是在汽车网联化大力发展的背景下,车内网络攻击更是成为汽车信息安全问题发生的源头,CAN总线网络安全分析逐渐成为行业安全专家聚焦点。如2013年9月DEFCON黑客大会上,黑客演示了从OBD-II控制福特翼虎、丰田普锐斯两款车型实现方向盘转向、刹车制动、油门加速、仪表盘显示等动作。汽车车内CAN网络安全问题当前主要通过安全漏洞的分析和各种攻击手段进行挖掘,因为汽车车内网络安全的脆弱性和威胁模型的分析尤为关键。
这么说来,只要抓住了CAN总线,我们就相当于是抓住了汽车的神经,也就能对汽车进行控制,那么攻击CAN总线会引发什么后果呢?
第一个后果是失控:CAN总线主要应用之一是支持主动安全系统的通信,道路车辆行驶的时候,主动安全系统将是一把双刃剑,在它们发挥着不可替代的功能时候,但是考虑到主动安全系统的可操作和有能力调整正确的输入,也会引起驾驶者对主动安全系统的完全依赖。因此一个突然的故障会引起不可预知的危险后果。为了引发一个危险的条件,恶意的攻击者将会在CAN总线中注入错误帧,让主动安全系统失灵。例如,在牵引力控制系统里安装一个攻击,会造成车辆失去控制等危险。如果攻击者的目标是自适应巡航系统,将会导致汽车不会安驾驶者预期的那样停止。此外,为了最大可能的伤害汽车驾驶者,假如数据可以直接从CAN总线上获取,攻击者可以根据特定的条件,触发一个DoS攻击。例如汽车某一特定速度,特定的节气门百分比或者是某一确切的GPS位置等。
第二个后果就是勒索:一个恶意的攻击者将在CAN总线中某一目标帧中设置攻击,这将会导致驾驶者无法控制节气门的位置从而不能让汽车移动。尽管这些不会必定发生危险状态,一个以金钱为目的的攻击者,将会利用车载娱乐系统的漏洞,停止汽车,并在娱乐系统屏幕上显示消息,车主为了重新获取汽车的操控权而去付赎金。
第三个可能是盗窃:大部分现代昂贵的汽车门锁通过CAN连接到ECU来控制,通常通过OBD-II端口可连接。隔离负责控制锁/解锁车门的数据帧比逆向主动安全设备更简单、更快捷。因此,几分钟左右一个攻击者将会隔离负责锁车门的数据帧,编写他的设备程序-特定帧的DoS攻击,然后把设备插入到OBD-II的接口,阻止车门锁住。对于一个攻击者来说,这个攻击结果是可能的。通过低成本的花费就能进入到车内,随后就能够窃取车内任何贵重物品。
长期以来,几乎整个汽车界都有这样的共识:CAN总线是没法保护的。两方面的原因,其一,ECU的计算处理能力不足;其二,车载网络的带宽有限。有些LIN总线使用的MCU甚至是16bit或8bit,但AES使用的加密算法只能处理16字节区块的数据,这意味着很多时候LIN总线根本就是处在“裸奔”的状态。所以汽车安全未来肯定是炙手可热的一部分。
接下来我们说说天眼,其实天眼的目标很简单——我知道一个人的一部分信息,如何根据一部分信息去拼凑出一个完整的信息,比如他去过什么地方,干过什么事情,目的是什么,用了什么东西,也就是广义上的了解你的敌人。对于安全工作者来说,转化到现实当中的问题就是甲方安全团队在找到攻击者之后如何让攻击者不再攻击你?单单从防御的角度上来说,我们可以上规则、上设备,但是这样并不能从根本上解决问题。继续说回电影,其实《赤道》中香港、韩国两方面只希望把武器送走,确保不在香港交易同时回到韩国,这样就解决了这个问题。但是宋总不是这么想,宋总站在了更高的角度上,他不希望把香港变成真正的地下武器贩卖中心,也就是要把地下武器交易这个链条彻底打碎。从解决问题的角度上来看这两者都没错。
回到正题,对于攻击者来说,攻击者一旦发起攻击就会在目标系统中产生数据,不管有用也好无用也罢,总之数据都会产生,诸如流量数据、操作日志、爆破记录、工具指纹、网络地址等信息。
Phase 1:从日志分析的角度上来讲,既然我们有这么多的设备,有这么多的日志,我们要做的就是把这些想关的攻击向量和行为日志收集起来,统一到一起,看看有什么线索。
Phase 2:既然我们已经收集到了很多的日志和数据,那么我们可以从日志中把这些信息拼凑成一个完整的攻击行为记录:即它是通过什么漏洞进来的,如何进来的,进来之后做了什么,对系统有什么影响。完完全全使之成为一个攻击的模型,这样的话也就完成了对入侵的推演。
Phase 3:我们既然知道了他是如何进来了的,从甲方安全运营的角度来讲,我们需要确认其他机器当中是否有相同的漏洞和配置错误,要避免其它的人利用相同的方法入侵系统,毕竟不能在一个坑栽倒两次。
Phase 4:我们现在有了攻击者的一些信息,我们是否可以通过外部威胁情报数据来看看这个攻击者是不是之前攻击过其他系统,攻击是不是有针对性,工具用的是进口的、国产的还是自己写的,是不是有其他的同伙或者帮手,他到底是怀揣着什么目的去攻击我们的系统。
Phase 5:如果我们确定他的身份是恶意的,并且对我们的系统造成了很严重的影响,我们是不是应该知道这个人是什么来头,他的个人信息(虚拟身份和真实身份)我们是不是要了解,我们是不是应该去用法律手段搞他,等等。
其实攻击溯源,其实是数据驱动的企业内部安全运营的一部分,需要大量数据的支撑以及分析才能找到攻击者,而企业内部我们见到最多的数据无非就是日志了,所以日志的分析和内网威胁情报的提取是非常重要的一环。
针对安全运营来说,我个人认为所有的攻击者不可避免的都会产生操作日志,针对内网内的安全设备也好,非安全设备也好,肯定或多或少的存在日志。
针对企业内部的日志,大体上可分为四类:安全设备日志、非安全设备日志、传感器日志和外部数据。
对于追踪来说一般有这么三种套路:
- IP->域名->Whois信息->社交网络信息->真实信息:这个套路对于现在来说可能用处不是特别大,但是根据历史Whois信息也是可以得出一些启发性的结论的,当然这些威胁情报数据可能付费。
- IP->VPN->IP->社交网络信息:这种情况一般是大多数,解决方法是通过查询IP反连记录,解析操作和一些fingerprint获得他的虚拟身份信息,当然也是要收费的
- IP->botnet->IP->社交网络信息:这种广泛分布于挖矿、刷票、DDoS这种肉鸡类型的,可以想办法截获起botnet样本进行逆向分析,获取其c&c服务器地址,然后对服务器进行反连查询。没错还是要收费的。
- 安全设备日志:这些日志来源可以是硬件也可以是软件,首先就硬件来说注入IDS/WAF或者SIEM中的日志、硬件防火墙等等日志,软件日志包括防病毒软件、安全Agent、准入系统等软件系统的日志。这些日志一般都是攻击者进行攻击时会进行被动触发,这样的话可以检索到很多攻击信息,诸如使用的IP、端口、工具指纹等等。
- 非安全设备日志:诸如路由器、交换机、网关、网闸等硬件设备以及操作系统、应用软件、服务器软件日志等软件日志,这些日志中可以分析出攻击者的目的,是为了单纯渗透玩一下还是想要通过控制机器作为跳板机进行进一步的渗透工作,还是说仅仅是安全部门进行扫描产生的日志。
- 传感器日志:企业内部通常会部署一些蜜罐系统、流量传感器等,这些设备一方面可以有攻击预警和反横向渗透的效果,但是里面也会存在一些攻击者的行为,比如SSH蜜罐会存下攻击者在这台机器上的操作,流量传感器会对数据包进行DPI解析方便流量分析,这些数据中肯定残存着一些有用的信息可以帮助我们确定攻击者的行为、技能点,甚至可以进一步判断该攻击者的能力,是脚本小子还是大黑阔。
- 外部日志:一些常用服务的日志,比如说邮件、DNS等日常服务的日志,这些日志可以帮我们确定攻击者是否是一种APT攻击,或者是是否是来种植Botnet的。同样可以确定攻击者的动机。
说完了日志,我们紧接着可以说一下攻击者的动机判定,攻击者想要入侵一个系统肯定会对这个系统进行侦查,诸如端口扫描、脆弱性检测、exp测试等手段,这里面很容易和安全部门的安全常规巡检的日志起冲突,大多数公司都会把扫描机群放到白名单里。这样产生了类似的日志就会触发报警,我们可以进一步分析这些日志提取出一些攻击者的行为、动机等等,以及他的目的甚至他的技能点,我们都可以初步判断。
通过对以上日志的分析,我们可以基本上确定攻击者是什么途径进来的,用何种攻击方式拿到机器权限,有没有执行什么敏感的操作,是否有进一步渗透的趋势,是不是在尝试提权之类的操作等等,这样我们就对攻击者有一个大概的了解。
接下来我们就需要借助外部威胁情报的力量来获取攻击者的身份,我个人比较喜欢国内的微步在线和国外的PassiveTotal这两个平台,尤其是后者,数据比较全而且覆盖度很广。当然不差钱的各位可以选择去买威胁情报服务,更专业。
简单说一下威胁情报可以帮我们干什么,威胁情报其实就是根据上面获得残破的攻击者画像变得完整,威胁情报一般可以获得这个攻击者有哪些常用的IP,这些IP分别都是干什么的,有没有什么社交信息,社交信息又有什么关联。举个不恰当的例子就是相当于你知道一个人的身份证号,然后警察用这个身份证号去查这个人有多少钱,资产有多少等等。这样你就可以获得一个较为完整的攻击者画像。
到了这里其实我们知道了攻击者的信息,就可以选择怎么解决,拉倒办公室弹jj10分钟是一个解决方案,扭送到警察蜀黍那里也是解决方案,但是需要提醒大家注意执法力度和执法手段,不要知法犯法(逃。
说到以上大家会觉得我偏题了,你娃不是说要讲天眼么,怎么扯了一大堆安全运营上的事儿,这跟天眼有什么关系。那么接下来的事情就和天眼有关系了:
在电影中,飞车家族只需要输入一个名字就可以去找到这个人,确定他的位置,然后上门送温暖喝热茶。但是现实当中,重名的你懂得,所以我们现在从其他的地方下手:
Part 1:长相,这里无非就是涉及到人脸识别技术,没什么好说的(其实是我不懂)
Part 2:身份证号码,这个就比较重要了,身份证号码对于广大人民群众来说,变的机会基本为0,很多企业不管是干什么的也好都喜欢玩实名制,尤其是一些小的金融公司和P2P公司,总喜欢没事问你身份证号。鉴于我国信息泄露这个问题还是挺严重的,所以我们不能保证别人没有我们的身份证号。我们来说有了身份证号能干什么:先来造一张假的身份证,然后利用这张身份证(照片或者扫描件)去搞一些不需要实体身份证的东西,比如你懂得。这样我们就能把这个人的一些账户劫持了,能干啥你现在应该明白了。
Part 3:手机号码,一般我们通信都用手机号码,手机号码泄露更是屡见不鲜,和身份证号一样,许多企业都是动不动就跟你要。手机号码泄露更是一件蛋疼的事情,骚扰电话短信不说,由于现在很多手机号码和业务是绑定的,也就是用手机号码就可以登录相关的业务,这样的话手机号码的泄露很有可能就会联系到相对应的身份,举个最简单的例子:手机号码绑定QQ号码,然后QQ号码可以查询群关系,之后通过群关系能搞出很多信息,后果你懂的
Part 4:QQ号码,其实上面已经说了,QQ号码相当于虚拟版本的身份证号,很多东西都和QQ有关系,比如iCloud账号、游戏账号、甚至是一些信用卡账单啊什么的绑定的邮箱都是QQ的。QQ号码能查的东西那就太多了,上面就是个例子。
Part 5:电子邮箱,这个在国内似乎用的比较少,但是企业内部的电子邮箱是讨论的重点,企业内部电子邮箱是很多攻击者最喜欢的地方,因为可以以此为突破口获取企业内部的一些信息。当年在甲方做安全运营的时候经常收到各种同时转发过来的钓鱼邮件,就是用来骗取Exchange邮箱账户的,这些对企业内部安全构成了严重的威胁。
补充:有个网站可以查到某个邮箱/手机号注册了什么网站。。。。。
所以,天眼的实现基础,其实是背后的数据在做支撑,数据,其实就是泄露的数据,民间收集的数据来源主要还是各大数据库泄露的SQL文件等,当然不排除有些万恶的黑产玩无间道,此处有句xxx我一定要讲。
其实《速度与激情8》里面的黑客技术就现在看来是可以完全实现的,只是实现的成本有高有低,但是搞攻防的话,一定要站在攻击成本的角度上去考虑,安全无绝对,所以大家也没有必要为这些事情担心,安全研究院和厂商之间的互动越来越多也从侧面证明了现在大家对安全的重视,作为安全工作者,我们也非常愿意帮助厂商做好安全这一部分。先说这么多吧,此文仅作为科普,如需讨论细节还请回复或者发私信。
【本文是51CTO专栏作者elknot的原创文章,转载请通过51CTO获取授权】