{"id":13824,"date":"2018-12-04T11:17:56","date_gmt":"2018-12-04T17:17:56","guid":{"rendered":"https:\/\/latam.kaspersky.com\/blog\/?p=13824"},"modified":"2018-12-04T11:17:56","modified_gmt":"2018-12-04T17:17:56","slug":"copay-supply-chain-attack","status":"publish","type":"post","link":"https:\/\/latam.kaspersky.com\/blog\/copay-supply-chain-attack\/13824\/","title":{"rendered":"Un eslab\u00f3n malicioso en la cadena de criptomonedas"},"content":{"rendered":"<p>Casi todos los desarrolladores utilizan bibliotecas de terceros, donde millones de desarrolladores comparten sus creaciones con el mundo, ya que utilizar m\u00f3dulos para ayudarte a solucionar tus tareas puede ser muy eficaz. Pero cuando utilizas el c\u00f3digo de otra persona, est\u00e1s confiando plenamente en los creadores de ese c\u00f3digo, \u00bfverdad? BitPay, desarrollador del monedero de criptomonedas de Copay, ha descubierto las desventajas de utilizar activos de terceros de c\u00f3digo abierto.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-17444 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2018\/11\/30131434\/copay-supply-chain-featured.jpg\" alt=\"\" width=\"1460\" height=\"958\"><a href=\"https:\/\/github.com\/bitpay\/copay\/\" target=\"_blank\" rel=\"noopener nofollow\">Copay<\/a> es b\u00e1sicamente una multiplataforma de <a href=\"https:\/\/latam.kaspersky.com\/blog\/cryptowallets\/12740\/\" target=\"_blank\" rel=\"noopener\">monedero de criptomonedas<\/a> Bitcoin\/Bitcoin Cash que permite a los usuarios crear monederos compartidos; se ha desarrollado con JavaScript y TypeScript y depende de una gran cantidad de bibliotecas de c\u00f3digo abierto de terceros.<\/p>\n<p>Uno de ellos es un m\u00f3dulo Node.js de c\u00f3digo abierto llamado <em>event-stream<\/em>. Su archivo digital en el servicio de control de versiones GitHub se manten\u00eda gracias a un desarrollador que hab\u00eda perdido inter\u00e9s en el proyecto hace mucho tiempo y que no se hab\u00eda interesado por dicho archivo en a\u00f1os. Por tanto, cuando otro desarrollador con poca o ninguna actividad previa en GitHub se acerc\u00f3 y pregunt\u00f3 si pod\u00eda obtener los derechos de administrador para mantener el archivo, el desarrollador original le concedi\u00f3 derechos de acceso.<\/p>\n<p>El nuevo desarrollador se puso directamente a trabajar. Primero, la biblioteca <em>event stream<\/em> comenz\u00f3 a utilizar el m\u00f3dulo llamado <em>flatmap-stream<\/em> del archivo de GitHub del mismo desarrollador. Entonces, modific\u00f3 el m\u00f3dulo a\u00f1adiendo un <strong>c\u00f3digo malicioso<\/strong> y, tres d\u00edas despu\u00e9s de la actualizaci\u00f3n, subi\u00f3 otra versi\u00f3n de <em>flatmap-stream<\/em>, este sin el c\u00f3digo malicioso, seguramente para ocultar su actividad.<\/p>\n<p>As\u00ed acabo comprometida la biblioteca de <em>evento-stream<\/em>, la cual no solo utiliza BitPay, sino muchas otras compa\u00f1\u00edas. Supuestamente, estuvo comprometida durante tres d\u00edas, tiempo suficiente para que los desarrolladores de Copay, quienes no se percataron de la modificaci\u00f3n con la carga maliciosa, incluyeran la versi\u00f3n actualizada en la biblioteca de su proyecto. El <i>software<\/i> del monedero de criptomonedas se public\u00f3 en tiendas de aplicaciones y muchos de sus usuarios lo acabaron descargando.<\/p>\n<p>Quiz\u00e1, los desarrolladores de Copay no quisieron dedicar mucho tiempo en revisar los cambios de las bibliotecas que utilizaron y de esta forma garantizar la seguridad del software. Actualmente, la actualizaci\u00f3n de las bibliotecas que se utilizan en un proyecto se puede automatizar f\u00e1cilmente para que ofrezca servicios de gesti\u00f3n como npm, ya que con \u00e9l un desarrollador puede ejecutar un \u00fanico comando para actualizar todos los m\u00f3dulos de terceros utilizados en el proyecto.<\/p>\n<p>Aunque los desarrolladores echaran un vistazo a las bibliotecas actualizadas, ser\u00eda complicado encontrar el c\u00f3digo malicioso. Las bibliotecas utilizadas en un proyecto pueden depender de otras bibliotecas (al igual que <em>event-stream<\/em> depend\u00eda de <em>flatmap-stream<\/em>) y comprobar todas las dependencias puede conllevar mucho tiempo.<\/p>\n<p>Seg\u00fan <a href=\"https:\/\/www.ccn.com\/breaking-numerous-bitcoin-wallets-may-have-been-compromised-by-rogue-developer\/\" target=\"_blank\" rel=\"noopener nofollow\">CCN<\/a>, la biblioteca de <em>flatmap-stream<\/em> fue modificada para filtrar claves privadas (b\u00e1sicamente, contrase\u00f1as de monederos de criptomonedas) desde aplicaciones que depend\u00edan tanto de las bibliotecas de <em>event-stream<\/em>como de las de <em><em>copay-dash<\/em>. <\/em>Esto sugiere que fuera un ataque de ciberdelincuentes dirigido contra BitPay, los creadores de Copay y los autores de <em>copay-dash<\/em>. En este caso, las claves se filtrar\u00edan solo si ambas bibliotecas fueran utilizadas y solo en productos basados en el c\u00f3digo de Copay.<\/p>\n<p>Seg\u00fan <a href=\"https:\/\/arstechnica.com\/information-technology\/2018\/11\/hacker-backdoors-widely-used-open-source-software-to-steal-bitcoin\/\" target=\"_blank\" rel=\"noopener nofollow\">ArsTechnica<\/a>, la carga maliciosa permit\u00eda al ciberdelincuente conseguir acceso sin autorizaci\u00f3n a los monederos de los usuarios y transferir fondos desde ah\u00ed. Fue un usuario de GitHub el que descubri\u00f3 e <a href=\"https:\/\/github.com\/dominictarr\/event-stream\/issues\/116#issuecomment-441749105\" target=\"_blank\" rel=\"noopener nofollow\">inform\u00f3<\/a> del error. Pero antes, ya se hab\u00edan distribuido varias versiones de monederos de Copay con c\u00f3digo malicioso. Finalmente, BitPay lo admiti\u00f3 y aconsej\u00f3 a los clientes que utilizaban las versiones de la 5.0.2 a la 5.1.0 que actualizaran hasta la \u00faltima versi\u00f3n, 5.2.0. De momento, no hay informaci\u00f3n disponible sobre el n\u00famero de usuarios afectados y el dinero que han perdido.<\/p>\n<p>Se trata de un cl\u00e1sico ataque a la cadena de suministro, en el cual un ciberdelincuente compromete una biblioteca de terceros utilizada por los desarrolladores de una aplicaci\u00f3n. El problema est\u00e1 en utilizar un <i>software<\/i> de c\u00f3digo abierto gestionado por cualquiera, ya que nadie puede garantizar que funcione como ha funcionado en versiones anteriores. Pero no podemos culpar del<strong> ataque de ciberdelincuentes<\/strong> a los desarrolladores de <i>software<\/i> de c\u00f3digo abierto, pues ellos proporcionan sus productos tal cual, no prometen nada.<\/p>\n<p>El problema es que Copay tambi\u00e9n es de c\u00f3digo abierto y lo utilizan muchos desarrolladores de otros monederos de criptomonedas, lo cual puede complicar aun m\u00e1s las cosas.<\/p>\n<p>Las empresas que proporcionan <i>software<\/i> (y sobre todo <i>software<\/i> que se utiliza para transferir grandes cantidades de dinero) deber\u00edan asegurarse de que, antes de lanzar su producto, se realicen comprobaciones de seguridad con an\u00e1lisis exhaustivos de todas las versiones de las bibliotecas de terceros utilizadas en su proyecto.<\/p>\n<p>Lo mejor para evitar problemas de seguridad en el software ser\u00eda echar un vistazo al estado del archivo, considerar las calificaciones de otros desarrolladores, comprobar la frecuencia con la que se actualiza el proyecto, cu\u00e1nto tiempo hace desde la \u00faltima actualizaci\u00f3n y echar un vistazo al registro de errores. En caso de encontrar algo sospechoso, se deber\u00eda realizar una investigaci\u00f3n m\u00e1s profunda, si no, se pasa a otro m\u00f3dulo.<\/p>\n<p>Si una biblioteca tiene alg\u00fan problema de seguridad, los clientes culpan a la compa\u00f1\u00eda que proporciona el <i>software<\/i> y que depende, a su vez, de la biblioteca, aunque la culpa sea realmente de los desarrolladores de esta. Evidentemente, no estamos diciendo que no utilices productos de c\u00f3digo abierto, pero s\u00ed te aconsejamos que est\u00e9s alerta y seas precavido.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La multiplataforma de monedero de criptomonedas Copay fue v\u00edctima de un ataque de ciberdelincuentes que insertaron c\u00f3digo malicioso en el software para filtrar las contrase\u00f1as<\/p>\n","protected":false},"author":675,"featured_media":13825,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2795,3539,3540],"tags":[882,3377,3110],"class_list":{"0":"post-13824","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-business","8":"category-enterprise","9":"category-smb","10":"tag-bitcoin","11":"tag-cadena-de-suministro","12":"tag-criptomonedas"},"hreflang":[{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/copay-supply-chain-attack\/13824\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/copay-supply-chain-attack\/14735\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/copay-supply-chain-attack\/12342\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/copay-supply-chain-attack\/16652\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/copay-supply-chain-attack\/14843\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/copay-supply-chain-attack\/17443\/"},{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/copay-supply-chain-attack\/16652\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/copay-supply-chain-attack\/21845\/"},{"hreflang":"tr","url":"https:\/\/www.kaspersky.com.tr\/blog\/copay-supply-chain-attack\/5472\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/copay-supply-chain-attack\/24786\/"},{"hreflang":"pl","url":"https:\/\/plblog.kaspersky.com\/copay-supply-chain-attack\/10102\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/copay-supply-chain-attack\/18176\/"},{"hreflang":"ja","url":"https:\/\/blog.kaspersky.co.jp\/copay-supply-chain-attack\/22088\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/copay-supply-chain-attack\/21585\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/copay-supply-chain-attack\/21584\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/latam.kaspersky.com\/blog\/tag\/cadena-de-suministro\/","name":"cadena de suministro"},"_links":{"self":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/13824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/users\/675"}],"replies":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/comments?post=13824"}],"version-history":[{"count":1,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/13824\/revisions"}],"predecessor-version":[{"id":13826,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/13824\/revisions\/13826"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media\/13825"}],"wp:attachment":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media?parent=13824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/categories?post=13824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/tags?post=13824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}