作者ggg12345 (ggg)
看板AfterPhD
标题Re: [讨论] 张善政批 禁华为「抓错方向」
时间Tue Feb 12 11:28:04 2019
※ 引述《ggg12345 (ggg)》之铭言:
: 标题: [讨论] 张善政批 禁华为「抓错方向」
: 时间: Mon Jan 28 10:10:05 2019
:
: 国高成立後因实质上的用户需要, 就是与全国各大学建立快速连线通信通道.
: : 他来对资讯安全说三道四,
: : 我认为是很不恰当的。
: 他当科技政委及部长时是靠III的资安团队. Data center是当时的台湾科技研发
: 必须提供高速存储与计算. 但实质问题是台湾自从生产相容PC後, 没有在利用资
: 讯设备方面做出开创性的带领应用.
......
禁用就是"宁可错杀一百, 绝不放走一个", 这种恶霸做法, 就是本身怠惰与无能的藉口!
: 推 xyz168: 你知道硬体逻辑炸弹吗?请您多看看论文的原因是.. 02/10 10:46
: → xyz168: 这也不算是新的研究,也无法在推文里以一概之地跟您说明 02/10 10:47
: → xyz168: 有篇CCS'13的论文FANCI: Identification of Stealthy 02/10 10:49
: → xyz168: Malicious Logic Using Boolean Functional Analysis 02/10 10:49
: → xyz168: 您可以根据这篇论文的citation跟reference去追以前跟 02/10 10:49
: → xyz168: 之後的研究,加油! 02/10 10:49
: → xyz168: 我想美国也不是无所本的起诉华为... 02/10 10:50
先谢谢您提的参考论文.
这篇FANCI论文说的是 backdoor 後门. 现在的 VLSI 是靠类似compiler的CAD
tool 先check线路是否连接正确? 再由 tool 安排制程而打造出来. 隐藏的
线路与功能可以被一一检查出来. 後门当然是入口, 从input端就能查出可到
或影响那个出口(output). FANCI tool 是这种 I/O 关系的侦测tool.
显然, VLSI 设计是能从 i/o 线路查出隐藏的功能.
木马是个被隐藏或无法一眼看穿的功能, 但要启动木马也得有外部能到达或
开启的入口. 不然, 就是木马内部的功能可不藉外能而自动开启. 所以, 对
木马可能是无法找到其入口而预先探测其内存功能, 但木马必有出口可输出
其讯号与能量影响木马外部的状况. 没有input但有output的功能方块, 同样
是能被穷举找出的. 就电流言, output线路可以也是input线路, 但不会是同
时两种逻辑功能并存. 所以, 木马的输出端是能被找到的, 至少发作时, 木
马的输出必然接入被潜伏体的部份输入端以产生影响的讯息或能量.
木马可视为是一种潜伏在被入侵体的 不定干扰源. 就VLSI的设计与制造言,
这种实体装置是能被侦出的, 同样也是能被隔离影响的.
依现在的 VLSI 设计制造, 任何的功能方块要被制造出来必然是可被设计分
析, 也必然是可被侦测出来的实体. 一旦被注入能量, 其实体形式就必然呈
现. 所以, 不会是一种无从察觉的无影无形之物.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.230.28.84
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AfterPhD/M.1549942086.A.CBC.html
1F:推 mmonkeyboyy: ....我资质太差 我看不懂这篇在写啥.... 02/12 12:35
2F:→ freef1y3: 那为什麽intel会有spectre跟meltdown漏洞呢? 02/12 20:21
3F:→ freef1y3: 1. intel没使用到VLSI的设计技术 02/12 20:22
4F:→ freef1y3: 2. VLSI设计技术只找得出木马找不出漏洞 02/12 20:22
5F:→ freef1y3: 3. intel故意放的只是被发现只好宣称漏洞 02/12 20:23
intel 当然是会使用 VLSI 的 CAD tool 造IC.
VLSI tool 是照 function block 要求造出 跟该功能相同作用 的电路.
如果是跟时间有关的功能方块, 那就是个 time-dependent function.
F(G) 跟 G(F) 未必就是相同的. 串接的功能方块跟并接的功能方块也未必作用相同.
=======================================================================
这是
https://blog.trendmicro.com.tw/?p=53915 对 INTEL 漏洞的说明:
今日的处理器设计都具备「预测执行」功能,也就是说,它会「预测」接下来将要执行的
工作,然後预先将这些工作排入序列,藉此提高资料处理效率,进而提升应用程式/软体
的执行速度。这是业界用来让处理器效能最佳化的一项技巧,但现在这项技巧却可能遭到
骇客利用,经由这项漏洞来存取一些正常情况下受到隔离保护的资料。
==============
最早期的类似问题是 8086 或 80x86 cpu 的 instruction pre-fetch.
DEBUG 程式下的 single step trace 用到 INT 3 指令的立即替代, 但 pre-fetch
piple line 已将记忆体的指令拿进 prefetch queue, 因此修改不到紧跟的6 byte
instruction 内容. 後来, 这个架构上的失误到 80586 才解掉.
meltdown 是类似上述 "先取" 进 cache 的问题, 所以可以透过预取的 cache 内容
扫出 核心记忆体先存放的 password.
VLSI 的 CAD 制造 tool 并没有这种 查核记忆体 执行前後指令时的"一致性"侦防
设计.
※ 编辑: ggg12345 (36.230.28.84), 02/13/2019 01:09:57
6F:推 jjsakurai: 推 真专业 02/14 01:41
7F:→ mmonkeyboyy: 那里专业了 ....? 02/14 04:34
8F:→ freef1y3: cache不也是用一堆逻辑闸兜出来的 为何tool就找不到bug 02/14 09:27
9F:→ freef1y3: 那我是不是也可能用逻辑闸兜出其他tool找不到的bug? 02/14 09:28
一般的 hardware cache 是高速的 multiport memory. memory 需要做 access control
但为了 平行处理先做, 从memory读出, cache 与 memory 不会同时做, memory 内容会
先搬进 cache. 所以, meltdown 的 bug 就是扫cache可以扫到其他user的password.
prefetch queue 跟 cache 都是同一份memory内容出现在先读进的cache.
现在的 CAD tool 只check 每份 记忆体电路 的正确性, 不可能查出cache跟memory内容
一致与锁定. 这跟 prefetch queue 一样是设计时的失误.
10F:→ freef1y3: 所以设计失误tool也找不出来 那怎能宣称一定能找出木马 02/14 20:21
11F:→ freef1y3: 这种资安的研究几乎都是heuristic 02/14 20:24
12F:→ freef1y3: 很少有人宣称一定能怎样 事实上FANCI那篇论文也说不能 02/14 20:25
13F:→ freef1y3: 保证所有後门都能找出 02/14 20:25
木马是多出来的实体物, 当然是能被穷举找出.
cache 对 memory 并不是多出来的 block, 在使用上两者有必然的前後顺序相依关系.
如同必须按一定前後次序处理的事物, 硬是要改变前後次序或同时执行, 造成的结果
必然未必相同, 不可能让因果颠倒. 这才是 cache hardware 设计失误的原因.
※ 编辑: ggg12345 (36.230.28.84), 02/14/2019 20:56:56
14F:→ freef1y3: 当然他的实验找出了所有後门 但是他用的benchmark本来就 02/14 20:36
15F:→ freef1y3: 都有後门 我always回报有後门 在这个benchmark看来效果 02/14 20:38
16F:→ freef1y3: 也很好 重点是没後门的情况他有多少机率会误报有後门 02/14 20:38
17F:→ freef1y3: 而且在有可能误报的情况下真有CAD tool会采用这技术? 02/14 20:40
假设在有电路逻辑图之下, 逻辑电路图之外的方块就会被查核出来, 这跟用机率判定
一个功能方块是否所需, 是因为这判断无法被确认只能配分比重.
假设打开一个VLSI封盖, 多层的电路图可能躲在另一层之下. 每层的电路导通的电路
方块都有金属镀线, 因此每个 gate 电路都能被识别. VLSI 的电路模拟器会产生每
个装置电路的结果, 可以知道是否产生所要的功能. VLSI tool 主要是产出每层化学
物的作用与遮蔽区. Mask 与 导线决定出整个电路, 每个步骤与化学处理过程产生每
个元件. 不在原始的逻辑电路图里, 就不会被产生出来.
18F:→ freef1y3: 再者是攻防技术本来就是此消彼长 你今天提出个侦测技术 02/14 20:54
19F:→ freef1y3: 明天就会有人想出方法绕过你的侦测技术 02/14 20:54
20F:→ freef1y3: 就像是有了data execution prevention後就有人想出了 02/14 20:56
21F:→ freef1y3: return oriented programming 02/14 20:56
DEP 主要是将指令与被处理的资料分开. 避免误进非指令区执行.
这是将每个记忆体区做标记, 使用前先check.
22F:→ freef1y3: 除非你的侦测技术是理论上sound and complete 02/14 20:59
23F:→ freef1y3: 但是有修过计算理论的人都知道这是不可能的事 02/14 21:01
24F:→ freef1y3: 木马为何一定要是多出来的? 你可以查查ROP 02/14 21:11
25F:→ freef1y3: 这个攻击手段是用现存的程式片段就可以达到任何恶意功能 02/14 21:12
26F:→ freef1y3: 当然这是软体的技术 但是你也不能证明硬体没有类似手段 02/14 21:15
27F:→ freef1y3: 再者 穷举法是说删掉一些Gate看会不会影响本来的功能吗? 02/14 21:15
28F:→ freef1y3: 但是删了一些Gate当然会影响到输出 怎麽确定删之前 02/14 21:20
29F:→ freef1y3: 的输出是对的 还是删之後才是对的? 02/14 21:20
30F:→ freef1y3: 这需要你硬体spec可以精细描述到每个clock时的每个讯号 02/14 21:28
31F:→ freef1y3: 就算你真有这种spec 穷举还是需要指数时间 实际上不可行 02/14 21:32
今天的 VLSI 都是电脑按指定的程序做这些既定的步骤做出来的. 而负责设计电路
的也都是跑模拟器将电路结果做测试出来, 只是现在做系统软体的会在硬体设计时
就预先参与, 照构想的系统设计就预先组建软体把功能的途径都找出来.
32F:→ freef1y3: 最後 如果"木马是多出来的"这假设不成立了 上面都是白搭 02/14 21:34
33F:→ mmonkeyboyy: 楼上你认真了... 02/14 22:02
※ 编辑: ggg12345 (220.137.130.129), 02/15/2019 12:17:00
34F:推 xyz168: 通篇都自己的假设...证明在哪里... 02/18 01:14
35F:→ xyz168: 不是自圆其说就叫研究... 02/18 01:14