¿Alguien ha encontrado el siguiente escenario en Ropsten:
Esto me sucedió a mí y a un grupo de participantes durante un taller donde en cuestión de segundos, todos nuestros ETH fueron robados.
Si observa la transacción que se ha realizado en esta cuenta en Etherscan, se ejecuta a borbotones, con una cantidad pequeña y, a veces, bastante considerable de ETH transferida a sí misma.
Quería saber si esto es algo explicable. Me di cuenta de que la misma dirección 0x6Ef57BE1168628A2bD6c5788322A41265084408a también se encuentra en Rinkeby.
Encontré exactamente la misma situación en una red privada cuando dejé una cuenta desbloqueada en un nodo con una dirección IP pública para ver qué sucedía: todos los fondos se transfirieron a la misma dirección que publicó segundos después de que se financiara la cuenta. Me sorprendió lo rápido que se encontró la vulnerabilidad, ¡pero no me sorprendió que se aprovechara!
Los comentarios de Smarx indican la solución para bloquear el acceso a su máquina local: --rpcaddr 127.0.0.1
y eliminar la --rpccorsdomain "*"
etiqueta mantendrá las cosas bien bloqueadas.
Si desea ampliar su punto de acceso para habilitar las consultas web3 (como alojar una interfaz DApp en un servidor) y suponiendo que desea mantener un nodo local en ejecución y no utilizar un servicio como infura.io, hay algunos posibles soluciones alternativas:
--rpcaddr 127.0.0.1
personal
etiqueta en su configuración de RPC, luego envíe instrucciones inmediatamente antes y después de cualquier línea de transacción en su código web3.personal.unlockAccount(eth.accounts[0], "<password>")
. web3.personal.lockAccount(eth.accounts[0])
Si bien evita que sus fondos se extraigan fácilmente de una cuenta desbloqueada, habilitar la personal
etiqueta conlleva sus propios riesgos, ya que deja una puerta abierta a una serie de ataques diferentes aquí.personal
habilitado en una dirección IP disponible públicamente, está dejando una puerta abierta a los ataques de fuerza bruta en las contraseñas de su cuenta, ya que una parte malintencionada tiene rienda suelta para seguir intentando desbloquear su cuenta todo el tiempo que desee. También podrían crear cualquier cantidad de cuentas nuevas en su nodo y enviar spam a la red con transacciones firmadas de valor cero de esas cuentas, entre otras posibilidades. No tengo 100% claro cómo funciona Mist con el desbloqueo de cuentas. Creo que puede firmar transacciones localmente y luego solo enviar la transacción firmada al nodo, pero podría estar equivocado.--rpccorsdomain "*"
, en cuyo caso cualquier sitio web que visite puede (en javascript) realizar una solicitud JSON a localhost en el puerto RPC e iniciar transacciones, etc. especificando un dominio CORS comodín en la respuesta que le está diciendo al navegador, esto está bien y usted aprueba tales acciones.
jackson ng
usuario19510
jackson ng
usuario19510
new Web3('http://localhost:8545')
y luego una llamadaweb3.eth.getAccounts
para encontrar las cuentas y luegoweb3.eth.sendTransaction
enviar ether.usuario19510
jackson ng
jackson ng
usuario19510
--rpcaddr 127.0.0.1
y deshacerse de--rpccorsdomain
ellos es un buen comienzo.