lunes, junio 05, 2023

Latch Web3: Un pestillo de seguridad para SmartContracts (Parte 3)

Vimos en la primera parte de este artículo cómo funciona Latch y Latch Cloud TOTP, así como todas las posibles integraciones que se pueden hacer, y en la parte dos de este articulo repasamos la infraestructura de una DApp, así como los posibles incidentes de seguridad y qué técnicas de hacking les afecta,  con el objetivo de securizar la infraestructura, que va a ser nuestro objetivo a partir de este momento.

Figura 1: Latch Web3: Un pestillo de seguridad para SmartContracts (Parte 3)

Como vimos al final de la parte anterior, en https://defillama.com/hacks tenemos una lista con todos los incidentes de seguridad que han afectado a Dapps, ya sea por medio de problemas de seguridad en la identidad, de bugs en SmartContract o de otro tipo de ataque perpetrado contra la organización. El gráfico que tenemos en la imagen siguiente se muestra porcentualmente, qué tipos de ataques han sido los más utilizados, teniendo en cuenta los datos de todos los incidentes de seguridad que han sido reportados hasta el momento. 
Como se puede ver, la parte de "Others" es grande, y en ella entran muchos de los problemas de seguridad que tienen que ver con la lógica de los SmartContracts, que tanto hemos hablado en la parte anterior, y para lo que es fundamental el uso de Latch Web3, como vamos a ver. Pero si nos fijamos la gestión de claves privadas comprometidas - en texto claro o cifradas que luego más tarde serán crackeadas -, suman una gran cantidad de porcentaje.

Protección de claves privadas

La gestión de las claves privadas es un problema clásico. Estas claves - o la semilla para generar éstas - es algo que se debe proteger como un secreto compartido almacenado en el Wallet Web3 que está en un dispositivo, ya sea un Windows, un Mac o un Android, por poner un ejemplo.
En ellos, proteger el dispositivo contra ataques de malware que se pueda meter en el dispositivo es fundamental, así que todas las opciones de fortificación del equipo donde tienes las claves de las Wallets que gestionan los Tokens o los SmartContracts, es fundamental.
Así que, fortificar y poner un antimalware con protección en tiempo real es fundamental, en aquellos dispositivos en los que tengas instalada tu Wallet Web3, que si no tendrás un disgusto grande.

2FA en Wallets Web3

La siguiente medida de seguridad que debes tener, además de proteger la semilla de las claves privada/pública de la Wallet Web3, es la de poner un 2FA a tu Wallet, lo que permitirá que aunque alguien tenga tus credenciales de acceso, no podrá utilizar tu clave privada para firmar transacciones en la cadena de Blockchain, algo necesario para robar los Tokens.
Para esto, ya vimos que Latch Cloud TOTP es una solución que permiten todas o casi todas las Wallets Web3 que se utilizan hoy en día. En este artículo tenéis un ejemplo con la Wallet Web3 de Bit2Me que usa un modelo Custodio de las claves.

Conexión Segura con filtro Web3

La tercera de las protecciones que se pueden tener, y que nosotros hemos puesto a todos los clientes de Movistar es el filtro de conexión a sitios web maliciosos, que se llama Conexión Segura, y que filtra todas las conexiones a dominios potencialmente peligrosos. Para hacer que esta protección tenga en cuenta los ataques específicos del mundo Web3, la empresa ESET nos proporciona un feed de inteligencia con dominios de este tipo que debemos filrtar.

Figura 21: Log de bloqueos en Conexión Segura
del feed Web3 proporcionado por ESET

Entre los ataques que se encuentran catalogados, están sitios de Criptomining, Criptostealers, plataformas de Fake Brokers, sitios que realizan Phishing de Dapps para hacer ataques de Ice Phishing, sitios de Scams de BitCoin, etcétera.

Figura 22: Si Conexión Segura está activada verás esto

Lo único que tienes que hacer si eres cliente de Movistar, es entrar en SmartWiFi y activarlo para proteger estas conexiones. Es un servicio gratuito, pero debe ser activado manualmente por el usuario, así que cuanto antes lo hagas, mejor que mejor, que luego tenemos los dramas.

Latch Web3 para SmartContracts

Llegados a este punto, el siguiente punto de control que queríamos añadir es configurar un Latch para que un usuario pudiera Latchear y proteger con un pestillo la ejecución de acciones de un SmartContract incluso aunque alguien tenga acceso a la Wallet de ese usuario.

Figura 23: El Latch del SmartContract de una Dapp está abierto.
Entonces se puede ejecutar la transacción de Tokens.

Es decir, imaginemos que hay un usuario que ha perdido las claves de su Wallet Web3, y el atacante tiene acceso a ella para firmar transacciones llamando al SmartContract de la Dapp y solicitando una determinada operación de transferencia de Tokens

Figura 24: El Latch del SmartContract de una Dapp está cerrado. 
Transacción de tokens prohibida.

La idea es que el SmartContract, antes de realizar esa operación, comprueba el estado del Latch para ese usuario y ese SmartContract. Si el Latch está cerrado, el SmartContract no ejecuta la operación, aunque el usuario tenga la clave privada de la Wallet Web3.

La arquitectura de integración de un Latch en el SmartContract de una Dapp y tiene varias fases, que vamos a ir viendo paso a paso en la próxima entrada de este artículo, donde vamos a ver cuáles han sido todas las piezas que hemos incluido a la arquitectura de Latch.

No hay comentarios:

Publicar un comentario