楼主: B100D1E55
收起左侧

[讨论] 简单谈谈近期的Intel处理器漏洞

  [复制链接]
wowocock
发表于 2018-1-5 18:21:47 | 显示全部楼层
看了下,采用的应该是类似LINUX下的KAISER技术,采用shadow  页表技术,R3,R0用不同的页表,内核地址在R3中只有极少数被映射,大部分都无效,R0中的都有效,并且R3地址也都能访问,只通过SMAP和SMEP来进行保护。
在打了新的WIN10  补丁后,我们在  KPROCESS  里会看到

0:  kd>  dt  nt!_EPROCESS  @$proc  ImageFileName  Pcb.DirectoryTableBase  Pcb.UserDirectoryTableBase
***  ERROR:  Module  load  completed  but  symbols  could  not  be  loaded  for  LiveKdD.SYS
      +0x000  Pcb                                                :
            +0x028  DirectoryTableBase                  :  0x1ab002
            +0x278  UserDirectoryTableBase          :  0x2f00001
      +0x450  ImageFileName                            :  [15]    "System"
新的UserDirectoryTableBase  用来保存R3  的CR3  ,而原来的DirectoryTableBase则为R0的CR3


0:  kd>  ?  nt!KiSystemCall64Shadow
Evaluate  expression:  -8787652898496  =  fffff801`f7121140
0:  kd>  !vtop  1ab000  fffff801f7121140
Amd64VtoP:  Virt  fffff801`f7121140,  pagedir  1ab000
Amd64VtoP:  PML4E  1abf80
Amd64VtoP:  PDPE  3b09038
Amd64VtoP:  PDE  3b0adc0
Amd64VtoP:  Large  page  mapped  phys  00000002`18121140
Virtual  address  fffff801f7121140  translates  to  physical  address  218121140.

0:  kd>  !vtop  2f00000  fffff801f7121140
Amd64VtoP:  Virt  fffff801`f7121140,  pagedir  2f00000
Amd64VtoP:  PML4E  2f00f80
Amd64VtoP:  PDPE  eb3038
Amd64VtoP:  PDE  ab2dc0
Amd64VtoP:  PTE  eb9908
Amd64VtoP:  Mapped  phys  00000002`18121140
Virtual  address  fffff801f7121140  translates  to  physical  address  218121140.
  而比较重要的nt!KiSystemCall64Shadow,在2个表中都有映射,指向同一物理地址218121140

0:  kd>  !pcr
KPCR  for  Processor  0  at  fffff801f5b22000:
        Major  1  Minor  1
                NtTib.ExceptionList:  fffff801f9664fb0
                        NtTib.StackBase:  fffff801f9663000
                      NtTib.StackLimit:  0000000000000000
                  NtTib.SubSystemTib:  fffff801f5b22000
                            NtTib.Version:  00000000f5b22180
                    NtTib.UserPointer:  fffff801f5b22870
                            NtTib.SelfTib:  00000058e0504000

                                        SelfPcr:  0000000000000000
                                              Prcb:  fffff801f5b22180
                                              Irql:  0000000000000000
                                                IRR:  0000000000000000
                                                IDR:  0000000000000000
                            InterruptMode:  0000000000000000
                                                IDT:  0000000000000000
                                                GDT:  0000000000000000
                                                TSS:  0000000000000000

                            CurrentThread:  fffff801f72a4380
                                  NextThread:  0000000000000000
                                  IdleThread:  fffff801f72a4380

                                    DpcQueue:  Unable  to  read  nt!_KDPC_DATA.DpcListHead.Flink  @  fffff801f5b24f80

0:  kd>  !vtop  2f00000  fffff801f5b24f80
Amd64VtoP:  Virt  fffff801`f5b24f80,  pagedir  2f00000
Amd64VtoP:  PML4E  2f00f80
Amd64VtoP:  PDPE  eb3038
Amd64VtoP:  PDE  ab2d68
Amd64VtoP:  PTE  37b6920
Amd64VtoP:  zero  PTE
Virtual  address  fffff801f5b24f80  translation  fails,  error  0xD0000147.

0:  kd>  !vtop  1ab000  fffff801f5b24f80
Amd64VtoP:  Virt  fffff801`f5b24f80,  pagedir  1ab000
Amd64VtoP:  PML4E  1abf80
Amd64VtoP:  PDPE  3b09038
Amd64VtoP:  PDE  3b0ad68
Amd64VtoP:  PTE  510d920
Amd64VtoP:  Mapped  phys  f88f80
Virtual  address  fffff801f5b24f80  translates  to  physical  address  f88f80.

而另一个内核地址,只在R0被影射为物理地址f88f80.而在R3没有映射

提示错误  Virtual  address  fffff801f5b24f80  translation  fails,  error  0xD0000147.

评分

参与人数 2人气 +2 收起 理由
B100D1E55 + 1
jefffire + 1 大肉鸡

查看全部评分

dg1vg4
发表于 2018-1-5 20:08:25 | 显示全部楼层
那么像凌动这种没有采用乱序执行的处理器应该不受影响吧?
jeremy_cec
发表于 2018-1-5 21:28:45 | 显示全部楼层
norton update 加了以下的registry 后 windows 开始有 update 了..

Key="HKEY_LOCAL_MACHINE"Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat"
Value Name="cadca5fe-87d3-4b96-b7fb-a231484277cc"
Type="REG_DWORD”
Data="0x00000000”
sfzjn
发表于 2018-1-5 21:40:53 | 显示全部楼层
LZ业内人士吧,很专业。
2302321
发表于 2018-1-6 09:53:18 | 显示全部楼层
难道要把乱序执行给砍掉???
f59375443
发表于 2018-1-6 10:28:17 | 显示全部楼层
KevinYu0504 发表于 2018-1-4 15:55
找到一篇还不错的文章 :

如何看待 2018 年 1 月 2 日爆出的 Intel CPU 设计漏洞?

而且最早可以追溯到95年
之后的绝大多数产品都有这个问题

你说是一家厂商的某一批次产品有问题,很正常
但是大家都犯这个错误,太明显了吧
jiang790
发表于 2018-1-6 11:14:54 | 显示全部楼层
学习一下,小白路过
B100D1E55
 楼主| 发表于 2018-1-6 12:21:41 | 显示全部楼层
jefffire 发表于 2018-1-5 12:18
减少空闲等待时间是CPU性能提升的一大支柱。

也再次凸显了性能, 便利与安全的矛盾关系。如果一定要做个 ...

是的,前几天还和一个做oblivious ram的同学讨论这个问题。他们的课题在性能方面问题更多,很多还是只要有缓存就必然有洞的,只能暂且live with it
B100D1E55
 楼主| 发表于 2018-1-6 12:23:22 | 显示全部楼层
lulu00147 发表于 2018-1-5 15:59
。。。。。楼主讲的是"Spectre"bug吧,实际是两个bug好吗。

"Meltdown" bug,是 KPTI 修复的 bug,Intel ...

meltdown和spectre无非就是个命名,基本原理都类似。只不过meltdown利用的是intel投机执行中不进一步确认读取权限的问题,影响没那么广泛
B100D1E55
 楼主| 发表于 2018-1-6 12:27:05 | 显示全部楼层
dg1vg4 发表于 2018-1-5 20:08
那么像凌动这种没有采用乱序执行的处理器应该不受影响吧?

atom很早就开始乱序执行了,只不过发射宽度和指令窗口都比较小
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-22 19:59 , Processed in 0.098003 second(s), 15 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表