作者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/m.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