作者L0v35 (是零不是歐)
看板DigiCurrency
標題[閒聊] Parity multi-sig bug又來拉
時間Tue Nov 7 21:40:57 2017
Parity公告:
https://paritytech.io/blog/security-alert.html
繼上次parity multi-sig被盜走150kETH後
昨天又有人不小心把multi-sig共用的library合約殺掉
導致所有已修復的parity multi-sig合約不能執行
所有parity multi-sig錢包的餘額都不能移動
目前確定有509019ETH ($152M)永久不能被移動了
https://pastebin.com/ayDeJeDS
就看市場如何反應囉
內行跟外行的差別就在這裡了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.63.10
※ 文章網址: https://webptt.com/m.aspx?n=bbs/DigiCurrency/M.1510062061.A.990.html
※ 編輯: L0v35 (140.113.63.10), 11/07/2017 21:42:06
1F:推 mithuang: Hard Fork! 11/07 21:42
2F:→ L0v35: 話說gav wood自己的polkadot也損失了300kETH 11/07 21:45
3F:→ L0v35: 0x3bfc20f0b9afcace800d73d2191166ff16540258 11/07 21:46
4F:推 bluefancy: 老天太紅一個bug就可以很嚴重 11/07 21:53
5F:推 yys310: Hard Fork! ETC ETC+ ETH 11/07 21:53
6F:推 Bob9154: 看小神童有沒有用 沒損失就不分叉惹 11/07 21:55
7F:推 NoNameL: WTF 11/07 21:59
8F:推 wahaha99: 50E耶...就這樣噴了? 11/07 22:00
9F:推 ProtectChu56: ...我想砍掉Parity了,雖然ETH全節點錢包他最省空間 11/07 22:11
10F:推 tcn1john: 印鈔票的相反- 燒鈔票... 11/07 22:13
11F:→ SP500: This means that "currently" no funds can be moved out 11/07 22:28
12F:→ SP500: the multi-sig wallets. 11/07 22:29
13F:→ L0v35: 這些錢包都是hard-code指向library 唯一解決方法就是HF在 11/07 22:37
14F:→ L0v35: 原本的library地址重新放回原本的code 11/07 22:37
15F:推 goldflower: 雷到笑 11/07 22:42
16F:推 CP64: 哇 11/07 22:44
17F:推 g581637: ........ 11/07 22:44
18F:推 yys310: 有哪些用到他家的阿 怕.jpg 11/07 22:46
20F:推 GameDemon: 靠 凸顯了去中心化的區塊鍊上 用了"中心化"的library 11/07 22:50
21F:→ GameDemon: 結果根本就不是去中心化了 崩潰XD 11/07 22:50
22F:推 darkdixen: 白帽修好的沒事 這次雷到連白帽都傻眼 11/07 23:00
23F:推 yys310: 後來想想這hard fork沒用吧?要fork到錢存進去前? 11/07 23:31
24F:→ yys310: (對smart contract不太瞭解 11/07 23:32
25F:推 amALu: wwww 好環保把錢變不見都不會製造垃圾和廢氣XD 11/07 23:35
26F:→ hsuallan: 應該是fork到自殺前然後再修改程式碼吧 11/07 23:41
27F:推 NoNameL: 我想請問..... 這個手滑誤砍有救嗎? 11/07 23:49
28F:→ yo841204: Hsu大應該說的沒錯,不過感覺不太可能HF,如果只因為一 11/07 23:52
29F:→ yo841204: 個錢包又分一次,應該又會有人不爽然後出來支持舊鏈了 11/07 23:52
30F:推 mithuang: 只要幣鎖住,不要散發出去hard fork絕對有用~ 11/07 23:59
31F:→ mithuang: 要不要HF是政策考量不是技術考量 11/07 23:59
32F:推 yo841204: 對啊,但怕又分出個ETC2之類的來瓜分資金QQ 11/08 00:03
33F:推 Ayukawayen: DAO fork也沒有叉到錢被轉走之前吧? 印象中是放了一個 11/08 00:18
34F:→ Ayukawayen: 把錢逆轉回去原帳戶的協議來回復? 11/08 00:19
35F:→ Ayukawayen: 作廢幾萬個區塊和幾十萬筆交易感覺很恐怖的 11/08 00:21
36F:推 yys310: The DAO那時是本身就有限制不能匯出平台外 所以沒有流出 11/08 00:22
37F:推 KousakaReina: 靠,50W ETH??? 11/08 00:22
38F:→ yys310: 但還是被轉到其中一個address了 最後還是從被bug取錢前HF 11/08 00:23
39F:推 NoNameL: 這次該不會hf後加一個命令,讓刪除的合同再復原回來吧? 11/08 00:42
40F:推 yys310: let it go 11/08 00:45
41F:推 goldflower: ETH稀缺性增加 顯然是利多(誤) 11/08 00:57
42F:推 NoNameL: 我沒辦法判斷這是利多還是利空,樓下怎麼看? 11/08 01:06
43F:推 tcn1john: 利多...船過水無痕 還是看btc 11/08 01:11
44F:推 darkdixen: 可能的HF是把被殺掉的合約放回同樣的位置 這樣就沒事了 11/08 01:41
45F:→ darkdixen: (當然是bug改好後的版本) 11/08 01:42
46F:推 a23962787: 像是轉錢轉錯錢包憑空消失也不會為了你硬分吧?金額在 11/08 03:20
47F:→ a23962787: 大都是你自己疏失衰小 11/08 03:20
48F:→ a23962787: 所以幣突然少那麼多 利多(X 11/08 03:20
49F:推 dannyst: 看來是一個叫 develops199的新手 github 帳號被盜 11/08 08:12
50F:推 dans: 數字貨幣也會變磚塊(筆記) 11/08 10:44
51F:推 Ayukawayen: HF增加一個指令: 我刪除你之前的刪除 XD 11/08 11:53
52F:推 superjeff: 假新手真惡意 11/08 11:57
他是個新手沒錯, 不是很懂Ethereum上程式執行.
而意圖是惡意的沒錯, 但並不是要毀滅multi-sig合約.
library裡kill(address _to)會把錢包餘額送給地址_to, 然後合約自盡.
他看來是想用kill()來把所有multi-sig清空,
所以想先把library的ownership檢查拿掉.
(txid: 0x47f7cff7a5e671884629c93b368cb18f58a993f4b19c2a53a8662e3f1482f690
library kill()
)
結果沒注意其他multi-sig的kill()跟ownership檢查一樣是delegatecall
(一樣呼叫library的程式碼)
所以kill()呼叫也沒用了
(txid: 0xb63f7a2a1940a11664d58fb6a2d4942e031562b160c98e60fdea900b6402ea79
polkadot multi-sig kill()
)
兩個kill()的_to都是0xae7168deb525862f4fee37d987a971b385b96952,也就是他自己.
library kill()的_to不重要,
polkadot mutli-sig kill()的意圖就很明顯了.
看他記錄, 他把餘額高的multi-sig都掃過一次了
https://etherscan.io/address/0xae7168deb525862f4fee37d987a971b385b96952
簡單說他是個惡意的低能兒; 原本只是想偷錢, 結果不小心把大家的錢都鎖住了
※ 編輯: L0v35 (140.113.149.183), 11/08/2017 13:00:12
53F:推 NoNameL: 所以這個人會被追究法律責任嗎? 11/08 13:45
54F:推 GameDemon: Code is Law 能說他犯法嗎?好像也不能 11/08 16:31
55F:推 thuko8652: 犯什麼法 代碼即法律 11/08 17:25
56F:推 NoNameL: 你去HACK政府的網站後,跟檢察官這樣說說看,看他會不會 11/08 19:41
57F:→ NoNameL: 起訴你。 11/08 19:41
58F:→ NoNameL: 或是你是警察,明明你就有可以查詢全台灣的案底資料的權 11/08 19:42
59F:→ NoNameL: 限的帳號,你沒正當理由去查查看。 11/08 19:43
60F:→ NoNameL: 法律上的邏輯跟code上的邏輯完全是兩回事。 11/08 19:44
61F:推 NoNameL: 舉個例子,即使一個網站蠢到直接把客戶資料丟到網站上, 11/08 19:53
62F:→ NoNameL: 直接改個uid就能繞過權限判斷讓人下載。你也不可以去下載 11/08 19:53
63F:→ NoNameL: ,他們資安沒做好沒錯,但只要個資外洩沒造成客戶權益損 11/08 19:54
64F:→ NoNameL: 害,那麼,那個網站依然是不會受到任何法律處罰的。 11/08 19:55
65F:→ NoNameL: 但是你直接打uid繞過權限,那個在法律上是被視為犯罪。 11/08 19:55
66F:→ NoNameL: 所以最後會變成,一個工程師發現了一個蠢的要死的漏洞, 11/08 19:56
67F:→ NoNameL: 放到論壇或媒體上爆料,但公司直接請法務告下去,那個工 11/08 19:57
68F:→ NoNameL: 程師被檢察官起訴,但搞出漏公司一點事情都沒有的狀況。 11/08 19:57
69F:→ NoNameL: 國外我不知道是怎麼樣,但台灣是這樣的狀況。 11/08 19:58