Code Signing

Code Signing-Maschinenidentitäten sind heiße Ware im Darknet

Code Signing-Maschinenidentitäten sind heiße Ware im Darknet

Von Kevin Bocek, Vice President of Threat Intelligence and Business Development bei Venafi

Code Signing-Zertifikate sind ein wesentlicher Bestandteil unserer Software-Welt. Jede Softwareaktualisierung wird mit einer eindeutigen Maschinenidentität signiert, wobei ein Zeitstempel mit einem Verschlüsselungsalgorithmus in Form eines x.509-Zertifikats kombiniert wird, das von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde.

Kevin Bocek, VP Security Strategy und Threat Intelligence bei Venafi

So können andere Maschinen wissen, dass sie authentisch sind und man ihnen vertrauen kann. Entwickler signieren ihren Code mit einem privaten Schlüssel, und ein Endbenutzer verwendet den öffentlichen Schlüssel dieses Entwicklers, um zu überprüfen, ob der Code seit der Unterzeichnung durch den Entwickler nicht geändert wurde. Wenn jemand den Code geändert hat, gibt die Signatur eine nicht vertrauenswürdige Warnung aus, ähnlich wie eine Website mit einem nicht vertrauenswürdigen oder abgelaufenen Zertifikat bei TLS-Maschinenidentitäten (Transport Layer Security). Ohne dieses Identitätssystem wäre es unmöglich, Software auszuliefern. Ohne dieses System könnte man weder PC noch Smartphone benutzen, geschweige denn mit einem modernen Flugzeug fliegen. Und in der Cloud-nativen Welt von Kubernetes wird es bald genauso sein.

Diese Identitäten sind nicht nur unverzichtbar, sondern haben auch eine privilegierte Stellung mit höchster Authentifizierungs- und Vertrauenswürdigkeit, was sie zu einer begehrten Ware für böswillige Personen macht, die Systeme infiltrieren wollen. In den letzten Jahren haben wir gesehen, wie dieses Identitätssystem unter Beschuss geraten ist. Unsere Nachforschungen haben ergeben, dass sich im Dark Web immer mehr Menschen mit Code-Signing-Maschinenidentitäten beschäftigen, und eine Reihe von Angriffen in jüngster Zeit hat dazu beigetragen – es scheint, dass Code-Signing-Maschinenidentitäten das nächste große Ding sind.

Wie Code-Signing Maschinenidentitäten im Darknet gehandelt werden

Die Ergebnisse einer Untersuchung, die wir kürzlich zusammen mit dem Dark-Web-Ermittler Forensic Pathways in Auftrag gegeben haben, zeigen, dass Code-Signing-Zertifikate ein heißes Thema unter Bedrohungsakteuren sind. Wir sahen Beiträge, in denen Code-Signing-Zertifikate für nur 100 US-Dollar beworben wurden – ein Preisrückgang gegenüber dem Zeitpunkt, als wir dieses Thema zum ersten Mal untersuchten und Code-Signing-Maschinenidentitäten im Jahr 2017 für 1.200 US-Dollar zum Verkauf fanden. Außerdem gab es zahlreiche Anfragen dazu, wie man an sie herankommt, und Diskussionen darüber, wie man sie verwendet. Die Ergebnisse dieser Untersuchung sind eindeutig: Cyberkriminelle sind auf der Jagd nach Code Signing-Zertifikaten und wissen, wie sie diese ausnutzen können.

Wenn ein Code Signing-Zertifikat kompromittiert wird, kann der daraus resultierende Schaden für Unternehmen groß sein. Ein Hacker kann ein Zertifikat verwenden, um bösartigen Code zu signieren, Sicherheitstools zu täuschen und seine Malware als legitime Software auszugeben. Nehmen Sie zum Beispiel den jüngsten Nvidia Lapsus$-Angriff . Hacker nutzten ein altes, gestohlenes Zertifikat, um zwei Binärdateien zu signieren und PCs zu infizieren, was zum Diebstahl von 1 TB an Daten führte. Das durchgesickerte Zertifikat war 2014 abgelaufen, aber das spielte keine Rolle, da das Windows OS es Entwicklern erlaubt, veraltete Zertifikate zum Signieren von Code zu verwenden, wodurch ein Schlupfloch entsteht, das von Hackern ausgenutzt werden kann.

Ähnliche Angriffsmethoden sind zur bevorzugten Waffe von staatlich gesponserten Bedrohungsgruppen geworden. Nordkoreanische Gruppen, die Berichten zufolge jährlich bis zu 1 Milliarde US-Dollar an cyberkriminellen Gewinnen erwirtschaften, verwenden häufig Code-Signing-Zertifikate, um Cyberangriffe auszuführen. Zu Beginn dieses Jahres gab es auch Angriffe in der Ukraine , bei denen Hacker signierte Maschinenidentitäten verwendeten, um Malware in verschiedenen Organisationen zu verteilen.

Im Fall von Solarwinds gelang es staatlichen Akteuren, bösartigen Code in die Softwareentwicklungspipeline einzuschleusen, der später mit einer gültigen Code Signing Machine Identity signiert wurde, wodurch die Software weit verbreitet und vertrauenswürdig wurde. Dieser bösartige Code ermöglichte es den Akteuren, Hintertüren einzurichten, über die sie noch invasivere Malware und Spyware installieren konnten, um private Informationen zu stehlen und zu exfiltrieren. Nicht weniger als 1800 Regierungsstellen und Fortune-500-Unternehmen waren betroffen.

Wie Teams die Sicherheit von Code Signing-Zertifikaten erhöhen können

Diese groß angelegten Verstöße zeigen den enormen Schaden, der Unternehmen zugefügt werden kann, wenn Bedrohungsakteure Code-Signing-Zertifikate in die Hände bekommen, und verdeutlichen, warum Unternehmen mehr tun müssen, um diese lebenswichtigen Güter zu schützen und Missbrauch intern zu verhindern. Hier sind fünf Schritte, die Sicherheitsteams unternehmen können, um die Sicherheit ihrer Code Signing-Zertifikate zu verbessern:

1. Automatisieren Sie in Ihrer DevOps-Pipeline

Maschinen bauen jetzt Maschinen. Die moderne Softwareentwicklung läuft mit Maschinengeschwindigkeit und nutzt Automatisierungen wie GitLab, GitHub und Jenkins, um den Herstellungsprozess von Software-Builds auszuführen. Die Integration des Schutzes und der Verwendung von Code Signing in diese Pipelines ist die erste und wichtigste Anforderung. Dies schützt nicht nur die Ziele der Hacker, sondern bezieht auch die Entwickler mit ein. Andernfalls werden sie einen Weg finden, die Kontrollen zu umgehen, und die Sicherheitsteams nur als das "immer gleiche, langsame und nein" betrachten.

2. Private Schlüssel an einem verschlüsselten, sicheren und zentralen Ort aufbewahren

Ein privater Schlüssel ist nur so sicher wie die Art seiner Aufbewahrung. Viele private Schlüssel werden nicht an sicheren Orten aufbewahrt; Administratoren speichern einen Schlüssel oft in einem Dateisystem oder sogar auf ihrem Desktop. Private Code Signing-Schlüssel sollten niemals einen verschlüsselten, sicheren Ort verlassen, selbst wenn ein Entwickler für einen Code Signing-Vorgang darauf zugreift.

3. Überwachen Sie die Verwendung von privaten Schlüsseln

Teams müssen nicht nur den Zugang zu privaten Schlüsseln kontrollieren, sondern auch die Verwendung überwachen. Es ist wichtig, ein unwiderlegbares Protokoll für jeden Code Signing-Vorgang zu führen, aus dem hervorgeht, auf welches Code Signing-Tool zugegriffen wurde und von wem, welche Software damit signiert wurde und von welchem Rechner aus der Zugriff erfolgte.

4. Wenden Sie einen mehrstufigen Genehmigungsprozess an

Beim Zugriff auf die kritischsten Code Signing-Schlüssel sollten die Entwickler die Genehmigung von mindestens einer weiteren Person – idealerweise von mehreren – einholen, bevor sie diese verwenden dürfen.

5. Definieren Sie eine Zugriffsrichtlinie und setzen Sie sie durch

Um den Missbrauch weiter einzuschränken, benötigen Teams strenge Code-Signierungsrichtlinien und Arbeitsabläufe, die auf kontrollierten Parametern basieren. In einer Richtlinie könnte festgelegt werden, wer auf welche Code Signing-Schlüssel zugreifen darf, oder dass Entwickler nur von zugelassenen Computern aus und zu einer bestimmten Tageszeit auf die Schlüssel zugreifen können.

6. Private Schlüssel rotieren

Teams können eine zusätzliche Sicherheitsebene hinzufügen, indem sie private Schlüssel rotieren. Dadurch wird sichergestellt, dass der alte Schlüssel keinen Zugriff mehr bietet oder es einem Bedrohungsakteur ermöglicht, zu "signieren", wenn ein Code Signing-Zertifikat kompromittiert wurde. Das Rotieren von Schlüsseln kann ein mühsamer Prozess sein, besonders für große Organisationen, aber mit der richtigen Software muss das nicht sein.

Fazit

Es besteht kein Zweifel daran, dass Code-Signing-Maschinenidentitäten für Softwareentwickler unverzichtbare Werkzeuge sind. Angesichts der Tatsache, dass gestohlene Zertifikate für Cyberkriminelle wie Goldstaub sind und schlecht verwaltete Zertifikate große Schwachstellen für Unternehmen schaffen, werden die Bedrohungsakteure aufmerksam und ihre Präsenz im Dark Web nimmt zu. Ohne klar definierte und rigoros durchgesetzte Richtlinien und Arbeitsabläufe von Sicherheitsteams bleiben Unternehmen anfällig für Angriffe. Eine Steuerungsebene, die die Automatisierung des Identitätsmanagements von Code-Signiermaschinen ermöglicht, ist für den Schutz dieser wertvollen Ressourcen unerlässlich. Die Branche muss jetzt handeln.