La red Ethereum depende en gran medida de la integridad y seguridad de sus nodos distribuidos. Los operadores de nodos Ethereum desempeñan un papel fundamental al mantener la estabilidad y confiabilidad de la red. Sin embargo, con la creciente sofisticación de las amenazas cibernéticas, los nodos son propensos a ataques (Malware, Ataque DDoS, etc.) y es de suma importancia que los operadores adopten medidas sólidas de seguridad para proteger sus nodos. De esta forma, los operadores de nodos Ethereum no únicamente protegen sus propios nodos, sino que también contribuyen a la salud y viabilidad a largo plazo de la red Ethereum en su conjunto.
Las medidas que se recomiendan tomar como prevención y preservación de la seguridad de los nodos son los siguientes:
Para minimizar el impacto en la computadora primaria ante un ataque.
Supervisar activa y regularmente el estado de los nodos y la infraestructura para detectar actividades sospechosas o posibles amenazas.
En caso de contar con un nodo físico, verificar que esté instalado en un entorno seguro y controlado, con medidas de protección contra accesos físicos no autorizados.
El uso de un disco separado para el almacenamiento de datos de nodo facilitará una gestión más conveniente de la misma.
La mayoría de los clientes admiten los principales sistemas operativos: Linux, MacOS, Windows. Asegurar que esté actualizado para evitar posibles problemas y vulnerabilidades de seguridad.
Con el fin de proteger el nodo contra la descarga involuntaria de código malicioso desde una fuente adversa.
Actualizar el software a la última versión estable con regularidad para mitigar posibles vulnerabilidades y mejorar la seguridad.
Evalúa las configuraciones contra vulnerabilidades comunes, como los CVE (Vulnerabilidades y Exposiciones Conocidas), para fortalecer la seguridad. Una buena práctica es tratar de vulnerar nuestro propio nodo simulando ser un atacante para asegurarnos a que se tiene acceso y a que no.
Asegura el almacenamiento de claves privadas y otras claves sensibles de manera segura. Es un elemento indispensable en el caso de que el nodo necesite una restauración .
Evitar almacenar información sensible relacionada con el código en repositorios públicos y herramientas de código abierto, impidiendo el acceso a datos sensibles por parte de actores maliciosos.
Utiliza un antivirus para detectar y prevenir que un malware utilice el nodo de forma incorrecta.
Proteger la infraestructura blockchain mediante Firewall u otras medidas de seguridad similares con el fin de efectuar un control del tráfico de la red entrante y saliente del nodo, limitando de esta forma el acceso a puertos y direcciones IP indispensables.
Bloquear todo el tráfico al puerto 8545, o cualquier puerto personalizado que se haya definido para las solicitudes JSON-RPC al nodo, excepto el tráfico proveniente de máquinas explícitamente definidas como confiables.
Permitir el tráfico en TCP 30303 o cualquier puerto personalizado que se haya definido para comunicaciones de par a par. Esto permite que el nodo se conecte con sus pares.
Permitir el tráfico en UDP 30303 o cualquier puerto personalizado que se haya definido para comunicaciones de par a par. Esto permite la detección de nodos.
Implementa algoritmos de consenso, como Prueba de Trabajo (PoW) o Prueba de Participación (PoS), para prevenir ataques Sybil y de 51%.
Supervisar las pools de minería y establecer alertas para desviar a los mineros si superan un límite del ~40%.
Utiliza protocolos de enrutamiento seguros, como certificados, para prevenir ataques de enrutamiento.
Evita que las transacciones de spam se incluyan en el registro, lo que podría tener efectos negativos en la red.
Conducir pruebas regulares para evaluar la seguridad de la red blockchain y su infraestructura.
Establece controles de acceso y autenticación robustos para proteger el acceso a los nodos, es importante aclarar que IAM administra identidades para accesos comunes que ocurren en actividades de rutina (Usuarios); PAM controla el acceso de usuarios privilegiados y activos en entornos críticos del sistema.
Aplicar las mejores prácticas de seguridad para las interfaces de programación de aplicaciones. Para evitar el riesgo de crashes debido a falta de memoria; el riesgo de intentos de robo de fondos a través de solicitudes de firma falsas; por último, mantenerse al día con la progresión de la cadena, puede suceder debido a la escasez de recursos del nodo.
Asegura las comunicaciones internas y externas mediante el uso de TLS (Seguridad de la capa de transporte) estándar, una buena práctica es el uso del software Teamviewer con medidas de seguridad f2a para conectarnos remotamente al nodo, este tráfico está protegido mediante el intercambio de claves pública / privada RSA y el cifrado de sesión AES (256 bits).
Implementa sistemas de autenticación, verificación y autorización utilizando tokens seguros (one time password, reconocimiento facial, etc.).
Asegura la privacidad y la integridad de los datos (claves privadas, contraseñas, etc.) mediante el cifrado de extremo a extremo. Evitando accesos no autorizados.
Emplea servidores efímeros para reducir la exposición a posibles amenazas.
Implementa las mejores prácticas de desarrollo de ciclo de vida de software seguro (SDLC) para la infraestructura y el desarrollo de código.
Revisar todos los smart contracts en busca de errores y vulnerabilidades antes de usarlos en producción.
La diversidad de clientes es fundamental para los nodos de consenso que ejecutan validadores, si la mayoría utiliza una única implementación de cliente, la seguridad de la red se encontrará en riesgo.
Con el uso de VPN permite el acceso a las personas que iniciaron sesión en la VPN para acceder a los recursos internos.
En resumen, la seguridad de los nodos Ethereum no es solo una responsabilidad técnica, sino un compromiso continuo para adaptarse a las amenazas emergentes y garantizar la integridad de la red descentralizada. La implementación diligente de prácticas de seguridad contribuirá a un ecosistema Ethereum más resistente y confiable.
El ecosistema SEEDLatam tiene el objetivo de promover el conocimiento y el pensamiento crítico sobre la Web3 en América Latina, así como impulsar a los líderes Web3 del futuro. Para lograr esta misión, SEEDLatam trabaja en conjunto con comunidades: creando, alineándose y coordinándose con ellas en la consecución de un objetivo más amplio: la educación en diversas áreas del ecosistema Web3 y generar un mayor impacto positivo en América Latina a través de la participación activa en las gobernanzas de mayor impacto.