{"id":18176,"date":"2018-11-29T13:58:59","date_gmt":"2018-11-29T11:58:59","guid":{"rendered":"https:\/\/www.kaspersky.de\/blog\/?p=18176"},"modified":"2019-11-22T12:13:03","modified_gmt":"2019-11-22T10:13:03","slug":"copay-supply-chain-attack","status":"publish","type":"post","link":"https:\/\/www.kaspersky.de\/blog\/copay-supply-chain-attack\/18176\/","title":{"rendered":"Eine sch\u00e4dliche Verbindung in der Krypto-Kette"},"content":{"rendered":"<p>So gut wie jeder Entwickler nutzt Drittanbieter-Bibliotheken \u2013 bei Millionen von Entwicklern, die ihre Kreationen mit der ganzen Welt teilen, ist der Einsatz bereits vorhandener Module zur Aufgabenl\u00f6sung eine durchaus gute M\u00f6glichkeit, die Zeit clever zu nutzen. Der Haken an der Sache ist jedoch, dass man bei der Verwendung von Drittanbietercode auch den Entwicklern des Codes vollstes \u2013 und vor allem blindes \u2013 Vertrauen schenken muss. BitPay, Entwickler des Kryptowallets Copay, bekam die Nachteile bei der Verwendung von <strong>Open-Source-Assets von Drittanbietern<\/strong> vor Kurzem an eigenem Leib zu sp\u00fcren.<\/p>\n<p>Im Grunde genommen handelt es sich bei <a href=\"https:\/\/github.com\/bitpay\/copay\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Copay<\/a> um ein plattform\u00fcbergreifendes Bitcoin\/BitcoinCash-<strong><a href=\"https:\/\/www.kaspersky.de\/blog\/cryptowallets\/16423\/\" target=\"_blank\" rel=\"noopener\">Krypto-Wallet<\/a><\/strong>, \u00fcber das Nutzer ein sogenanntes \u201eShared Wallet\u201c erstellen k\u00f6nnen. Copay wurde unter Verwendung von JavaScript und TypeScript entwickelt und basiert auf vielen Open-Source-Bibliotheken von Drittanbietern.<\/p>\n<p>Dazu geh\u00f6rt auch das Node.js-Open-Source-Modul <em>event-stream<\/em>, dessen Repository auf dem Versionsverwaltungsservice GitHub von seinem urspr\u00fcnglichen Autoren, Dominic Tarr, verwaltet wurde, der bereits vor einiger Zeit das Interesse an dem Projekt verloren hatte und seit einigen Jahren nur halbherzig am Schicksal des Repositorys beteiligt gewesen war. Als ein interessierter Nutzer, mit geringer bis gar keiner vorherigen Aktivit\u00e4t auf GitHub, auf Tarr zukam und ihn nach den Admin-Rechten zur Verwaltung und Betreuung des Repositorys fragte, stellte ihm dieser die notwendingen Zugriffsrechte zur Verf\u00fcgung.<\/p>\n<p>Der neue Entwickler machte sich daraufhin unverz\u00fcglich an die Arbeit: Zun\u00e4chst begann die Bibliothek <em>event stream<\/em> ein Modul namens <em>flatmap-stream<\/em>\u00a0aus dem GitHub-Repository desselben Autoren zu verwenden. Danach wurde eine Modifikation am Modul <em> flatmap-stream<\/em> vorgenommen \u2013 diesem f\u00fcgte der Entwickler <strong>Schadcode<\/strong> hinzu. Drei Tage nach dem Update wurde eine weitere Version von <em>flatmap-stream<\/em> hochgeladen, die keinen sch\u00e4dlichen Code enthielt \u2013 vermutlich, um die sch\u00e4dlichen Aktivit\u00e4ten zu vertuschen.<\/p>\n<p>Auf diese Weise konnte die <em>event-stream<\/em>-Bibliothek, die nicht nur von BitPay, sondern auch von vielen anderen Unternehmen verbreitet eingesetzt wird, kompromittiert werden. Obwohl die Kompromittierung angeblich nur insgesamt drei Tage anhielt, reichte die Zeit f\u00fcr die Copay-Entwickler aus, die aktualisierte Version der Bibliothek unbemerkt in ihr Projekt zu integrieren. Die aktualisierte <strong>Krypto-Wallet-Software<\/strong> wurde dann in s\u00e4mtlichen App-Stores ver\u00f6ffentlicht und von zahlreichen Nutzern heruntergeladen.<\/p>\n<p>Scheinbar wollten die Copay-Entwickler nicht viel Zeit in die \u00dcberpr\u00fcfung der vorgenommenen \u00c4nderungen der verwendeten Bibliotheken investieren, um die <strong>Sicherheit der Software<\/strong> zu gew\u00e4hrleisten. Mittlerweile ist die Aktualisierung von Bibliotheken, die in einem Projekt verwendet werden, dank zahlreicher Paketverwaltungsdienste wie npm leicht zu automatisieren. Mithilfe von npm kann ein Entwickler einen einzigen Befehl ausf\u00fchren, um alle in seinem Projekt verwendeten Drittanbieter-Module zu aktualisieren.<\/p>\n<p>Selbst wenn die Entwickler einen Blick auf die aktualisierten Bibliotheken geworfen h\u00e4tten, w\u00e4re der Schadcode schwer zu finden gewesen. Bibliotheken, die in einem Projekt verwendet werden, k\u00f6nnen von anderen Bibliotheken abh\u00e4ngen (so wie im Fall von event-stream und flatmap-stream), und die \u00dcberpr\u00fcfung aller Abh\u00e4ngigkeiten kann viel Zeit in Anspruch nehmen. In diesem speziellen Fall wurde der Prozess zus\u00e4tzlich dadurch erschwert, dass das Flatmap-Stream-Modul verschl\u00fcsselt wurde.<\/p>\n<p>Der Newssite <a href=\"https:\/\/www.ccn.com\/breaking-numerous-bitcoin-wallets-may-have-been-compromised-by-rogue-developer\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CCN<\/a> zufolge wurde die Bibliothek <em>flatmap-stream<\/em> modifiziert, um den Anwendungen, die auf den Bibliotheken <em>event-stream<\/em> und <em>copay-bash\u00a0<\/em>basieren, <strong>private Schl\u00fcssel<\/strong> (im Wesentlichen Krypto-Wallet-Passw\u00f6rter) zu entwenden. Aus diesem Grund liegt der Verdacht nahe, dass es sich hierbei um einen zielgerichteten Angriff auf BitPay, die Ersteller von Copay und die Autoren von <em> Copay-Dash<\/em> handelte.<\/p>\n<p><a href=\"https:\/\/arstechnica.com\/information-technology\/2018\/11\/hacker-backdoors-widely-used-open-source-software-to-steal-bitcoin\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ArsTechnica<\/a> zufolge erm\u00f6glichte die sch\u00e4dliche Nutzlast dem <strong>Cyberkriminellen<\/strong>, unbefugten Zugriff auf die Wallets der Nutzer zu erhalten und Geld von dort zu \u00fcberweisen. Der Fehler wurde von einem GitHub-Nutzer entdeckt und <a href=\"https:\/\/github.com\/dominictarr\/event-stream\/issues\/116#issuecomment-441749105\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">gemeldet<\/a>. Bis es dazu kam, wurden jedoch zahlreiche Versionen des <strong>Copay-Wallets mit sch\u00e4dlichem Code<\/strong> verteilt. BitPay r\u00e4umte die Kompromittierung schlie\u00dflich ein und riet Kunden mit den Copay-Versionen 5.0.2 bis 5.1.0, zu einem Update auf die neueste Version 5.2.0. Derzeit sind weder Informationen \u00fcber die Anzahl der betroffenen Benutzer noch \u00fcber die H\u00f6he des m\u00f6glichen Geldverlusts bekannt.<\/p>\n<p>Es handelt sich hierbei um einen klassischen Supply-Chain-Angriff, bei dem Kriminelle eine von den Entwicklern einer App verwendete Drittanbieter-Bibliothek gef\u00e4hrden. Das Problem ist hier auf die Verwendung von Open-Source-Software zur\u00fcckzuf\u00fchren, die von Unbekannten betreut und verwaltet wird. Es gibt daher keine Garantie, dass neuere Versionen der Software genauso funktionieren, wie es \u00e4ltere Versionen getan haben. Den Entwicklern von Open-Source-Software kann daf\u00fcr allerdings keine Schuld gegeben werden \u2013 sie liefern ihre Produkte in der vorliegenden Form ab und \u00fcbernehmen keinerlei Garantien.<\/p>\n<p>Das Problem in diesem Fall ist, dass Copay ebenfalls Open Source ist und h\u00e4ufig von Entwicklern anderer Krypto-Wallets verwendet wird. Dieser Fall k\u00f6nnte also lediglich die Spitze des Eisbergs sein.<\/p>\n<p>Unternehmen, die mit der Bereitstellung von Software Geld verdienen (insbesondere Software, die gro\u00dfe Geldbetr\u00e4ge handelt), sollten sicherstellen, dass ihre Software vor der Ver\u00f6ffentlichung einer Sicherheits\u00fcberpr\u00fcfung unterzogen wird, einschlie\u00dflich einer sehr sorgf\u00e4ltigen Analyse jeder neuen Version aller Drittanbieter-Bibliotheken, die in den Konfigurationsdateien aufgelistet sind.<\/p>\n<p>Um <strong>Sicherheitsprobleme einer Software<\/strong> zu vermeiden, sollte man im Bestfall ein Auge auf den Status des Repositorys werfen, die Bewertungen anderer Entwickler ber\u00fccksichtigen, \u00fcberpr\u00fcfen, wie oft das Projekt aktualisiert wurde, wie lange dieses Update her ist und das Fehlerprotokoll durchst\u00f6bern. Auff\u00e4lligkeiten oder Besonderheiten k\u00f6nnen unter gewissen Umst\u00e4nden eine intensivere Untersuchung oder sogar einen Modulwechsel erfordern.<\/p>\n<p>Wenn bei einer solchen Bibliothek etwas schief geht, beschuldigen Kunden das Unternehmen, das die Software, die auf die Bibliothek zur\u00fcckgreift, zur Verf\u00fcgung gestellt hat; auch wenn das Unternehmen hier gar keine Schuld tr\u00e4gt, sondern vielmehr die Entwickler der Bibliothek. Nat\u00fcrlich m\u00f6chten wir nicht von der Verwendung von Open-Source-Produkten abraten, sondern lediglich darauf hinweisen, dass Sie bei ihrem Gebrauch Ohren und Augen stets offen halten sollten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein Supply-Chain-Angriff auf Copay-Krypto-Wallets via Open-Source-Bibliothek erm\u00f6glicht Bitcoin-Diebstahl.<\/p>\n","protected":false},"author":675,"featured_media":18177,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1848,3108],"tags":[872,3160,2632,3161,2967],"class_list":{"0":"post-18176","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-business","8":"category-smb","9":"tag-bitcoin","10":"tag-copay","11":"tag-kryptowahrung","12":"tag-open-source","13":"tag-supply-chain"},"hreflang":[{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/copay-supply-chain-attack\/18176\/"},{"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-mx","url":"https:\/\/latam.kaspersky.com\/blog\/copay-supply-chain-attack\/13824\/"},{"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":"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:\/\/www.kaspersky.de\/blog\/tag\/supply-chain\/","name":"Supply Chain"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/posts\/18176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/users\/675"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/comments?post=18176"}],"version-history":[{"count":6,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/posts\/18176\/revisions"}],"predecessor-version":[{"id":20946,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/posts\/18176\/revisions\/20946"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/media\/18177"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/media?parent=18176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/categories?post=18176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/tags?post=18176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}