Zephyrnet-Logo

Diese Woche in Sicherheit: Forksquatting, RustDesk und M&Ms

Datum:

Github hat Mühe, mitzuhalten eine Malware-Kampagne, die eine neue Variante des Typosquatting darstellt. Das Spiel ist unkompliziert: Klonen Sie beliebte Repositories, fügen Sie Malware hinzu und bewerben Sie die Forks als Original. Einige Entwickler verwechseln die Forks mit echten Projekten und führen unbeabsichtigt die Malware aus. Die offensichtliche Namenswahl ist Forksquatting, aber die Forscher von apiiro wählten den sichereren Namen „Repo Confusion“.

Die Kampagne ist automatisiert und GitHub ist sich dessen bewusst, da die überwiegende Mehrheit dieser bösartigen Repositories sofort entfernt wird. Aus irgendeinem Grund fängt der GitHub-Algorithmus nicht alle neuen Repos ab. Die aktuelle Kampagne scheint Millionen von Forks zu veröffentlichen und dabei Code aus über 100,000 legitimen Projekten zu verwenden. Es scheint, als ob die Hausbesetzer-Familie von Dauer sein wird.

RustDesk und Odd-Zertifikate

Die Fernzugriffssoftware RustDesk ist interessant, da sie Open Source ist, Selbsthosting ermöglicht und in Rust geschrieben ist. Ich habe RustDesk schon seit langem als To-Do-Item erkundet, aber ein bisschen besorgniserregendes Drama hat sich gerade erst abgespielt. Ein Nutzer wies bereits im November darauf hin Im Rahmen der RustDesk-Installation wurde ein Test-Root-Zertifikat installiert. Dieses Root-Zertifikat ist mit SHA1 selbstsigniert. Es besteht auch die Sorge, dass die RustDesk-Binärdateien mit einem anderen Zertifikat signiert sind.

Seitdem gab es neue Veranstaltungen. Erstens gab es ein Hacker-News-Thread über das Problem Anfang dieses Monats. Am nächsten Tag, CVE-2024-25140 wurde beim NIST registriert und erreichte einen wahnsinnigen CVE-Wert von 9.8 CVSS. Lassen Sie uns etwas FUD durchgehen und darüber sprechen, was wirklich vor sich geht.

Erstens sollten Stammzertifikate mit einer sichereren Hashing-Funktion als SHA1 signiert werden. Aber nicht aus dem Grund, den Sie denken, und in diesem Fall spielt es keine Rolle. Stammzertifikate sind per Definition selbstsigniert und der einzige Grund, warum sie überhaupt signiert sind, besteht darin, dass diese Zertifikate signiert sein müssen, um gültig zu sein. Untergeordnete Zertifikate werden nicht durch die Signatur des Roots geschützt. Die wichtige Funktion, die von dieser Root-Signatur abhängt, ist die Möglichkeit, eine Sperranforderung zu stellen. Das wäre für eines der weithin vertrauenswürdigen Stammzertifikate wirklich schlecht und für ein nicht vertrauenswürdiges Zertifikat wie dieses überhaupt kein Problem.

Als nächstes verfügt RustDesk über ein gültiges, signiertes Zertifikat für die ausführbaren Dateien. Das selbstsignierte Stammzertifikat dient ausschließlich der Signierung eines Kernel-Treibers, für den ein EV-Zertifikat (Extended Validation) erforderlich ist. Es ist etwas beunruhigend, dass diese Anforderung so einfach umgangen werden kann, indem bei der Anwendungsinstallation ein Root-Zertifikat installiert wird, aber das gilt für Microsoft und nicht für RustDesk.

Die letzte Sorge besteht hier darin, dass dieses Zertifikat als systemweite Zertifizierungsstelle (CA) installiert wird. Das ist das Besorgniserregendste an dieser Geschichte, aber Zertifikate verfügen über ein Feld, das ihre Schlüsselverwendung (KU) und ihre erweiterte Schlüsselverwendung (EKU) angibt. Die RustDesk-Zertifizierungsstelle dient ausschließlich der Codesignatur. Dies erlaubt weder RustDesk noch jemandem, der im Besitz dieses Schlüssels ist, TLS zu knacken oder Websites zu fälschen. Es erlaubt zwar das Signieren von Code, was ein berechtigtes Anliegen sein könnte, aber es ist nicht die heikle Situation, die es zunächst scheint.

RustDesk hat diesen Schlüssel aus seiner Installation entfernt, wodurch der virtuelle Anzeigetreiber deaktiviert wird. Das war die Funktionalität, die einen signierten Kernel-Treiber erforderte. Die neuesten Nachrichten besagen, dass die RustDesk-Entwickler Unterstützung erhalten und ein EV-Codesignatur-Zertifikat anstreben. Sie gehen davon aus, dass dieser Prozess in etwa einem Monat abgeschlossen sein wird. Und dieser CVE mit einem Schweregrad von 9.8? Scheint völliger Blödsinn.

Ultimative SQL-Injection für Mitglieder

Das Ultimate Member WordPress-Plugin wurde auf Version 2.8.3 aktualisiert. Behebung eines SQL-Injection-Fehlers das war als nicht authentifizierter Benutzer zugänglich. Basierend auf dem Update-Diff, das Hauptproblem ist wahrscheinlich ein Fehlschlag prepare() in Zeile 704. Oh, und es wird offenbar in freier Wildbahn untersucht und möglicherweise ausgenutzt, also patchen Sie es.

Dies ist wahrscheinlich ein guter Zeitpunkt, um sich darüber zu unterhalten, warum es in WordPress so viele SQL-Injection-Angriffe gibt. Erstens handelt es sich bei der SQL-Injection um die Interpretation der vom Benutzer bereitgestellten Daten als Teil des auszuführenden SQL-Befehls. Dies geschieht durch die Einfügung eines unerwarteten Charakters. Ein Semikolon kennzeichnet beispielsweise das Ende einer Anweisung und kann zum Beginn der nächsten verwendet werden. Wenn also ein naives Programm eine Zahl erwartet, eine Eingabe von 15; DROP TABLE Students erfüllt eine SQL-Anweisung und fügt eine zweite Anweisung ein, die in der Datenbank ausgeführt wird.

Im Großen und Ganzen gibt es zwei Ansätze, um SQL-Injection zu verhindern: Eingabebereinigung und vorbereitete Anweisungen. Und beides ist auch gut! Bereinigen Sie zunächst die Benutzereingaben. Stellen Sie sicher, dass die Ganzzahl tatsächlich eine Ganzzahl und nur eine Ganzzahl ist. Entfernen Sie Anführungszeichen, Semikolons und andere potenziell gefährliche Zeichen.

Der zweite Ansatz besteht darin, vorbereitete Anweisungen zu verwenden. Dadurch wird der SQL-Befehl grundlegend von den Daten getrennt. Es ist so etwas wie $database->prepare("INSERT INTO Students (name, age) VALUES (?, ?)"); um die SQL-Befehle zu senden. Dann folgt es $database->bind_param("si", $name, $age); um die zu verwendenden Werte festzulegen. Und schließlich a $database->execute(); führt die Abfrage tatsächlich aus. Aufgrund der strikten Trennung zwischen Code und Werten ist keine Injektion möglich.

Jetzt kommen wir zu WordPress, das ein eigenes hat wpdb Klasse für Datenbankaufrufe. Dazu gehört eine hilfreiche Funktion, wpdb::prepare() Das sieht fast wie eine vorbereitete Aussage aus, wie oben gezeigt.

$wpdb->prepare( "u.user_registered BETWEEN %s AND %s", $from_date, $to_date );

Außer, dass es das überhaupt nicht ist. Der prepare() Die Funktion führt ausschließlich einen Desinfektionsdurchlauf durch und einen sprintf() Wertersatz. Der prepare() Die Funktion erzeugt nicht tatsächlich eine vorbereitete Datenbankanweisung. WordPress bietet keine Möglichkeit, vorbereitete Anweisungen tatsächlich zu verwenden. Eines der grundlegenden Paradigmen, um Entwickler vor Ärger mit SQL-Injections zu bewahren, fehlt.

Die M&Ms schauen zu

Ich habe so etwas wie ein Hobby. Es macht mir Spaß, sich schlecht benehmende Maschinen zu erkennen und herauszufinden, welches Betriebssystem unter der glänzenden Benutzeroberfläche läuft. Das seltsamste eingebettete Gerät, das ich gefunden habe, ist ein Seitenscanner, auf dem eine Vollversion von Windows ausgeführt wurde. Die Preisscanner in Ihrem örtlichen Großmarkt laufen möglicherweise nur mit Windows CE. In den Infotainment-Zentren für die Rückenlehnen von Flugzeugen läuft ein wirklich altes Linux. Und offenbar laufen die M&M-Automaten an der University of Waterloo Windows mit der Anwendung Invenda.Vending.FacialRecognition.App.exe.

Wir wissen das, weil [SquidKid47] eine unbekannte Software-Ausnahme auf dem Bildschirm des Verkaufsautomaten entdeckt und diese auf reddit geteilt hat. A Die Schülerzeitung griff die Geschichte auf (pdf) und stellte fest, dass der Verkaufsautomat eine Kamera und Gesichtserkennung als Kombination aus intelligentem Bewegungssensor und Demografiedetektor für gezielte Werbung verwendet. Ja, diese Verkaufsautomaten liefern gezielte Werbung. Zumindest taten sie es. Diese Verkaufsautomaten haben traf ihr Waterloo an der University of Waterloo, und die Schule beantragt nun offiziell ihre Entfernung.

Bits und Bytes

Türklingel an Pwn klingeln: Es stellt sich heraus, dass Einige intelligente Türklingeln sind nicht besonders intelligent. Es ist nicht verwunderlich, dass es einen Prozess zum Zurücksetzen einer intelligenten Türklingel gibt, um sie mit einem anderen Konto zu verknüpfen. Es ist ziemlich überraschend, dass dieser Vorgang so einfach ist, als würde man den großen Türklingelknopf acht Sekunden lang gedrückt halten. Zumindest erhält der rechtmäßige Eigentümer eine E-Mail über die Änderung.

Druckerunsicherheit ist nichts Neues, aber die Sicherheit von 3D-Druckern ist immer noch eine Nischenidee. Das könnte sich jetzt ändern das Äquivalent einer „greetings.txt“-Datei wurde gelöscht auf einer Reihe von Anycubic-Druckern. Anscheinend verwendet Anycubic einen MQTT-Server, der wirklich nicht über ausreichende Zugriffskontrollen verfügt.

Es ist wieder soweit Für GitLab wurde ein Schwachstellen-Fix veröffentlicht, und es ist Zeit für das Update. Diesmal sticht ein Cross Site Scripting (XSS)-Fehler beim Besuch der Profilseite eines Benutzers hervor. Ich überlasse es dem Leser als Übung, Beispielcode zu erstellen, der „Samy ist mein Held“ auf die Profilseite jedes Besuchers kopiert.

Und schließlich, was die Ironie betrifft, Avast wurde mit einer Geldstrafe belegt für die Verwendung eines Browser-Datenschutz-Plugins als Plattform zum Sammeln und Verkaufen von Benutzerdaten. Dies geschah von 2014 bis 2020, wobei die Jumpshot-Plattform für den tatsächlichen Verkauf von Daten genutzt wurde. Die Daten waren nominell anonymisiert, aber die Menge und Detailliertheit der verfügbaren Informationen ist etwas atemberaubend. Es ist erwähnenswert, dass Jumpshot nicht mehr existiert und Avast jetzt einem anderen Unternehmen gehört. Hoffentlich ohne das Sammeln von Benutzerinformationen.

spot_img

Neueste Intelligenz

spot_img