BLOG

La importancia de DevSecOps en blockchain, protocolos descentralizados y aplicações

Miniatura de Kevin Jones
Kevin Jones
Publicado el 27 de octubre de 2022

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 aplicações. Estos principios y acciones a menudo se describen colectivamente como "DevSecOps", que abarca toda la cultura y el enfoque de la seguridad de las aplicação . DevSecOps significa desarrollo, seguridad y operaciones. Su objetivo es incorporar una mentalidad de seguridad ante todo en todos los aspectos de la tecnología de la información y la infraestructura.

Una de las áreas más recientes y apasionantes de la tecnología de la información es blockchain, que viene con un ecosistema gigante de protocolos y aplicações descentralizadas que pretenden llevarnos a una versión actualizada de la web, lo que muchos llaman Web3.

¿Qué es Web3 y qué es exactamente una aplicação descentralizada?

El término Web3 engloba varios conceptos que se centran en aspectos de la arquitectura de la aplicação y la experiencia del usuario:

  • Descentralización
  • Franqueza
  • Inmutabilidad
  • Programabilidad
  • Transparencia

Estos conceptos centrales tienen como objetivo devolver a los usuarios el control de su identidad mediante criptografía de clave pública y aumentar la adopción de la economía peer to peer a través de diversas mecánicas y protocolos de blockchain. Muchas cadenas de bloques y sus protocolos circundantes pueden procesar transacciones avanzadas y gestionar el estado mediante contratos inteligentes que se ejecutan dentro de entornos virtualizados aislados.

Estos luego se sincronizan en todos los nodos de la red a través de un mecanismo llamado algoritmo de consenso. Se trata de 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 verdad, incluso si algunos agentes fallan. Además, muchas cadenas de bloques funcionan de manera resistente a la censura, manteniendo sus protocolos abiertos y sin permisos.

¿Cómo se ve el paisaje?

Existe un riesgo adicional en una arquitectura basada en blockchain porque la columna vertebral de la red generalmente está impulsada por una criptomoneda digital basada en tokens y normalmente tiene valor monetario. Estos tokens se guardan en direcciones, generalmente almacenadas en cuentas externas o dentro de contratos inteligentes. Y como la confianza también se distribuye con el uso de criptografía de clave pública, cada dirección de la red es propensa a ataques.

El saldo de cada cuenta se distribuye a través de la red en lo que se conoce como el libro de contabilidad público, visible para cualquiera, lo que deja una ventana abierta para que los piratas informáticos ataquen 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 blanco de ataques o su posición les permite actuar de manera ilícita, con amenazas que incluyen:

  • Ingeniería social
  • Confianza o claves mal gestionadas
  • Malversación y fraude
  • Estafas

Además, la huella tecnológica de estas diversas tecnologías de cadena de bloques, protocolos y aplicações descentralizadas 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 panorama mayor y, por lo tanto, más puntos de ataque que deben analizarse y protegerse cuidadosamente.

A continuación se presentan algunos temas que vale la pena considerar al auditar la seguridad de sus aplicações descentralizadas y su infraestructura tecnológica:

  • Blockchains de capa 1 (Bitcoin y Ethereum)
  • Cadenas de bloques de capa 2 (cadenas laterales y acumulaciones)
  • Contratos inteligentes
  • Compiladores
  • Monederos de software
  • Carteras de hardware
  • Clientes de blockchain (mineros y validadores)
  • Intercambios de custodia (centralizados)
  • Intercambios DeFi (descentralizados)
  • Proveedores
  • Mercados (NFT)

Vectores de ataque comunes en contratos inteligentes

Cuando hablamos de DevSecOps en el ciclo de vida de desarrollo de una aplicação, normalmente nos referimos al desarrollo impulsado por la seguridad. Esto también se conoce comúnmente como el acto de desplazar la seguridad hacia la izquierda. Es uno de los aspectos más importantes de la cultura DevSecOps, porque comienza con los desarrolladores pensando 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 vulnerable a los ataques y deben escribirse teniendo en mente una seguridad estricta.

La industria ha presenciado varios ataques dirigidos a contratos inteligentes en torno a vulnerabilidades, generalmente centrados en explotar el código. Uno de los hackeos más grandes de la historia tuvo lugar el año pasado cuando Poly Network, un protocolo cross-chain, informó que un atacante hackeó un contrato inteligente, transfiriendo el equivalente a US$610 millones moviendo varios activos a direcciones de billetera externas controladas por el hacker.

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

  • Desbordamiento insuficiente y desbordamiento: generalmente ocurre cuando las operaciones aritméticas hacen que los números enteros sin signo alcancen su tamaño máximo en bytes, lo que hace que el valor se "envuelva" y puede causar un comportamiento inesperado en la lógica comercial de su aplicação.
  • Reingreso de contrato: La acción de explotar un contrato reingresándolo una y otra vez, donde el atacante generalmente retira más fondos de los que debería tener permitidos.
  • Anticipo de transacciones: se refiere al proceso en el que alguien usa tecnología o ventaja de mercado para obtener conocimiento previo de las próximas transacciones.
  • Secretos mal gestionados.
  • Control de acceso mal implementado.

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

  • Construir una cultura que priorice la seguridad . Los conceptos de DevSecOps son un excelente punto de partida para las organizaciones que buscan construir una cultura centrada en la seguridad.
  • Realizar auditorías . Las auditorías brindan una nueva perspectiva sobre la lógica de la aplicação y los procesos operativos, ayudan a exponer vulnerabilidades en el código e infunden confianza en los usuarios de su aplicação. MythX y Slither son excelentes herramientas para auditar contratos inteligentes de Ethereum.
  • Ofrece recompensas por errores y realiza pruebas de penetración colectivas . La seguridad colaborativa es un método comprobado para ayudar a fortalecer su huella de seguridad. Al incluir a su empresa en programas de recompensas por errores y realizar pruebas de penetración de sus aplicações e infraestructura, puede mantenerse a la vanguardia de las vulnerabilidades y los ataques.
  • Adoptar una estrategia de código abierto. La transparencia de su aplicação es importante en una tecnología como blockchain porque permite a los participantes optar por participar 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 del proyecto en un entorno comunitario.
  • Implementar multi-firma para operaciones administrativas. La implementación de contratos inteligentes que adopten una arquitectura multifirma para funciones administrativas como la transferencia de propiedad, fondos y otras operaciones críticas proporcionará una capa adicional de seguridad para su aplicação.

CONCLUSIÓN

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

Más información

Un buen primer paso en el viaje de cualquier persona hacia la cadena de bloques es el documento técnico asociado al protocolo que está desarrollando: 

A continuación, estudie los ataques y las vulnerabilidades anteriores, e incluso intente reproducir el ataque en su entorno de desarrollo.

Para obtener una experiencia de aprendizaje práctica sobre seguridad en Ethereum, recomiendo los siguientes programas de captura de bandera (CTF) en los que se ocultan vulnerabilidades o "banderas" en programas o sitios web deliberadamente vulnerables para enseñar los fundamentos de la seguridad.