看板 AfterPhD 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/AfterPhD/M.1549942086.A.CBC.html
mmonkeyboyy: ....我資質太差 我看不懂這篇在寫啥.... 02/12 12:35
freef1y3: 那為什麼intel會有spectre跟meltdown漏洞呢? 02/12 20:21
freef1y3: 1. intel沒使用到VLSI的設計技術 02/12 20:22
freef1y3: 2. VLSI設計技術只找得出木馬找不出漏洞 02/12 20:22
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
jjsakurai: 推 真專業 02/14 01:41
mmonkeyboyy: 那裡專業了 ....? 02/14 04:34
freef1y3: cache不也是用一堆邏輯閘兜出來的 為何tool就找不到bug 02/14 09:27
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 一樣是設計時的失誤.
freef1y3: 所以設計失誤tool也找不出來 那怎能宣稱一定能找出木馬 02/14 20:21
freef1y3: 這種資安的研究幾乎都是heuristic 02/14 20:24
freef1y3: 很少有人宣稱一定能怎樣 事實上FANCI那篇論文也說不能 02/14 20:25
freef1y3: 保證所有後門都能找出 02/14 20:25
木馬是多出來的實體物, 當然是能被窮舉找出. cache 對 memory 並不是多出來的 block, 在使用上兩者有必然的前後順序相依關係. 如同必須按一定前後次序處理的事物, 硬是要改變前後次序或同時執行, 造成的結果 必然未必相同, 不可能讓因果顛倒. 這才是 cache hardware 設計失誤的原因. ※ 編輯: ggg12345 (36.230.28.84), 02/14/2019 20:56:56
freef1y3: 當然他的實驗找出了所有後門 但是他用的benchmark本來就 02/14 20:36
freef1y3: 都有後門 我always回報有後門 在這個benchmark看來效果 02/14 20:38
freef1y3: 也很好 重點是沒後門的情況他有多少機率會誤報有後門 02/14 20:38
freef1y3: 而且在有可能誤報的情況下真有CAD tool會採用這技術? 02/14 20:40
假設在有電路邏輯圖之下, 邏輯電路圖之外的方塊就會被查核出來, 這跟用機率判定 一個功能方塊是否所需, 是因為這判斷無法被確認只能配分比重. 假設打開一個VLSI封蓋, 多層的電路圖可能躲在另一層之下. 每層的電路導通的電路 方塊都有金屬鍍線, 因此每個 gate 電路都能被識別. VLSI 的電路模擬器會產生每 個裝置電路的結果, 可以知道是否產生所要的功能. VLSI tool 主要是產出每層化學 物的作用與遮蔽區. Mask 與 導線決定出整個電路, 每個步驟與化學處理過程產生每 個元件. 不在原始的邏輯電路圖裡, 就不會被產生出來.
freef1y3: 再者是攻防技術本來就是此消彼長 你今天提出個偵測技術 02/14 20:54
freef1y3: 明天就會有人想出方法繞過你的偵測技術 02/14 20:54
freef1y3: 就像是有了data execution prevention後就有人想出了 02/14 20:56
freef1y3: return oriented programming 02/14 20:56
DEP 主要是將指令與被處理的資料分開. 避免誤進非指令區執行. 這是將每個記憶體區做標記, 使用前先check.
freef1y3: 除非你的偵測技術是理論上sound and complete 02/14 20:59
freef1y3: 但是有修過計算理論的人都知道這是不可能的事 02/14 21:01
freef1y3: 木馬為何一定要是多出來的? 你可以查查ROP 02/14 21:11
freef1y3: 這個攻擊手段是用現存的程式片段就可以達到任何惡意功能 02/14 21:12
freef1y3: 當然這是軟體的技術 但是你也不能證明硬體沒有類似手段 02/14 21:15
freef1y3: 再者 窮舉法是說刪掉一些Gate看會不會影響本來的功能嗎? 02/14 21:15
freef1y3: 但是刪了一些Gate當然會影響到輸出 怎麼確定刪之前 02/14 21:20
freef1y3: 的輸出是對的 還是刪之後才是對的? 02/14 21:20
freef1y3: 這需要你硬體spec可以精細描述到每個clock時的每個訊號 02/14 21:28
freef1y3: 就算你真有這種spec 窮舉還是需要指數時間 實際上不可行 02/14 21:32
今天的 VLSI 都是電腦按指定的程序做這些既定的步驟做出來的. 而負責設計電路 的也都是跑模擬器將電路結果做測試出來, 只是現在做系統軟體的會在硬體設計時 就預先參與, 照構想的系統設計就預先組建軟體把功能的途徑都找出來.
freef1y3: 最後 如果"木馬是多出來的"這假設不成立了 上面都是白搭 02/14 21:34
mmonkeyboyy: 樓上你認真了... 02/14 22:02
※ 編輯: ggg12345 (220.137.130.129), 02/15/2019 12:17:00
xyz168: 通篇都自己的假設...證明在哪裡... 02/18 01:14
xyz168: 不是自圓其說就叫研究... 02/18 01:14