Ropsten

ETH 在 Ropsten 上被盜

  • April 7, 2018

有沒有人在 Ropsten 遇到過以下場景:

  1. 你在 Geth 創建一個賬戶,然後通過水龍頭將一些 ETH 轉給你自己。
  2. 您解鎖帳戶並繼續開始編譯和執行契約。
  3. 突然你發現你所有的ETH都不見了,轉移到0x6Ef57BE1168628A2bD6c5788322A41265084408a。

這發生在我和一群參與者的一次研討會上,在幾秒鐘內,我們所有的 ETH 都被盜了。

如果你在 Etherscan 中查看這個賬戶上發生的交易,它會突然執行,有少量,有時相當大量的 ETH 轉移到自己身上。

想知道這是否可以解釋。我意識到在 Rinkeby 上也找到了相同的地址 0x6Ef57BE1168628A2bD6c5788322A41265084408a。

我在專用網路上遇到了完全相同的情況,當時我在一個具有公共 IP 地址的節點上解鎖了一個帳戶以查看發生了什麼 - 所有資金都轉移到您在帳戶獲得資金後的幾秒鐘內發布的同一地址 -我對發現漏洞的速度感到驚訝,但對它被利用並不感到驚訝!

Smarx 的評論指出了鎖定對本地機器的訪問的修復:--rpcaddr 127.0.0.1刪除--rpccorsdomain "*"標籤將很好地鎖定東西。

如果您想擴大訪問點以啟用 web3 查詢(例如在伺服器上託管 DApp 前端)並假設您想保持本地節點執行而不使用像 infura.io 這樣的服務,有幾種可能解決方法:

  1. 使用Nginx(或類似的)作為反向代理來保持該接入點開放,但僅限於授權方。這與infura.io 方法並沒有太大的不同,並且安全性將與您所做的一樣好,具體取決於所應用的身份驗證方法。設置 Nginx 以將請求轉發到您的 geth RPC 埠,並將 geth 配置為僅接受本地請求--rpcaddr 127.0.0.1
  2. web3.js 1.0允許您遠端簽署交易,這樣您就可以在沒有賬戶的情況下保持節點線上,並使用它直接傳播這些已簽署的交易,而無需通過 HTTP-RPC 介面對您的賬戶進行外部訪問。這不會阻止任何人使用您的節點來讀取狀態並可能會受到 DDOS 攻擊
  3. 風險很大,安全性要低得多,我不建議這樣做) - 保持您的資金節點帳戶鎖定並personal在您的 RPC 配置中啟用標籤,然後在您的程式碼中的任何交易行之前和之後立即發送web3.personal.unlockAccount(eth.accounts[0], "<password>")web3.personal.lockAccount(eth.accounts[0])指令。雖然可以防止您的資金輕易從未鎖定的賬戶中被提取,但啟用personal標籤會帶來風險,因為您在這里為許多不同的攻擊敞開了大門

引用自:https://ethereum.stackexchange.com/questions/45008