¿Qué cosas malas podrían pasar si Geth RPC es público?

Geth no se envía con soporte RPC. Por defecto, Geth habilita los módulos ["net", "web3", "eth", "shh"]. En caso de que el RPC se vea comprometido, ¿qué tipo de cosas malas podrían pasar?

El dinero perdido definitivamente será el primer lugar

Suponiendo que tiene una billetera administrada por Geth, las personas pueden enviar libremente cualquier saldo dentro.

Aparte del dinero perdido, ¿hay alguna otra cosa que pueda suceder?

Por ejemplo, si solo ejecuto el nodo como un rastreador de bloques y controlo si se envía dinero a mi dirección. ¿RPC tiene la capacidad de afectarlos también?

Algunas funcionalidades, como los filtros complejos, pueden usar muchos recursos; si se abusa de ellos, puede sufrir un ataque de denegación de servicio.

Respuestas (2)

No sucederá nada malo si no desbloquea ninguna cuenta en este nodo. Los datos de la cadena de bloques son información pública, por lo que ejecutar RPC con * en rpccorsdomain no es un problema. RPC no tiene ninguna información privada, es el personalmódulo que la contiene. no llame a personal.unlockAccount() en su nodo y todo estará bien.

Tampoco almacena información de cuentas.

Muchas cosas malas pueden pasar, aquí hay una lista incompleta de ellas:

  1. Cualquiera puede firmar transacciones/mensajes con sus claves privadas siempre que las desbloquee
  2. Cualquiera puede usar los recursos de su nodo para consultar el estado de la cadena de bloques (algunas consultas pueden ser muy intensivas en CPU y HDD)
  3. Cualquiera puede usar los recursos de su nodo para publicar grandes cantidades de transacciones, es decir, al realizar ataques DDOS en la red Ethereum.
  4. Cualquiera puede explotar vulnerabilidades RPC conocidas en el software de su nodo, especialmente en caso de que el software de su nodo no esté actualizado.
  5. Cualquiera puede hacer que su nodo no responda o incluso bloquearlo enviando spam con consultas costosas
¿Cómo podrían enviar spam con consultas costosas (supongo que altos txs de gas)?