Hat jemand das folgende Szenario auf Ropsten erlebt:
Dies ist mir und einer Gruppe von Teilnehmern während eines Workshops passiert, bei dem in Sekundenschnelle alle unsere ETH gestohlen wurden.
Wenn Sie sich die Transaktion ansehen, die auf diesem Konto in Etherscan stattgefunden hat, läuft sie in Schüben ab, wobei eine kleine und manchmal ziemlich beträchtliche Menge an ETH auf sich selbst übertragen wird.
Wollte herausfinden, ob das etwas Erklärbares ist. Mir ist aufgefallen, dass die gleiche Adresse 0x6Ef57BE1168628A2bD6c5788322A41265084408a auch auf Rinkeby zu finden ist.
Ich bin in einem privaten Netzwerk auf genau die gleiche Situation gestoßen, als ich ein Konto auf einem Knoten mit einer öffentlichen IP-Adresse entsperrt ließ, um zu sehen, was passiert ist - alle Gelder wurden an dieselbe Adresse überwiesen, die Sie innerhalb von Sekunden nach der Finanzierung des Kontos gepostet haben - Ich war erstaunt, wie schnell die Schwachstelle gefunden wurde, aber nicht überrascht, dass sie ausgenutzt wurde!
Die Kommentare von Smarx weisen auf die Lösung hin, um den Zugriff auf Ihren lokalen Computer zu sperren: --rpcaddr 127.0.0.1
und das Entfernen des --rpccorsdomain "*"
Tags wird die Dinge gut sperren.
Wenn Sie Ihren Zugriffspunkt erweitern möchten, um Web3-Abfragen zu ermöglichen (z. B. das Hosten eines DApp-Frontends auf einem Server), und vorausgesetzt, Sie möchten einen oder mehrere lokale Knoten am Laufen halten und keinen Dienst wie infura.io verwenden, gibt es einige Möglichkeiten Problemumgehungen:
--rpcaddr 127.0.0.1
personal
Tag in Ihrer RPC-Konfiguration, senden Sie dann web3.personal.unlockAccount(eth.accounts[0], "<password>")
und web3.personal.lockAccount(eth.accounts[0])
Anweisungen unmittelbar vor und nach allen Transaktionszeilen in Ihrem Code. Während Sie verhindern, dass Ihr Geld einfach von einem entsperrten Konto genommen wird, birgt die Aktivierung des personal
Tags seine eigenen Risiken, da Sie hier eine Tür für eine Reihe verschiedener Angriffe offen lassenpersonal
der Aktivierung auf einer öffentlich zugänglichen IP-Adresse lassen Sie eine Tür für Brute-Force-Angriffe auf Ihre Kontokennwörter offen, da eine böswillige Partei freie Hand hat, um so lange zu versuchen, Ihr Konto zu entsperren, wie sie möchte. Sie könnten auch eine beliebige Anzahl neuer Konten auf Ihrem Knoten erstellen und das Netzwerk unter anderem mit signierten Nullwerttransaktionen von diesen Konten spammen. Mir ist nicht 100% klar, wie Mist mit der Kontoentsperrung funktioniert - ich denke, es kann Transaktionen lokal signieren und dann nur die signierte Transaktion an den Knoten senden, aber ich könnte mich irren--rpccorsdomain "*"
, in welchem Fall jede von Ihnen besuchte Website (in Javascript) eine JSON-Anfrage an localhost auf dem RPC-Port ausführen und Transaktionen initiieren kann usw., indem Sie in der Antwort, die Sie mitteilen, eine CORS-Platzhalterdomäne angeben Browser ist dies in Ordnung und Sie stimmen solchen Aktionen zu.
Jackson Ng
Benutzer19510
Jackson Ng
Benutzer19510
new Web3('http://localhost:8545')
und dann ein Aufruf anweb3.eth.getAccounts
, um die Konten zu finden und dannweb3.eth.sendTransaction
Ether zu senden.Benutzer19510
Jackson Ng
Jackson Ng
Benutzer19510
--rpcaddr 127.0.0.1
, und loswerden--rpccorsdomain
sind ein guter Anfang.