La seguridad siempre ha sido uno de los aspectos más importantes de la tecnología de la información, y hoy en día muchas organizaciones y sus desarrolladores adoptan una mentalidad de seguridad primero al crear aplicaciones.

Estos principios y acciones a menudo se describen colectivamente como ‘DevSecOps’, que abarca toda la cultura y el enfoque de la seguridad de las aplicaciones. DevSecOps significa desarrollo, seguridad y operaciones. Su objetivo es incorporar una mentalidad de seguridad primero en todos los aspectos de la infraestructura y la tecnología de la información.

Uno de los mercados más nuevos y emocionantes en tecnología de la información es blockchain, que viene con un ecosistema gigante de protocolos y aplicaciones descentralizados que tienen como objetivo llevarnos a una versión actualizada de la world wide web, lo que muchos denominan world wide web3.

¿Qué es world-wide-web3 y qué es exactamente una aplicación descentralizada?

El término web3 abarca varios conceptos que se centran en aspectos de la arquitectura de la aplicación y la experiencia del usuario:

– Descentralización

– Apertura

– Inmutabilidad

– Programabilidad

– Transparencia

Estos conceptos básicos tienen como objetivo devolver a los usuarios el management de su identidad mediante la criptografía de clave pública y aumentar la adopción de la economía entre pares a través de varios protocolos y mecanismos de cadena de bloques. Muchas cadenas de bloques y sus protocolos circundantes pueden procesar transacciones avanzadas y administrar el estado mediante contratos inteligentes que se ejecutan dentro de entornos virtualizados aislados.

Luego, estos se sincronizan en todos los nodos de la red a través de un mecanismo llamado algoritmo de consenso. Este es un mecanismo que permite a los usuarios o nodos coordinarse en un entorno distribuido para garantizar que todos los nodos del sistema puedan ponerse de acuerdo sobre una única fuente de información, incluso si algunos agentes fallan. Además, muchas cadenas de bloques funcionan de manera resistente a la censura al mantener sus protocolos abiertos y sin permiso.

¿Cómo es el paisaje?

Existe un riesgo inherente en una arquitectura basada en blockchain porque la columna vertebral de la red generalmente funciona con una criptomoneda digital basada en tokens y generalmente tiene un valor monetario. Estos tokens se mantienen en direcciones, generalmente almacenadas en cuentas de propiedad externa o dentro de contratos inteligentes. Y dado que la confianza también se distribuye con el uso de criptografía de clave pública, cada dirección de la crimson es propensa a sufrir ataques.

El saldo de cada cuenta se distribuye a través de la pink en lo que se conoce como el libro mayor público, obvious para que cualquiera lo vea, lo que deja una ventana abierta para que los piratas informáticos se dirijan a usuarios o contratos específicos. Esto hace que la privacidad y el anonimato sean un aspecto particularmente importante para blockchain. A menudo, los humanos que administran estas cuentas son objetivos de ataques o se les da demasiada confianza y pueden actuar de manera ilícita.

– Ingeniería social

– Fideicomiso o claves mal administrados

– Malversación y fraude

– Estafas

Además, la huella tecnológica de estas diversas tecnologías, protocolos y aplicaciones descentralizadas de blockchain ya es grande y está creciendo rápidamente. Por lo tanto, es importante pensar en las implicaciones de seguridad de este ecosistema de rápido crecimiento. Cualquier cosa que se construya con un concepto central de descentralización tiene un mayor panorama y, por lo tanto, más puntos de ataque que deben analizarse y protegerse cuidadosamente.

Aquí hay algunos puntos que vale la pena considerar al auditar la seguridad de sus aplicaciones descentralizadas e infraestructura tecnológica:

– Cadenas de bloques de capa 1 (Bitcoin y Ethereum)

– Cadenas de bloques de capa 2 (cadenas laterales y acumulaciones)

– Contratos inteligentes

– Compiladores

– Carteras de application

– Carteras de components

– Clientes Blockchain (Mineros y Validadores)

– Intercambios de custodia (centralizados)

– Intercambios DeFi (descentralizados)

– Proveedores

– Marketplaces (NFT)

Vectores de ataque comunes en contratos inteligentes

Cuando hablamos de DevSecOps en el ciclo de vida de desarrollo de una aplicación, normalmente nos referimos al desarrollo impulsado por la seguridad. Esto también se conoce comúnmente como el acto de cambiar la seguridad a la izquierda. Es uno de los aspectos más importantes de la cultura DevSecOps, porque comienza cuando los desarrolladores piensan en la seguridad como código. Dado que los contratos inteligentes basados ​​en blockchain pueden almacenar valor y actuar como un banco, esto hace que el código dentro de ellos sea más susceptible a los ataques y deben escribirse teniendo en cuenta la seguridad estricta.

Hemos visto varios hacks dirigidos a contratos inteligentes y las vulnerabilidades generalmente se enfocan en explotar el código. Uno de los mayores ataques de la historia tuvo lugar el año pasado cuando Poly Community, un protocolo de cadena cruzada, informó que un atacante pirateó un contrato inteligente, transfiriendo el equivalente a 610 millones de dólares moviendo varios activos a direcciones de billetera externas controladas por el pirata informático.

Existen muchas vulnerabilidades en el desarrollo de contratos inteligentes, pero algunos de los ataques más frecuentes son:

– Subdesbordamiento y desbordamiento: por lo typical, ocurre cuando las operaciones aritméticas hacen que los enteros sin signo alcancen su tamaño máximo de bytes, lo que hace que el valor se ‘envuelva’ y podría provocar un comportamiento inesperado en la lógica comercial de su aplicación.

– Reingreso del contrato: la acción de explotar un contrato reingresando una y otra vez, donde el atacante generalmente retira más fondos de los que debería permitirse.

– Transaction Entrance Managing: se refiere al proceso en el que alguien united states of america la tecnología o la ventaja del mercado para obtener conocimiento previo de las próximas transacciones.

– Secretos mal gestionados.

– Management de acceso mal implementado.

¿Qué puedes hacer para nivelar el campo de juego?

– Construir una cultura de seguridad primeroLos conceptos de DevSecOps son un gran punto de partida para las organizaciones que buscan construir una cultura de seguridad.

– Realizar auditorías. Las auditorías brindan una nueva perspectiva sobre la lógica de la aplicación y los procesos operativos, ayudan a exponer vulnerabilidades en el código e infunden confianza en los usuarios de su aplicación. MythX y Slither son excelentes herramientas para auditar contratos inteligentes de Ethereum.

– Ofrezca recompensas por errores y realice pruebas de penetración de fuentes multitudinarias. La seguridad colaborativa es un método comprobado para ayudar a fortalecer su huella de seguridad. Al colocar a su empresa en programas de recompensas por errores y realizar pruebas de penetración de sus aplicaciones e infraestructura, puede adelantarse a las vulnerabilidades y los ataques.

– Adoptar una estrategia de código abierto. La transparencia de su aplicación es importante en una tecnología como blockchain porque permite que los participantes se suscriban en función de la verificación y las auditorías de su código. Además, tener componentes de código abierto permite una mayor responsabilidad de su proyecto en un entorno comunitario.

– Implementar multifirma para operaciones administrativas. La implementación de contratos inteligentes que adopten una arquitectura de firmas múltiples para funciones administrativas como la transferencia de propiedad, fondos y otras operaciones críticas proporcionará una capa adicional de seguridad para su aplicación.

Conclusión

Blockchain, las aplicaciones descentralizadas y los diversos protocolos que las rodean están creciendo rápidamente. Estas nuevas y emocionantes formas de implementar aplicaciones tienen el potencial de alterar muchas industrias diferentes. Sin embargo, es imperativo que nos concentremos en una mentalidad de seguridad primero e implementemos una cultura DevSecOps siempre que sea posible.


Sobre el Autor

Kevin Jones es gerente sénior de productos para NGINX en F5. F5 es una empresa de seguridad y servicios de aplicaciones multinube comprometida con dar vida a un mundo electronic mejor. F5 se asocia con las organizaciones más grandes y avanzadas del mundo para optimizar y proteger cada aplicación y API en cualquier lugar, incluso en las instalaciones, en la nube o en el perímetro. F5 permite a las organizaciones brindar experiencias digitales excepcionales y seguras para sus clientes y mantenerse siempre a la vanguardia de las amenazas.

Otras lecturas

El primer paso en el viaje de cualquier persona a la cadena de bloques debe ser leer el documento técnico asociado para el protocolo en el que se está construyendo.

Libro blanco de Bitcoin

Documento técnico de Ethereum

A continuación, estudie hacks y vulnerabilidades anteriores, llegando incluso a intentar reproducir el hack en su entorno de desarrollo.

Para obtener una experiencia de aprendizaje práctica sobre la seguridad en Ethereum, recomiendo los siguientes programas Seize the Flag (CTF) en los que las vulnerabilidades o «banderas» se ocultan en programas o sitios website deliberadamente vulnerables para enseñar los fundamentos de la seguridad.

OpenZeppelin: El Ethernauta

Captura el éter

Imagen destacada: ©Siahei


Share.
Leave A Reply