Seguridad en Blockchain (I): «La (in)seguridad en la cadena de bloques»

Existe la creencia popular de que esta es una tecnología segura, inmutable y transparente que plantea una enorme revolución a diferentes aspectos de nuestra sociedad, no solo en nuestra economía, dando lugar a activos como las criptomonedas, sino en todo tipo de ámbitos, como la expedición de títulos, trazabilidad de paquetería… y puede ser implantada en casi cualquier ámbito. Pero ¿realmente es esta tecnología más segura que otra? ¿La cadena es realmente inmutable una vez se ha grabado en la cadena de bloques?

Para poder entrar en materia, es necesario explicar de forma breve qué es la Blockchain. Este concepto se puede definir como una estructura de datos en la que la información contenida se agrupa en conjuntos (bloques) a los que se le añade información relativa a otro bloque de la cadena anterior en una línea temporal.

A pesar de que esta tecnología posee mecanismos de “Security by Disign” para algunas funcionalidades, son bastante inseguras para otras, especialmente cuando los usuarios no están concienciados sobre los riesgos de ciberseguridad.

Uno de los aspectos más críticos en la Blockchain es la protección de la clave privada o el mecanismo de intercambio de claves (Pública-Privada). Sus mecanismos son más primitivos que en una “firma electrónica cualificada” depurada y consolidada.

La tecnología Blockchain no es segura en su totalidad

Llegados a este punto, podemos afirmar que la blockchain NO es 100% segura, haciendo referencia a la tecnología en sí misma.

Uno de los ejemplos más relevantes para demostrar la seguridad o inseguridad de esta tecnología se ha dado en casos de criptomonedas (su uso más extendido en estos momentos). En este contexto, se han experimentado explotaciones de vulnerabilidades que han tenido repercusión y han demostrado debilidades inherentes en la seguridad de la Blockchain.

Las más grave de las vulnerabilidades es la conocida como “Inyección de código externo”, que hace referencia a un posible código malicioso externo no controlado. Este tipo de debilidad suele aparecer cuando es necesario añadir una funcionalidad o corregir un error por medio de esa “referencia” y se abren vectores de ataque que pueden afectar a la integridad de la cadena de bloques, intencionadamente o por un error humano. Aunque en Blockchain’s públicas (Bitcoin, Ethereum…) hay muchos ojos comprobando que el código “esté limpio”, esto no suele darse en casos de desarrollos internos que buscan adoptar esta tecnología en un entorno corporativo. Esto sería un ejemplo de Blockchain privada, permaneciendo la trazabilidad únicamente a disposición de la organización.

Cada nuevo proyecto puede reutilizar código ya realizado con anterioridad y añadir nuevas funcionalidades. Sin embargo, la complejidad de esta tecnología crece tan deprisa que resulta difícil cubrir todo y, a veces, se producen errores de regresión, ya que vuelven a aparecer vulnerabilidades que se parchearon en anteriores ocasiones. No puede presuponerse que las funcionalidades del punto de partida eran seguras en todos sus aspectos. Mucho menos cuando aún se están empleando las primeras versiones de lenguajes de programación enfocados a Blockchain (Solidity).

La dificultad de la tecnología Blockchain aumenta tan deprisa que resulta complicado abarcarlo todo

Aspectos de implementación como Wallets autónomas (con Blockchain propia y protección de claves privadas) o servicios de Web Wallets (delegando a un tercero el almacenamiento de esta propia tecnología o claves privadas) presentan diferentes desafíos sobre la forma de gestionar la seguridad y sus implementaciones deberían ser revisadas.

Estas cuestiones son solo algunos de los problemas que una compañía debe tener en cuenta a la hora de garantizar la seguridad en Blockchain. Existen grandes diferencias de funcionamiento entre las implementaciones, no únicamente en el aspecto tecnológico, sino también en el entorno de seguridad general de la empresa de la organización. Todas estas preocupaciones deben ser consideradas cuidadosamente.

Leave a Reply