Intercambio de bitcoins Intercambio de bitcoins
Ctrl+D Intercambio de bitcoins
ads
Casa > ETH > Info

Primer lanzamiento|La seguridad de las billeteras encriptadas no debe subestimarse, tenga cuidado con los piratas informáticos que controlan los dispositivos de forma remota

Author:

Time:

El equipo de seguridad de CertiK descubrió una vulnerabilidad de ejecución remota de código en la billetera de escritorio de Symbol y envió la vulnerabilidad al programa de recompensas por errores de Symbol. Symbol le dio gran importancia al informe presentado por CertiK, inmediatamente tomó medidas de seguridad y actualizó el código a tiempo. Actualmente, este problema se ha solucionado en la versión v0.9.11. El informe de HackerOne aún no es público, pero con el permiso de Symbol, este artículo se publicará aquí para compartir el incidente. Aquí, CertiK quisiera agradecer a Symbol por el premio de recompensa y el permiso para compartir públicamente el descubrimiento de la vulnerabilidad. Symbol wallet es una aplicación de escritorio basada en Electron. La vulnerabilidad descubierta esta vez está relacionada con la configuración de Electron. ¿Electrón te suena familiar? Pero no es el electrón que aprendiste en la clase de química física. Antes de comenzar el análisis de vulnerabilidades, echemos un vistazo a lo que es Electron en este artículo y lo que vale la pena señalar en términos de seguridad. Electron es un marco de software de código abierto desarrollado y mantenido por GitHub que permite a los desarrolladores crear aplicaciones de escritorio multiplataforma utilizando tecnologías web como HTML, CSS y Javascript. Electron logra esto al combinar el motor Chromium y Node.js. Algunas aplicaciones conocidas de Electron incluyen el editor Atom, VisualStudio Code y Slack, entre otras. Ventajas de usar Electron: los desarrolladores web pueden usar las principales bibliotecas de marcos de Javascript (incluidas Angular, React y Vue) para crear aplicaciones de escritorio multiplataforma que pueden ejecutarse en diferentes sistemas operativos. Este proceso elimina la necesidad de dedicar tiempo a aprender un nuevo lenguaje de programación. La depuración de aplicaciones basadas en Electron es más fácil que la depuración de aplicaciones de escritorio tradicionales. La extensión DevTools en Chromium permite a los desarrolladores depurar sus aplicaciones basadas en Electron de la misma manera que las aplicaciones web. La seguridad de Electron y los peligros de Node.js Una aplicación basada en Electron es esencialmente una aplicación web, por lo que contiene vulnerabilidades web comunes, como secuencias de comandos entre sitios (XSS), inyección de SQL, vulnerabilidades de autenticación y autorización. Electron proporciona muchas API para ayudar en el desarrollo de aplicaciones de escritorio, además, también puede usar módulos Node.js. Node.js permite que las aplicaciones basadas en Electron admitan más funciones que una aplicación web que se ejecuta en un navegador web. Sin embargo, habilitar Node.js conlleva ciertos riesgos de seguridad. Si un atacante puede encontrar una manera de inyectar JavaScript en una aplicación, puede ejecutar comandos del sistema en la computadora del objetivo. Para verificar si una aplicación Electron se está ejecutando con Node.js habilitado, los usuarios pueden enviar la función de importación del módulo "requerir" en la consola de desarrollo. En macOS, la consola se puede abrir presionando "opción + comando + i" simultáneamente. Si Node.js no se inicia, la consola devolverá un mensaje de error "requerir no está definido": Si Node.js está habilitado, la consola devolverá información sobre "requerir": Envíe el siguiente comando en la consola de desarrollo, puede Para abrir la calculadora en macOS: require('child_process').exec('/System/Applications/Calculator.app/Contents/MacOS/Calculator') NCR a 650 bancos y créditos Las cooperativas abren canales de compra de bitcoins: según las noticias del 30 de junio, el gigante de pagos de EE. UU. NCR proporcionará servicios de transacciones de bitcoin a unos 24 millones de clientes de 650 bancos y cooperativas de crédito de EE. UU. NCR se asoció con New York Digital Investments (NYDIG), una empresa hermana de Stone Ridge Asset Management (SRAM), para desarrollar una aplicación móvil que admita el comercio de criptomonedas. NCR cobrará tarifas de transacción y tarifas de servicios de inversión adicionales de los servicios de custodia de NYDIG para obtener ingresos, por lo que no supervisará las tenencias individuales de criptomonedas. (Forbes) [2021/6/30 0:17:33] Para mitigar el riesgo de ejecución remota de código causado por la inyección de JavaScript, a partir de la versión 5.0.0, Electron deshabilita el acceso del programa a los módulos de Node.js de forma predeterminada. Los desarrolladores pueden habilitar el uso de módulos de Node.js configurando "nodeIntegration" en verdadero en el archivo de configuración, lo que no se recomienda desde una perspectiva de seguridad. Vale la pena señalar que en 2018, se descubrió que Electron tenía una vulnerabilidad grave que podría ser aprovechada por un atacante para acceder a los módulos de Node.js, incluso si estaban deshabilitados en la configuración. La Referencia 1 también explica esto en detalle, así que asegúrese de usar la última versión de Electron cuando desarrolle. Con una comprensión de las características asociadas con las aplicaciones basadas en Electron, ahora es posible sumergirse en las vulnerabilidades encontradas en la billetera de escritorio de Symbol. La billetera de escritorio de Symbol es de código abierto y el código fuente de la aplicación se puede encontrar en su Github (Referencia 2). build.js (referencia 3) es el archivo de configuración de compilación de Electron para su aplicación. El siguiente fragmento de código en Build.js verifica si el programa se ejecuta en "darwin" (macOS). De lo contrario, app.on utilizará la función "createWindow" para crear la ventana del navegador. ....código...  si (proceso.plataforma === 'darwin') {    aplicación.on('listo& #39;,createMac)   } else {     app.on('ready',createWindow)    ....code.. . En la función "createwindow", la variable "windowOptions" dentro de la función contiene opciones de configuración de la ventana del navegador. Tenga en cuenta que las líneas que se muestran en rojo establecen la variable "nodeIntegration" en verdadero, lo que significa que esta aplicación está habilitada para Node.js. ...código... función createWindow(){          const windowOptions = {       ;   minWidth: ancho,         minHeight: altura,         ;          altura: altura,         ;     titleBarStyle: 'hiddenInset& #39;, Preferencias web: {Integración de nodo: verdadero,           },        ;  redimensionable: verdadero,   ;    mainWindow= newBrowserWindow(windowOptions) }  & nbsp;De acuerdo con el archivo de configuración build.js, puede saber que si la aplicación se ejecuta en el sistema operativo Windows, Node.js estará habilitado. Para explotar la habilitación de Node.js, un atacante necesitaría inyectar JavaScript arbitrario en la aplicación. Los atacantes generalmente pueden lograr el ataque explotando las vulnerabilidades XSS (cross-site scripting) o cargando cualquier sitio web que contenga JavaScript inyectado por el atacante en la ventana Electron actual. La billetera de escritorio Symbol (versión 9.7) brinda la función de navegar por "noticias", siempre que el usuario haga clic en el enlace de las noticias, la aplicación cargará el sitio web externo (se muestra Github en la imagen) desde la ventana de la billetera. Entonces, ¿cómo se explota la vulnerabilidad? Para demostrar el proceso de explotación de esta vulnerabilidad, el técnico alojó el siguiente fragmento de código en su sitio web personal. Es fácil colocar una URL que apunte a su sitio web en Github. Cuando "nodeIntegration" se establece en verdadero y Node.js está habilitado, la ejecución arbitraria de JavaScript se puede escalar a la ejecución remota de código con la ayuda del módulo "child_process". Después de que el usuario visite la página que contiene la carga útil y haga clic en el botón "Cerrar" en la página, aparecerá una calculadora en la computadora del usuario. Abrir una calculadora en un sistema de destino es una forma de demostrar una vulnerabilidad de ejecución de código exitosa. Prueba de concepto (video en la parte superior):<!DOCTYPEhtml> <h1>click me</h1> <button type="button" onClick="rce_calc() " ;>Enviar</button> <script> functionrce_calc(){ const{ exec } = require('child_process'); exec('calc' ; 39;); }  </script> El símbolo estableció "nodeIntegration" en falso en la solución, lo que deshabilita el acceso de JavaScript a los módulos de Node.js. Este cambio se ha reflejado en su archivo build.js actual (Referencia 4). También actualizaron la función "Noticias" para dejar de cargar sitios web remotos en la ventana de Electron. Como investigadores de seguridad, cuando encontramos una vulnerabilidad en un programa, siempre tratamos de explorar si existe tal vulnerabilidad en otras aplicaciones. Buscando en Internet, el equipo de seguridad de CertiK encontró otra billetera de criptomonedas basada en Electron: MyCrypto. Durante las pruebas, los técnicos descubrieron que MyCrypto tenía la "integración de nodos" establecida en verdadero y Node.js habilitado. Sin embargo, no encontré una manera de atacar esta configuración. Pero no debemos dar a los atacantes la oportunidad de convertir "self-xss" en ejecución de código de comando. CertiK tiene como objetivo contribuir a la seguridad de la comunidad de cifrado y ayudar a las empresas a proteger los activos de los usuarios. El técnico envió un problema en el repositorio de Github de la otra parte. MyCrypto le otorga gran importancia y respondió que esta vulnerabilidad se solucionará en la próxima versión. Electron en sí mismo es un marco de software muy bueno, pero los desarrolladores deben tener cuidado de no exponer el programa al peligro debido a errores de configuración. Tenga cuidado al utilizar nuevas tecnologías en su producto, tenga cuidado y sea consciente de los posibles riesgos de seguridad. Aquí, el equipo de seguridad de CertiK resume varios puntos clave para mejorar la seguridad de las aplicaciones basadas en Electron: Eliminar el acceso a la consola de desarrollo en la versión de producción. Establezca "nodeintegration" en falso a menos que sea absolutamente necesario para su aplicación. Use "event.preventDefault() para evitar que la aplicación cargue páginas web externas.

Tags:

ETH
News Weekly | Filecoin Voice finalmente está en línea.

Golden Weekly es una columna de resumen semanal de la industria de blockchain lanzada por Golden Finance, que cubre noticias clave, datos de mercado y contratos, información minera, dinámica de proyectos.

Golden Observation丨Ebang vs.Canaan ¿Por qué todas las empresas de encriptación chinas se hacen públicas en los Estados Unidos?

Jinse Finance Blockchain, noticias del 27 de junio A las 9:30 p. m. del 26 de junio de 2020, hora de Beijing, EBON International (EBON) aterrizó oficialmente en la bolsa estadounidense Nasdaq.

V Dios: Subestimamos el tiempo requerido para la prueba de participación y fragmentación.

El podcast "The Hashing It Out" presentó recientemente el programa del cofundador de Ethereum, Vitalik Buterin (V God). En el programa, explicó cómo si construyera Ethereum ahora.

Primer lanzamiento|La seguridad de las billeteras encriptadas no debe subestimarse, tenga cuidado con los piratas informáticos que controlan los dispositivos de forma remota

El equipo de seguridad de CertiK descubrió una vulnerabilidad de ejecución remota de código en la billetera de escritorio de Symbol y envió la vulnerabilidad al programa de recompensas por errores de Symbol.

¿Existe alguna oportunidad de inversión en el popular proyecto DeFi Compound?

Recientemente, el token COMP de Compound se ha convertido en un token popular entre muchos inversores en el círculo de divisas. El precio de su token ha aumentado desde un mínimo de $65 a más de $340.

6.Mercado vespertino del 24: El máximo a corto plazo se ha obtenido ganancias, la línea media protege la posición clave.

El artículo es una contribución de Biquan Beiming, columnista de Jinse Finance and Economics, y sus comentarios solo representan sus puntos de vista personales.

¿Serán los tokens DeFi los criptoactivos de mejor rendimiento de 2020?

DeFi se está disparando, como se puede ver en el desempeño de los principales tokens en el campo.A algunos criptoactivos notables les ha ido bien este año, con Bitcoin subiendo un 32 % y Ethereum un 82 %.

ads