Zum Inhalt

47-Tage-Zertifikate sind im Anmarsch. Sind Sie bereit?

Jetzt handeln →

Stärkung der Softwaresicherheit durch Code Signing

Trust Store und Probleme

Die Codesignierung ist ein entscheidender Mechanismus, um Authentizität und Vertrauen zu gewährleisten und sicherzustellen, dass Software während der Verteilung nicht manipuliert wird. Unsachgemäße Codesignierungspraktiken können jedoch erhebliche Risiken bergen. In diesem Blogbeitrag beleuchten wir die Bedeutung der Codesignierung und gehen auf die potenziellen Folgen eines kompromittierten Codesignierungsprozesses ein.

Die Stärkung der Softwaresicherheit durch Codesignierung lässt sich kurz zusammenfassen: Die immer wiederkehrenden Vorfälle (NotPetya, ShadowPad, ASUS, CCleaner) haben alle eine gemeinsame Ursache – eine kompromittierte Version oder ein kompromittierter Schlüssel, der zu einer legitimen Signatur auf Schadcode führte. HSM-gestützte Schlüsselverwaltung, zentralisiertes Schlüsselmanagement und obligatorische Vorabprüfungen vor der Signierung verhindern ein erneutes Auftreten solcher Vorfälle – nicht etwa allgemeines Bewusstsein.

Wichtige Erkenntnisse

  • NotPetya (verbreitet ĂĽber MeDoc) und ShadowPad (verbreitet ĂĽber NetSarangs Xmanager/Xshell) sind zwei unterschiedliche Lieferkettenangriffe aus dem Jahr 2017; beide kompromittierten einen Build-Prozess, um Malware ĂĽber ein legitim signiertes Update zu verbreiten, zielten aber auf unterschiedliche Unternehmen und Software ab.
  • Die vollständige Vorgehensweise bei einem vermuteten aktiven Sicherheitsvorfall, einschlieĂźlich Bedrohungsmodell, Eindämmung, Widerruf und Wiederherstellung, finden Sie hier: Stärkung der Sicherheit bei der Codesignierung gegen IntegritätslĂĽcken.

Die verheerenden Auswirkungen eines Code-Signing-Fehlers

Nachfolgend sind einige bemerkenswerte Angriffe aufgefĂĽhrt, die aufgrund von Kompromittierung oder Fehlern bei der Codesignierung auftraten:

  1. NotPetya-Angriff

    Im Juni 2017 wurde der globale Schifffahrtskonzern AP Moller-Maersk Opfer des Malware-Angriffs NotPetya. Der Angriff ging von dem kleinen ukrainischen Softwareunternehmen MEDoc aus, das Opfer staatlich geförderter Hacker geworden war. Die Hacker nutzten Schwachstellen in der Sicherheitsinfrastruktur des Unternehmens aus und erlangten so Zugriff auf die Codesignaturschlüssel. Dadurch konnten sie Schadsoftware in ein legitimes Software-Update einschleusen. Dieses manipulierte Update wurde anschließend an Kunden, darunter auch AP Moller-Maersk, verteilt, was zu einer weitverbreiteten Infektion und erheblichen Störungen führte.

  2. ShadowPad-Lieferkettenangriff

    Im Jahr 2017 wurde der Build-Server von NetSarang, einem Entwickler von Serververwaltungssoftware wie Xmanager und Xshell, durch einen separaten Lieferkettenangriff kompromittiert. Die Angreifer schleusten eine Hintertür, später ShadowPad genannt, in ein legitimes Software-Update ein, das NetSarang anschließend digital signierte und an Kunden verteilte, die nichts von der Manipulation ahnten. Dieser im August 2017 entdeckte Vorfall zielte auf ein völlig anderes Unternehmen und Produkt als der oben beschriebene NotPetya/MeDoc-Angriff, obwohl beide dem gleichen Muster folgten: Kompromittierung des Builds, anschließende Legitimierung der Schadsoftware durch den normalen Signaturprozess.

  3. ASUS Live Update Hack

    Im Jahr 2019 drangen Hacker in den Web-Update-Server von ASUS ein und schleusten Schadsoftware in legitime ASUS-Treiberupdates ein. Die kompromittierten Codesignaturschlüssel ermöglichten es den schädlichen Updates, als authentisch zu erscheinen, wodurch über eine Million ASUS-Computer infiziert wurden. Dieser Angriff verdeutlichte die Anfälligkeit von Software-Lieferketten und die Bedeutung robuster Codesignaturverfahren.

  4. CCleaner-HintertĂĽr

    Im Jahr 2017 wurde das beliebte Systemoptimierungstool CCleaner kompromittiert, als Hacker Schadsoftware in eines der offiziellen Software-Updates einschleusten. Die Angreifer signierten das manipulierte Update mit einem gültigen Codesignaturzertifikat und täuschten so die Nutzer, indem sie es für ein legitimes Update hielten. Der Vorfall betraf Millionen von Nutzern und unterstrich die Bedeutung der Integrität von Codesignaturen.

Diese Angriffe verdeutlichen eindrücklich, welch entscheidende Rolle die Codesignierung bei der Gewährleistung der Vertrauenswürdigkeit und Authentizität der Software spielt.

Enterprise Code-Signing-Lösung

Holen Sie sich mit unserer Code-Signing-Lösung eine Lösung für alle Ihre kryptografischen Software-Code-Signing-Anforderungen.

Bewertung des Vertrauens in Software und ĂśberprĂĽfungsprozesse

Angesichts solcher Vorfälle ist es wichtig, das Vertrauen in die von uns installierte und genutzte Software zu hinterfragen. Unternehmen sind für ihren täglichen Betrieb auf zahlreiche externe Softwarepakete angewiesen. Das Fehlen strenger Prüfprozesse für diese Softwarepakete kann jedoch erhebliche Risiken bergen. Um die Softwaresicherheit zu erhöhen, sollten Sie folgende Maßnahmen in Betracht ziehen:

  1. ĂśberprĂĽfung und Whitelisting

    Implementieren Sie einen robusten Prozess zur Prüfung und Genehmigung von Software, bevor Sie Benutzern die Installation erlauben. Erwägen Sie die Erstellung einer Whitelist vertrauenswürdiger Software und beschränken Sie die Installation auf die genehmigten Anwendungen.

  2. Interne Softwareproduktion

    Erkennen Sie die Bedeutung der Sicherheit Ihrer Unternehmenssoftware. Behandeln Sie Ihre privaten Codesignaturschlüssel wie den Schlüssel zu Ihrem Unternehmen. Implementieren Sie strenge Zugriffskontrollen, Verschlüsselung und Überwachungsmechanismen, um diese Schlüssel vor Diebstahl oder Missbrauch zu schützen. Erwägen Sie den Einsatz von Hardware-Sicherheitsmodulen (HSMs) zur Speicherung und zum Schutz Ihrer Codesignaturschlüssel, da diese ein hohes Maß an Sicherheit und Manipulationsresistenz bieten.

  3. Integrität der Lieferkette

    Stellen Sie sicher, dass die von externen Quellen bezogene Software gründlichen Sicherheitsprüfungen unterzogen wird. Implementieren Sie Mechanismen, um die Integrität und Authentizität von Software-Updates vor der Installation zu überprüfen.

Das Code Signing-Problem verstehen

Die Wirksamkeit von Code Signing zum Schutz von Software-Lieferketten wurde in den letzten drei Jahrzehnten bewiesen. Allerdings schränken bestimmte Herausforderungen die Effektivität ein. Unternehmen haben oft Schwierigkeiten, private Code Signing-Schlüssel effektiv zu verwalten, was zu Sicherheitslücken und potenziellen Gefährdungen führt. Sehen wir uns einige häufige Probleme an:

  1. Fehlende zentrale SchlĂĽsselverwaltung

    Viele globale Organisationen verfügen über geografisch verteilte Teams von Softwareentwicklern. Diese Teams benötigen Zugriff auf private Codesignaturschlüssel, um ihre Software zu signieren. Werden diese Schlüssel jedoch auf den Laptops der Entwickler, Build-Servern oder Web-Update-Servern gespeichert, sind sie anfällig für Diebstahl oder Missbrauch.

  2. Unkenntnis der SchlĂĽsselbedeutung

    Private Codesignaturschlüssel sollten als die Hauptschlüssel Ihres Unternehmens behandelt werden. Leider unterschätzen Unternehmen oft deren Bedeutung und versäumen es, angemessene Sicherheitsmaßnahmen zu deren Schutz zu implementieren.

  3. Unzureichende Sicherheitspraktiken

    Unzureichende Sicherheitspraktiken, wie etwa schwaches Passwortmanagement, fehlende Verschlüsselung und unzureichende Zugriffskontrollen, tragen zusätzlich zu Schwachstellen in der Codesignatur bei.

Enterprise Code-Signing-Lösung

Holen Sie sich mit unserer Code-Signing-Lösung eine Lösung für alle Ihre kryptografischen Software-Code-Signing-Anforderungen.

Best Practices fĂĽr robuste Code-Signierung

Um die Sicherheit und Integrität Ihrer Software-Infrastruktur zu verbessern, ist die Implementierung von Best Practices für die Code-Signierung unerlässlich. Beachten Sie die folgenden Empfehlungen:

  1. Implementieren Sie Hardware-Sicherheitsmodule (HSMs)

    HSMs bieten eine dedizierte und sichere Umgebung für die Schlüsselspeicherung und kryptografische Operationen. Durch den Einsatz von HSMs können Unternehmen ihre privaten Schlüssel vor physischen und logischen Angriffen schützen und so die Integrität des Codesignierungsprozesses gewährleisten.

  2. Schlüssel regelmäßig rotieren

    Um die Auswirkungen potenzieller Schlüsselkompromittierungen zu minimieren, sollten Codesignaturschlüssel regelmäßig rotiert werden. Durch die regelmäßige Aktualisierung der Schlüssel minimieren Unternehmen das Risiko unautorisierten Zugriffs und gewährleisten die Vertrauenswürdigkeit ihrer signierten Software.

  3. Setzen Sie Richtlinien und Verfahren zur Code-Signierung ein

    Entwickeln Sie umfassende Richtlinien und Verfahren für die Codesignierung , die Rollen, Verantwortlichkeiten und Arbeitsabläufe für den Codesignierungsprozess definieren. Stellen Sie sicher, dass die Mitarbeiter angemessen geschult werden und diese Richtlinien einhalten, um eine sichere Codesignierungsumgebung zu gewährleisten.

  4. Kontinuierliche Ăśberwachung und PrĂĽfung

    Implementieren Sie einen robusten Überwachungs- und Prüfmechanismus, um verdächtige Aktivitäten im Zusammenhang mit der Codesignierung zu erkennen und zu untersuchen. Überprüfen Sie regelmäßig Protokolle und führen Sie Audits durch, um potenzielle Sicherheitslücken zu identifizieren und umgehend Korrekturmaßnahmen zu ergreifen.

  5. Nach Viren suchen

    Obwohl die Codesignierung Authentifizierung bietet, garantiert sie nicht die Sicherheit des Codes selbst. Daher wird dringend empfohlen, vor der Veröffentlichung und der Signierung mit digitalen Zertifikaten gründliche Viren- und Malware-Scans des Codes durchzuführen . Diese Scans verbessern die Gesamtqualität des Codes und helfen, potenzielle Sicherheitsrisiken zu erkennen und zu minimieren.

Möchten Sie wissen, wie wir Ihnen helfen können?

CodeSign Secure von Encryption Consulting bietet Unternehmen eine umfassende Codesignatur-Lösung, die auf ihre individuellen Anforderungen zugeschnitten ist. Mit dieser Lösung können Unternehmen eine starke Codesignatur-Richtlinie etablieren, die Sicherheitsrisiken effektiv minimiert und die Authentizität ihrer Software gewährleistet. Unser Produkt optimiert den Codesignatur-Prozess und bietet eine Reihe von Funktionen zur Erhöhung der Sicherheit.

Ein zentrales Merkmal von CodeSign Secure ist die sichere Schlüsselverwaltung . Es ermöglicht Unternehmen, die privaten Schlüssel ihres Codesignaturzertifikats sicher zu speichern, indem es sich in branchenführende, FIPS- zertifizierte Hardware-Sicherheitsmodule (HSMs) integriert. Diese Integration eliminiert die potenziellen Risiken gestohlener, beschädigter oder missbrauchter Schlüssel, da die privaten Schlüssel während des Codesignaturvorgangs das HSM niemals verlassen.

Fazit

Code Signing ist ein entscheidender Faktor für die Gewährleistung von Softwareauthentizität und Vertrauenswürdigkeit. Die potenziellen Folgen eines kompromittierten Code Signing-Prozesses sind jedoch schwerwiegend, wie namhafte Angriffe wie der NotPetya-Malware-Angriff auf AP Moller-Maersk und andere Vorfälle zeigen. Zum Schutz Ihrer Software-Infrastruktur ist es unerlässlich, robuste Code Signing-Praktiken zu implementieren und der Sicherheit privater Code Signing-Schlüssel Priorität einzuräumen. Unternehmen können die mit Code Signing-Fehlern verbundenen Risiken durch die Einhaltung bewährter Methoden wie HSM-Nutzung, regelmäßige Schlüsselrotation, strenge Code Signing-Richtlinien, kontinuierliche Überwachung und Virenscans minimieren.

Häufig gestellte Fragen

Waren NotPetya und ShadowPad derselbe Angriff?

Nein. NotPetya wurde ĂĽber ein manipuliertes Update der ukrainischen Buchhaltungssoftware MEDoc verbreitet. ShadowPad war ein separater Vorfall, der ĂĽber eine manipulierte Version der Serververwaltungstools Xmanager und Xshell von NetSarang verbreitet wurde. Beide Angriffe folgten dem gleichen Muster: Kompromittierung und anschlieĂźende Signierung. Es handelt sich jedoch um unterschiedliche Angriffe auf verschiedene Unternehmen.

Welche MaĂźnahme ist am wirksamsten gegen dieses Angriffsmuster?

Die SchlĂĽsselverwaltung mittels HSM in Kombination mit Malware-Scans vor der Signierung ist nicht ausreichend. HSM-Speicherung schĂĽtzt den SchlĂĽssel zwar vor Diebstahl, erkennt aber keinen bereits im Build enthaltenen Schadcode; Scans erkennen Schadcode, schĂĽtzen aber keinen offengelegten SchlĂĽssel.