Autor: Lisa & Aro

Editor: Liz

En el entorno actual de Internet, las amenazas como malware, virus y ataques de phishing son omnipresentes. Instalar software antivirus (como AVG, Bitdefender, Kaspersky, Malwarebytes y otros productos internacionales reconocidos) puede ayudar a los usuarios a prevenir programas maliciosos y mejorar la seguridad del sistema. Sin embargo, la función del software antivirus es proporcionar protección básica de seguridad; solo puede reducir riesgos y no puede garantizar una seguridad absoluta. La lucha es un proceso dinámico, y la instalación de software antivirus es solo el primer paso para mejorar la seguridad. Al mismo tiempo, el propio software antivirus también puede generar falsos positivos, lo que conlleva riesgos adicionales.

Recientemente, algunos usuarios han informado que, después de usar software antivirus, algunas extensiones del navegador (especialmente extensiones de billeteras de criptomonedas) fueron marcadas erróneamente como malware, lo que llevó a que los archivos JavaScript de la extensión fueran puestos en cuarentena o eliminados, dañando finalmente la billetera de la extensión, impidiendo su uso normal.

Para los usuarios de Web3, esta situación es especialmente grave, ya que las extensiones de billetera encriptadas suelen almacenar claves privadas, y si no se manejan correctamente, pueden llevar a la pérdida de datos de la billetera, incluso sin posibilidad de recuperar los activos. Por lo tanto, es crucial entender cómo recuperar correctamente los datos de extensión que fueron marcados erróneamente y puestos en cuarentena.

¿Cómo manejarlo?

Si se descubre que el software antivirus genera un falso positivo que causa daños en la extensión del navegador, se recomienda seguir los siguientes pasos para la recuperación:

1. Recuperar archivos de la zona de cuarentena, no desinstalar la extensión

Si se descubre que un software o extensión no funciona, verifique de inmediato la 'zona de cuarentena' o 'historial' del software antivirus para buscar archivos que hayan sido marcados erróneamente. No elimine los archivos en cuarentena.

  • Si el archivo aún está en la zona de cuarentena, seleccione 'Restaurar' y añada ese archivo o extensión a la lista de confianza para evitar futuros falsos positivos.

  • Si el archivo ha sido eliminado, verifique si hay copias de seguridad automáticas o use herramientas de recuperación de datos para recuperarlo.

  • Recuerde: ¡no desinstale la extensión! Aun si la extensión está dañada, es posible que aún existan archivos relacionados con la clave privada en su sistema local, lo que puede permitir la recuperación.

2. Realizar copias de seguridad y buscar datos de extensión locales

Los datos de la extensión generalmente se almacenan en el disco local, incluso si la extensión no puede abrirse, aún se pueden encontrar datos relacionados para su recuperación (el ID de la extensión usando MetaMask como ejemplo: nkbihfbeogaeaoehlefnkodbefgpgknn):

  • Referencia de ruta para Windows: C:\Users\USER_NAME\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn

  • Referencia de ruta para Mac:
    ~/Library/Application Support/Google/Chrome/Default/Local Extension Settings/nkbihfbeogaeaoehlefnkodbefgpgknn

Es importante tener en cuenta que si Chrome tiene configuraciones de múltiples cuentas, 'Default' en la ruta puede convertirse en 'Profile 1/Profile 2', y se debe verificar el directorio de perfil específico, ajustando la ruta según la situación real. Se recomienda hacer una copia de seguridad completa del directorio de la extensión objetivo de inmediato para poder recuperarla si ocurre algún problema.

3. Método de recuperación brusca: sobrescribir el directorio de extensión local

Si un falso positivo causa daños a la extensión, el método más directo es en una nueva computadora o entorno de navegador, sobrescribir los datos de la extensión respaldados directamente en el directorio de extensión correspondiente en la ruta local, y luego reabrir la extensión.

4. Métodos avanzados de recuperación: desencriptar manualmente los datos de la clave privada

Si la extensión aún no se puede abrir o los datos están faltantes, puede intentar un método de recuperación más avanzado, es decir, desencriptar manualmente los datos de la clave privada para recuperarlos. Usando MetaMask como ejemplo:

  • Busque localmente el ID de la extensión de MetaMask en su computadora y encuentre el siguiente directorio: C:\Users\[User]\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn

  • Este directorio puede contener archivos ldb/log, que almacenan los datos de la clave privada encriptada. Se puede utilizar la herramienta oficial de desencriptación de Vault de MetaMask (https://metamask.github.io/vault-decryptor/) para desencriptar.

  • Pasos para desencriptar: abrir la herramienta de desencriptación de MetaMask Vault -> copiar el contenido encriptado de los archivos ldb/log -> utilizar la contraseña original de la extensión para desencriptar -> obtener la clave privada y luego volver a importar la billetera.

Si la extensión de MetaMask aún puede abrir ciertas páginas (como chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html), puede intentar ejecutar el siguiente código para obtener los datos de la clave privada encriptada:

Luego, copie los datos del vault a la herramienta de desencriptación de MetaMask Vault para desencriptarlos.

5. Escribir herramientas de recuperación personalizadas

Si los métodos anteriores no pueden recuperar los datos de la billetera, el usuario puede escribir un script para extraer los datos almacenados de la extensión desde el archivo de base de datos local y luego desencriptarlos. A continuación, se presenta el principio básico de la implementación de herramientas de recuperación de billetera utilizando PhantomKeyRetriever como plantilla:

Las extensiones de billetera generalmente almacenan datos sensibles en la base de datos o archivos del sistema local. Las extensiones de billetera del navegador (como Phantom, MetaMask, etc.) utilizan la API de almacenamiento proporcionada por el navegador para guardar datos encriptados en la zona de almacenamiento local del navegador, que generalmente es en sistemas de bases de datos como LevelDB o IndexedDB. Independientemente del tipo de billetera, un principio clave es que los datos siempre se almacenan en forma encriptada, asegurando que incluso si los datos son copiados, no se puede acceder sin la contraseña correcta.

La mayoría de las billeteras encriptadas utilizan una arquitectura de encriptación en múltiples capas para mejorar la seguridad. Primero, la contraseña principal del usuario se utiliza para encriptar una clave intermedia (a menudo llamada 'clave de encriptación' o 'clave de desencriptación'). Luego, esta clave intermedia se utiliza para encriptar la clave privada o la frase de recuperación real. Este diseño asegura que incluso si el código de la aplicación de la billetera se ve comprometido, un atacante necesitaría conocer la contraseña del usuario para obtener la clave privada. Este diseño en múltiples capas también permite que la aplicación de la billetera desencripte solo la clave intermedia después de que el usuario inicie sesión, sin necesidad de ingresar la contraseña principal en cada operación.

El proceso de escribir herramientas de recuperación de billetera generalmente incluye:

  • Localizar y extraer datos encriptados (leer datos desde LevelDB/IndexedDB).

  • Analizar la estructura de datos e identificar las claves privadas/frases de recuperación encriptadas.

  • Solicitar al usuario que ingrese la contraseña de la billetera y calcular la clave de desencriptación a través de KDF (como PBKDF2 o Scrypt).

  • Desencriptar la clave intermedia y luego desencriptar la clave privada/frase de recuperación.

Este proceso requiere un conocimiento preciso del esquema de encriptación de la billetera y del formato de almacenamiento de datos, lo que generalmente se obtiene mediante ingeniería inversa o análisis del código fuente de la billetera.

Hablando de la herramienta PhantomKeyRetriever, se trata de un script diseñado específicamente para extraer frases de recuperación o claves privadas de la billetera Phantom desde los datos del navegador Chrome. SlowMist ha abierto esta herramienta en GitHub (https://github.com/slowmist/PhantomKeyRetriever), y su principio central es el siguiente:

  • Leer la base de datos LevelDB de Chrome y copiar datos relevantes a un directorio temporal.

  • Recorrer la base de datos para buscar las claves encriptadas y la información de la semilla de la billetera de Phantom.

  • El usuario ingresa la contraseña de Phantom, y el script utiliza PBKDF2/Scrypt para calcular la clave de desencriptación.

  • Desencriptar los datos del vault de la billetera y extraer la frase de recuperación BIP39 o la clave privada en Base58.

En este proceso de doble desencriptación, el script admite dos funciones de derivación de clave: PBKDF2 y Scrypt, y utiliza la biblioteca NaCl's SecretBox para la desencriptación segura. Finalmente, según el tipo de datos desencriptados, el script generará frases de recuperación estándar BIP39 o extraerá claves privadas codificadas en Base58.

Es importante tener en cuenta que otros navegadores que admiten billeteras de extensión (como Edge, Firefox) también tienen principios similares, y no se volverán a detallar aquí.

¿Cómo prevenir?

Para reducir el riesgo de falsos positivos, los usuarios pueden tomar las siguientes medidas:

  • Realice copias de seguridad periódicas de archivos importantes y datos de extensiones del navegador para poder recuperarlos rápidamente en caso de un falso positivo.

  • Agregue manualmente reglas de confianza en el software antivirus. Para programas o extensiones importantes (como MetaMask), puede agregarlos manualmente a la lista de confianza para evitar falsos positivos.

  • Descargue software a través de canales oficiales y evite instalar aplicaciones no oficiales o modificadas para reducir la posibilidad de que el software antivirus las marque como riesgos potenciales.

Resumen

La lucha es siempre dinámica, y las políticas de seguridad también deben ajustarse continuamente. Instalar software antivirus es importante, pero al final, el usuario es la última línea de defensa de sus propios activos. Al encontrarse con un falso positivo, el usuario debe actuar con calma, evitar eliminar directamente archivos críticos y utilizar los métodos de recuperación apropiados. Solo al dominar el conocimiento de seguridad correcto se puede garantizar realmente la seguridad de los datos.