Unternehmen investieren enorme Summen in den Schutz der digitalen Identität und das Zugriffsmanagement ihrer Benutzer, wie etwa Benutzernamen und Passwörter. Da die globale digitale Wirtschaft auf sichere Infrastruktur und Software angewiesen ist, werden zusätzliche Ressourcen für die Verwaltung von Code-Signaturschlüsseln, Maschinenidentitäten und Zertifikaten benötigt. Die digitale Transformation hat dazu geführt, dass Unternehmen ihre Betriebsabläufe digitalisieren und ihr Softwaregeschäft ausweiten. Daher besteht die Notwendigkeit, diese kritischen Infrastrukturen mithilfe von Code-Signaturmaschinen zu schützen, was das Identitätsmanagement wichtiger denn je macht.
Wie CodeSign Secure die Codesignierung sichert, kurz gesagt: HSM-gestützte private Schlüssel, die niemals exportiert werden, Malware- und Schwachstellenscans vor der Signierung, clientseitiges Hashing, sodass vollständige Artefakte niemals das Netzwerk durchlaufen, LDAP-integrierte rollenbasierte Zugriffskontrolle und ein CLI-Tool für die Massensignierung von Pipelines mit hohem Volumen.
Wichtige Erkenntnisse
- Die Vorabprüfung vor der Signierung ist deshalb so wichtig, weil eine Signatur nur den Code ab dem Zeitpunkt der Signierung zertifiziert; sie sagt nichts darüber aus, ob der Code bereits vor dem Signierungsschritt bösartig war.
- Informationen zur zugrunde liegenden Angriffsfläche der Lieferkette, die durch diese Kontrollen abgedeckt wird, finden Sie unter Codesignierung 101: Absicherung Ihrer Software-Lieferkette.
Was ist Code Signing?
Die Codesignierung ist ein Verfahren, um eine digitale Signatur an eine digitale Datei oder Software anzufügen. Dadurch kann deren Authentizität und Integrität bei der Verwendung überprüft werden. Sie stellt sicher, dass der Empfänger den Absender oder Autor kennt und dass die Datei nach der Signierung nicht manipuliert wurde. Früher wurde Codesignierungssoftware hauptsächlich zur Überprüfung der Authentizität von ausführbaren Softwaredateien wie Software-Updates, Programmen und Shell-Skripten verwendet, um die Echtheit und Integrität dieser Endbenutzer zu gewährleisten.
Wie funktioniert Code Signing?
Wird eine gültige Maschinenidentität zum Signieren von Software verwendet – beispielsweise ein Codesignaturzertifikat und ein Verschlüsselungsschlüssel –, vertrauen Computer der Software implizit und führen sie bedingungslos aus. Die gültige Codesignatur signalisiert, dass der Code von der vertrauenswürdigen Quelle stammt, die ihn signiert hat, und nicht von Dritten manipuliert wurde.
Ist dieser Prozess kompromittiert, können Cyberkriminelle die Identitäten der Code-Signatur-Maschinen missbrauchen, um scheinbar aus Ihrem Unternehmen stammende Schadsoftware in Ihre Software einzuschleusen. Angesichts der jüngsten Flut von Angriffen auf die Software-Lieferkette, bei denen Hacker Schadsoftware einschleusen, bevor die endgültige Software signiert wird, wird Code-Signatur nun auch zum Schutz von Zwischenartefakten wie Quellcode, Build-Skripten, Softwarebibliotheken, Ausführungscontainern wie Docker und den Tools verwendet, die das Softwareteam zur Erstellung seiner Software verwendet.
Welche Auswirkungen hat die Identität der Code-Signaturmaschine auf die Sicherheit?
Bei Online-Transaktionen möchten Nutzer sichergehen, dass sie ihre Zugangsdaten beim Einloggen in ihr Bankkonto der gewünschten Bank und nicht einem Angreifer übermitteln. Ebenso wichtig ist es, dass die Softwareprogramme und Updates, die ein Nutzer herunterladen möchte, sicher sind und von vertrauenswürdigen Absendern oder Herausgebern stammen. Um dies zu gewährleisten, muss der Nutzer dieselbe Public-Key-Infrastruktur (PKI) verwenden , die auch zur Sicherung der HTTPS-Verbindung dient. Die Codesignierung bezeichnet das Signieren und Verifizieren von Software mithilfe von Maschinenidentitäten.
Wenn Softwaredateien wie Programme, Dokumente, Treiber, Firmware, Dateien, mobile Anwendungen, Container oder sogar Skripte digital signiert werden, um zu zeigen, dass sie von einer authentifizierten Quelle gesendet wurden und die Daten nach der Signierung nicht manipuliert oder verändert wurden. Die drei notwendigen Elemente für einen Code-Signaturvorgang sind:
- Der Code, der signiert werden soll.
- A Zertifizierungsstelle (CA) zuvor ein öffentliches Code-Signatur-Zertifikat ausgestellt.
- Zur Verschlüsselung ist ein privater Code Signing Key zu verwenden.
Sobald eine Organisation über das Codesignaturzertifikat und das private/öffentliche PKI- Schlüsselpaar verfügt, können Entwickler oder Benutzer ihren Code signieren. Dieser Prozess variiert je nach Art des zu signierenden Codes und dessen Veröffentlichungshäufigkeit.
Wie sorgt CodeSign Secure von EC für Sicherheit?
Das Produkt CodeSign Secure von Encryption Consulting speichert die privaten Schlüssel der Code-Signatur-Zertifikate in einem HSM, um jegliche Risiken durch beschädigte, gestohlene oder missbrauchte Schlüssel auszuschließen. Wir haben den Code vor der digitalen Signatur anhand aktueller Virendefinitionen auf Malware und Viren geprüft. Clientseitig ist Hashing aktiviert, um die Build-Performance zu optimieren und unnötige Dateiverschiebungen zu vermeiden – für maximale Sicherheit.
Häufig gestellte Fragen
Garantiert eine gültige Signatur von CodeSign Secure, dass der Code frei von Schadsoftware ist?
Die Signatur selbst garantiert Herkunft und Integrität erst ab dem Zeitpunkt der Signierung. Der Virenscan und die Schwachstellenprüfung von CodeSign Secure vor der Signierung erkennen Schadcode, bevor dieser signiert wird – ein separater Schritt von der eigentlichen Signaturprüfung.
Warum ist clientseitiges Hashing nicht nur für die Leistung, sondern auch für die Sicherheit wichtig?
Da nur der Hashwert und nicht das vollständige Artefakt an den Signaturdienst übertragen werden muss, wird die Datei während der Übertragung an einen gemeinsam genutzten Signaturserver niemals offengelegt, wodurch die Angriffsfläche verringert und gleichzeitig die Build-Performance verbessert wird.
Fazit
EC CodeSign Secure bietet ein Kommandozeilen-Signaturtool, das die Signierung mehrerer Dateien in großen Mengen beschleunigt. So können beispielsweise mehrere Dateien signiert werden, wobei die Signierung jeder einzelnen Datei weniger als 0.2 Sekunden dauert. Zudem lassen sich robuste Zugriffskontrollsysteme mit LDAP integrieren und anpassbare Workflows erstellen, um Risiken zu minimieren, die durch unberechtigte Zugriffsrechte und die Verwendung manipulierter Zertifikate zur Signierung von Code entstehen können. CodeSign Secure trägt somit zur Bestätigung der Authentizität und Originalität digitaler Informationen, wie beispielsweise Softwarecode, bei.
