Malware in 725 Ruby-Bibliotheken gefunden

Sicherheitsforscher von  ReversingLabs haben laut eigener Aussage in 725 Ruby-Bibliotheken, die in das offizielle RubyGems-Repository hochgeladen wurden,  Malware gefunden. Diese enthielt Funktionen, um die Zwischenablagen der Benutzer zu kapern.


Anzeige

Tomislav Maljic, Threat Analyst bei ReversingLabs, hat die Details in diesem Blog-Beitrag offen gelegt. Die schädlichen Bibliotheken fanden sich im offiziellen RubyGems-Repository. RubyGems ist ein Paketmanager für die Programmiersprache Ruby. Laut ihrer eigenen Website-Statistik enthält das Repository etwa 158 Tausend Pakete (Germs genannt) mit fast 49 Milliarden Gesamtdownloads. Im Allgemeinen ist eine Gem-Datei ein Tape ARchive (TAR) mit der folgenden Grundstruktur:

RubyGems-Paketstruktur
(Quelle: ReversingLabs)

Das bin-Verzeichnis enthält gem-Binärdateien (falls vorhanden), das lib-Verzeichnis enthält den Code für das gem, und das Testverzeichnis enthält Tests. Rakefile wird von Rake, einem Make-ähnlichen, in Ruby implementierten Programm, verwendet, um Tests zu automatisieren und Code zu generieren. Die Gemspec-Datei enthält grundlegende Metadaten über das Gem (wie Autor, Version, Beschreibung), aber sie kann auch zusätzliche Informationen über Erweiterungen enthalten, die etwas später nützlich sein werden.

Das Sicherheitsteam bei ReversingLabs hat sich darauf spezialisiert, große Repositories zu analysieren. Dazu teilen die Sicherheitsforscher die in einem Repository gefunden Dateien in Kategorien auf. Bei dieser Untersuchung sind auch PE-Dateien im Repository gefunden und dann einer näheren Inspektion unterzogen worden.


Anzeige

Infektion im Februar 2020

Die bösartigen Pakete wurden zwischen dem 16. und 25. Februar von zwei Konten mit den Namen JimCarrey und PeterGibbons auf RubyGems hochgeladen. Die 725 Bibliotheken (hier vollständig aufgelistet), wurden zwei Tage später, am 27. Februar 2020, aus dem Repository entfernt, nachdem das ReversingLabs-Team das RubyGems-Sicherheitsteam benachrichtigt hatte.

Alle Ruby-Bibliotheken waren Kopien von legitimen Bibliotheken. Es wurden ähnliche Namen benutzt, und die Bibliotheken funktionierten wie beabsichtigt. Allerdings enthielten die Bibliotheken zusätzliche bösartige Dateien. Hierbei wurde in jedes Paket eine Datei aaa.png eingefügt. ReversingLabs schreibt, dass es sich bei dieser Datei nicht um ein PNG-Bild, sondern um eine ausführbare Windows PE-Datei handelte.

Infektionskette in RubyGems
(Quelle: ReversingLabs)

ZDnet hat hier eine Beschreibung der Infektionskette zusammen getragen (siehe obige Abbildung): In der PE-Datei wurde ein Ruby-Script namens aaa.rb abgelegt, das den Ruby-Interpreter und alle zur Ausführung erforderlichen Abhängigkeiten enthält. Das Ruby-Skript startet dann ein Visual Basic-Script namens oh.vbs, das sich in einen Autorun-Registrierungsschlüssel einträgt und damit bei jedem Windows-Start oder Nutzerlogin ausgeführt wird.

Der Autorun-Schlüssel führte bei jedem Windows-Start ein zweites Visual Basic-Skript aus, welches die Zwischenablage ausliest. Dort wird nach Textmustern gesucht, die wie Krypto-Währungsadressen aussehen. Diese Texte werden durch die Adresse des Angreifers ersetzt. Idee war es, Bitcoin-Guthaben umzuleiten.

Laut ReversingLabs wurden die Bibliotheken von Tausenden von Benutzern heruntergeladen. Aus einer Bitcoin-Adresse, die von Forschern in ihrem Bericht genannt wird, geht jedoch hervor, dass die Angreifer während ihres jüngsten Angriffs nicht in der Lage waren, Zahlungen zu kapern. Offenbar hatte keiner der Ruby-Entwickler entsprechende Bitcoin-Strings in seinen Systemen in Bearbeitung. The Hackers News hat hier einen weiteren Artikel zum Thema.


Anzeige

Dieser Beitrag wurde unter Sicherheit abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Eine Antwort zu Malware in 725 Ruby-Bibliotheken gefunden

  1. Gaga sagt:

    Es ist schon traurig zu sehen wie verseucht die IT Welt ist, und wie machtlos man dem teilweise gegenüber steht. Greift man auf eine solche Bibliothek zurück (in gut Glauben), hat man u.U. die sprichwörtliche Kacke am dampfen. Der Schaden, der für Kunden und Entwicker ggf. enstehen könnte ist kaum auszudenken. Selbst verwende ich auch gelegentlich "fremde" Bibliotheken und erspare mir so viel Arbeit. Und leider muss man sich dann (sofern der Code nicht verfügbar) auf den Hersteller verlassen. Immer ein schwiriges Thema…
    Auf Komponenten als Freeware, ohne Zugriff auf den Code zu haben, traue ich mich schon lange nicht mehr zurück zu greifen. Da zahle ich lieber und beziehe Tools aus offiziellen und kommerziellen Quellen. Wobei, das ist auch nicht immer ein Garant für Funktionalität, Stabilität und Kompatiblität… Und was wirklich drin steckt zeigt manchmal erst die Praxis nach dem Kauf.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.