0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

芯片漏洞实战之破解KASLR

Linux阅码场 来源:https://paper.seebug.org/497/ 作者:蒸米,白小龙 2020-11-26 13:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Meltdown和Spectre分析以及CPU芯片漏洞攻击实战,教你如何破解macOS上的KASLR。

作者:蒸米,白小龙 @ 阿里移动安全 来源:

https://paper.seebug.org/497/

0x00 影响

早上突然就被Meltdown和Spectre这两个芯片漏洞刷屏了,但基本上都是一些新闻报道,对漏洞的分析和利用的信息基本为0。作为安全研究者,不能只浮在表面,还是要深入了解一下漏洞才行,于是开始研究这方面的资料。结果发现其实这个硬件漏洞的影响非常广,不光是IntelARMAMD也受影响,只是AMD的影响比较小罢了。因此基本上所有的操作系统(Windows,macOS,LinuxAndroid等)都有被攻击的风险。漏洞有两种攻击模式:一种被称为Meltdown,是在用户态攻击内核态,造成内核信息泄露。另一种被称为Spectre,一个应用可以突破自己的沙盒限制,获取其他应用的信息。另外,因为是硬件漏洞,这个攻击对云的影响非常大,利用这个漏洞,一个guest可以获取host或同一台服务器上其他guest的信息,可以说是一个非常严重的漏洞,因此亚马逊和google都在紧急加班修复漏洞。比如google就公布了漏洞修复的进度在:https://support.google.com/faqs/answer/7622138。虽然是硬件漏洞,但是在系统或软件层面上通过牺牲性能的方法还是可以进行修补的。

0x01 原因

那么我们现在知道漏洞很严重了,那么漏洞形成的原因是什么呢?关键点在于Speculative execution(推测执行)。推测性执行是一种优化技术,CPU会执行一些可能在将来会执行任务。当分支指令发出之后,传统处理器在未收到正确的反馈信息之前,是不会做任何工作的,而具有预测执行能力的新型处理器,可以估计即将执行的指令,采用预先计算的方法来加快整个处理过程。如果任务最终没有被执行,CPU还可以回滚到之前的状态,就当做什么都没发生过一样。但是这样真的安全吗?答案是,并不安全。攻击者通过寻找或构建一些指令就可以在CPU回滚的时间窗口里进行一系列的攻击。比如Google Blog中提到的边界检查绕过(CVE-2017-5753),分支目标注入(CVE-2017-5715), 恶意数据缓存加载(CVE-2017-5754)。

举个例子,如果CPU执行下面这段代码:

arr1->length没有被缓存的时候, CPU会从arr1->data[untrusted_offset_from_caller]处读取数据,如果untrusted_offset_from_caller的值超过arr1->length,就会造成越界读。当然,正常情况下这并不会出现什么问题,因为在执行到判断语句那一行的时候,CPU发现不对,后面的语句不应该被执行,于是会将状态回滚到越界读之前。

但是接下来,问题就出现了。假设arr1->length,arr2->data[0x200]和arr2->data[0x300]都没有被缓存,CPU会继续推测执行下面的代码,在这里index2会根据value&1产生两个不同的值0x200,0x300,而Value就是越界读到的值。接下来,代码会根据Value的值去读取arr2->data[0x200]或arr2->data[0x300]的值并且这个值会被加入到缓存里。接下来,我们可以再次尝试去读取arr2->data[0x200]和arr2->data[0x300],读取时间短的那个值说明被缓存过了,因此就可以判断出value&1的值为0还是1,从而做到内核信息泄露。

其实,在google的blog发布之前,就已经存在类似的攻击了,只是危害没有这么大而已,今天我们就直接实战一个利用Intel CPU芯片漏洞来破解macOS KASLR的攻击。

0x02 芯片漏洞实战之破解KASLR

这种攻击比较简单,但是是后面高级攻击的基础,因此我们先从这个攻击讲起。之前我们讲到,为了让CPU效率更高,它们依靠推测性执行在任务到来之前就提前执行任务。同样,数据预取就利用这个思想推测性地先将数据加载到缓存中。Intel的CPU有五个软件预取指令:prefetcht0,prefetcht1,prefetcht2,prefetchnta和prefetchw。这些指令作用是提示CPU,告诉他一个特定的内存位置可能很快被访问。然而,Intel的手册中却提到,预取“未映射到物理页面的地址”会导致不确定的性能损失。因此,我们可以通过CPU预读指令执行的时间长短来判断这个地址有没有被映射到物理页面上。

我们知道KASLR的原理是在内核的基址上增加一个slide,让攻击者无法猜测内核在内存中的位置。但是内核肯定是被映射到物理页面上的,因此我们可以使用预取指令去遍历内核可能的起始地址,如果执行预取指令的时间突然变短,就说明我们猜中了内核的起始地址。我们在网上成功找到了破解macOS 10.13 KASLR的POC,并做了一点简单的修改:https://pastebin.com/GSfJY72J

其中关键代码如下:

这是一段汇编,参数会传入想要预取的地址,然后利用rdtscp和rdtscp来统计指令执行的时间,并返回。于是我们从内核可能的起始地址开始,不断地执行这段汇编代码,直到我们找到内核的起始地址为止。

可以看到在0x15c00000这一行,指令执行的时间明显缩短了。因此,我们可以猜出Kernel Side为0x15c00000。

0x03 修复

根据某内部漏洞修复人员在twitter上的回复,苹果已经在macOS 10.13.2上对此类芯片漏洞进行了修复,采用了牺牲性能的针对用户态使用两次映射的方式来解决该问题。并号称10.13.3上有更好的解决方案。另外iOS的A*系列芯片暂时还不受这类漏洞的影响。

0x04 总结

本篇文章只是给芯片的一系列漏洞开了个头,我们随后还会有更多关于芯片漏洞的分析和利用实战,欢迎继续关注本系列的文章,谢谢。

参考文献:

1. https://googleprojectzero.blogspot.hk/2018/01/reading-privileged-memory-with-side.html

2. https://siguza.github.io/IOHIDeous/

3. Prefetch Side-Channel Attacks: Bypassing SMAP and Kernel ASLR, CCS 2016.

责任编辑:PSY

原文标题:性能VS安全?CPU芯片漏洞攻击实战(1) - 破解macOS KASLR篇

文章出处:【微信公众号:Linuxer】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    463

    文章

    54441

    浏览量

    469419
  • 漏电
    +关注

    关注

    4

    文章

    163

    浏览量

    21397
  • intel
    +关注

    关注

    19

    文章

    3511

    浏览量

    191647

原文标题:性能VS安全?CPU芯片漏洞攻击实战(1) - 破解macOS KASLR篇

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SPE协议芯片如何让工业布线瘦身70%?三个实战案例告诉你

    在工业现场,布线一直是让人头疼的问题。传统的以太网需要4对线,体积大、成本高;现场总线又速率低、互操作性差。SPE(单对以太网)协议芯片的出现,正在改变这一切。本文通过三个实战案例,看看SPE如何让工业布线瘦身70%。
    的头像 发表于 03-13 17:49 1204次阅读

    curl中的TFTP实现:整数下溢导致堆内存越界读取漏洞

    漏洞概述 在 curl 的 TFTP 协议实现中发现了一个漏洞,该漏洞可能导致 curl 或使用 libcurl 的应用程序在特定条件下,向恶意的 TFTP 服务器发送超出已分配内存块边界的内存数据
    发表于 02-19 13:55

    芯片过热导致锁死?全自动烧录机温控系统的优化实战

    空间,热量难以散出。 缺少实时温度反馈与控制:设备仅有环境温度监测,无法感知芯片表面的实时温度变化,更谈不上根据温度动态调整烧录速度或冷却强度。 优化实战:针对性改进与效果验证改进措施需要低成本、易
    发表于 02-11 09:34

    海康威视通过漏洞管理体系认证

    近日,杭州海康威视数字技术股份有限公司(以下简称“海康威视”)成功通过全球权威标准机构BSI的ISO/IEC 29147:2018漏洞披露与ISO/IEC 30111:2019漏洞管理标准认证。这标志着海康威视在漏洞管理方面的工
    的头像 发表于 01-29 17:19 1460次阅读

    UL认证线缆选型终极指南:破解20624/20706等热门型号技术密码

    UL认证线缆选型终极指南:破解20624/20706等10大热门型号的技术密码与市场蓝海(附实战案例)别再为选错线缆而返工!本文深度解析UL认证的10款热门线缆型号(20624,20706,20798,20861,20941,20960,2896,2643,20566),
    的头像 发表于 01-21 10:31 976次阅读
    UL认证线缆选型终极指南:<b class='flag-5'>破解</b>20624/20706等热门型号技术密码

    分析嵌入式软件代码的漏洞-代码注入

    随着互联网的发展,嵌入式设备正分布在一个充满可以被攻击者利用的源代码级安全漏洞的环境中。 因此,嵌入式软件开发人员应该了解不同类型的安全漏洞——特别是代码注入。 术语“代码注入”意味着对程序的常规
    发表于 12-22 12:53

    纠结选国产还是进口?华润微7388 vs 进口TDA7388 实战对比

    标签:#功放芯片选型实战 #华润微7388 #进口TDA7388 #车载改装对比 #性价比测评
    的头像 发表于 12-18 15:14 960次阅读

    4声道全场景覆盖!华润微7388车载功放芯片改装实战

    #华润微7388 #4声道车载功放 #车载音响改装 #移动HiFi #深智微科技 #芯片实战
    的头像 发表于 12-16 15:27 1074次阅读

    寒区酷暑都能打!华润微CD7377CZ车载功放芯片实战解析

    微CD7377CZ作为国产车载功放芯片的代表,在这些实战场景中表现如何?今天就结合真实应用案例,带大家深度解析它的核心优势。
    的头像 发表于 12-13 14:16 1354次阅读

    智慧物流提速:RFID如何破解仓储“效率困局”?

    转型夯实智慧物流基础”,在众多技术方案中,RFID(无线射频识别)仓储管理系统凭借“秒级盘点”“动态可视”的核心优势,成为企业落实规划要求、破解传统仓储痛点的关键抓手。今天,我们就来拆解RFID的技术逻辑与实战价值。 一、从“
    的头像 发表于 11-17 14:20 414次阅读

    EMC电路怎么整改:如何缩短整改周期的实战案例

    EMC电路怎么整改:如何缩短整改周期的实战案例|南柯电子
    的头像 发表于 10-20 10:17 935次阅读

    中科微电ZG2131:300V驱动芯片国产化替代的实战样本

    中科微电ZG2131的崛起,标志着国产驱动芯片从“可替代”向“优替代”的跨越。它不仅打破了进口芯片的市场垄断,更重塑了行业对国产芯片的认知——国产器件不再是“无奈选”,而是“优化
    的头像 发表于 10-17 09:47 797次阅读
    中科微电ZG2131:300V驱动<b class='flag-5'>芯片</b>国产化替代的<b class='flag-5'>实战</b>样本

    工业交换机破解复杂车间组网难题,技术人必看实战指南

    如何破解?本文将深度解析工业交换机的技术优势,并分享实战组网方案。 为什么普通交换机无法胜任工业场景? 环境适应性差。 常规交换机在高温、多粉尘、强电磁干扰环境下故障率高,导致生产中断。 网络稳定性不足。 数据延
    的头像 发表于 08-25 10:09 676次阅读

    以驱动芯片破解扫地机三大核心痛点

    设备的行走稳定性、续航时长与适配能力。钧敏科技深耕行业多年,主推英能的ZH6358 与必易微的KP93102 驱动芯片方案,正以硬核技术破解三大核心痛点,为扫地机厂商与用户带来双重革新。
    的头像 发表于 06-10 09:45 1435次阅读

    紫光同芯安全芯片如何破解防伪溯源行业痛点

    近日,2025安全识别技术展览会暨高峰论坛期间,紫光同芯高级产品经理刘嘉维发表了题为《防伪溯源最佳实践安全芯片技术》的主题演讲,系统性阐述了安全芯片如何破解防伪溯源行业痛点,并分享了
    的头像 发表于 06-05 10:24 1496次阅读