Besuchen Sie Keyfactor auf der RSA Conference™ 2024 | 6. bis 9. Mai | Erfahren Sie mehr

Best Practices für sicheres Code Signing

Code-Signierung

Wir leben in einer Welt, die mit Code arbeitet. Software ist überall. Zu Hause, im Auto, am Arbeitsplatz und praktisch überall, wo Sie hingehen - und das alles mit Milliarden von Codezeilen.

Beim Secure Code Signing wird ein Teil von software (oder Firmware) digital signiert, um sicherzustellen, dass Endbenutzer die Quelle (den Autor der software) identifizieren und überprüfen können, dass der Code seit seiner Veröffentlichung nicht verändert wurde.

Die meisten Entwickler von software und die Hersteller von IoT sind sich der Notwendigkeit signierter Anwendungen bewusst, wissen aber nicht, wie sie die Codesignierung sicher umsetzen können. Wenn Sie Code signieren, ohne Ihre kryptografischen Schlüssel und Zertifikate zu schützen, können Sie sich einem größeren Risiko aussetzen, als wenn Sie gar keinen Code signieren.

Warum?

Denn sie sind lukrative Ziele. Angreifer versuchen, diese digitalen Zertifikate und Schlüssel zu kompromittieren, um bösartigen Code zu signieren und zu verbreiten, der als legitime software oder Firmware getarnt ist.

Wenn es Unternehmen nicht gelingt, Code-Signierungsprozesse zu sichern, sind die virtuellen "Schlüssel zu ihrem Geschäftsreich" anfällig für Angriffe. Das Vertrauen und die Integrität von software hängen vollständig von der Sicherheit dieser Code-Signatur-Schlüssel ab, aber sie sicher zu halten ist keine einfache Aufgabe. Bedenken Sie:

  • Sicherheit vs. Geschwindigkeit: Sicherheits- und PKI-Teams würden es vorziehen, private Code-Signierschlüssel zu isolieren und zu sperren, aber die Entwickler benötigen dennoch schnellen Zugriff, um den Code zu signieren und ihn in die Produktion zu überführen.
  • Verteilte Entwicklung: Die heutigen Entwicklungsteams arbeiten an weltweit verteilten Standorten. Code Signing Keys werden oft auf Entwickler-Workstations und Build-Servern in Reichweite von Hackern hinterlassen.
  • Keine Unterbrechung: Bei DevOps sind häufige inkrementelle software Builds das Gebot der Stunde. Jede Änderung des Software Entwicklungslebenszyklus (SDLC) kann Risiken mit sich bringen und die Markteinführung verzögern.

 

Die jüngsten Angriffe auf das Code Signing unterstreichen, wie wichtig es ist, Best Practices zu befolgen, um den Anforderungen von Entwicklern und IT-Sicherheitsteams gerecht zu werden. Unabhängig davon, ob Sie software nutzen oder selbst erstellen, muss Ihr Unternehmen Maßnahmen ergreifen, um zu verhindern, dass Ihre Schlüssel und Zertifikate in die falschen Hände geraten.

Best Practices für sicheres Code Signing

Lassen Sie uns die vier besten Praktiken besprechen, die Ihr Unternehmen befolgen kann, um Code-Signing-Angriffe zu verhindern und die Herausforderungen zu meistern, mit denen Entwickler und IT-Sicherheitsteams gleichermaßen konfrontiert sind.

1.) Schützen Sie Ihre privaten Schlüssel

Die Last, den Code zu signieren, fällt oft den Entwicklern zu - Menschen, die sich auf das Schreiben von Code spezialisiert haben und nicht auf die Gewährleistung der Sicherheit. Infolgedessen landen private Signierschlüssel in ungesicherten Netzwerken, wo sie von Angreifern extrahiert werden können, um code-signierte Malware zu verkaufen oder zu erstellen.

Stellen Sie zunächst fest, wie viele Code Signing-Schlüssel und Zertifikate Sie haben, wo sie sich befinden und wie sie gespeichert sind. Lokalisieren Sie alle privaten Schlüssel und übertragen Sie sie in ein nach FIPS 140-2 Level 2 zertifiziertes hardware Sicherheitsmodul (HSM), um zu verhindern, dass Angreifer physischen oder logischen Zugriff erhalten.

Schützen Sie Ihre privaten Schlüssel

Tipp: Entscheiden Sie sich für einen Cloud-HSM-Dienst, der alle Vorteile der Sicherheitsebene hardware bietet, aber ohne die Vorlaufkosten, die manuelle Einrichtung und die laufende Wartung von dedizierten hardware HSMs.

2.) Durchsetzung von Grundsätzen und Praktiken

Wenn ein Hacker in Ihr Entwicklernetzwerk eindringt, muss er nicht unbedingt Ihre Schlüssel stehlen. Indem sie sich Zugang zu einem Build-Server oder einer Entwickler-Workstation mit Zugriff auf die Code-Signierungsinfrastruktur verschaffen, können Hacker einfach Malware einreichen, die signiert und unentdeckt verbreitet werden soll.

Stellen Sie sicher, dass nur die richtigen Entwickler den richtigen Code mit dem richtigen Schlüssel und zur richtigen Zeit signieren können. Durch die Durchsetzung von Zugriffskontrollen und Signierrichtlinien können Sie sicherstellen, dass ein Hacker, selbst wenn er in das Netzwerk eindringt, Ihre Code-Signierinfrastruktur nicht kompromittieren kann.

Tipp: Trennen Sie die Rollen zwischen denjenigen, die zu signierenden Code einreichen können, und denjenigen, die Zertifikatsignierungsanforderungen genehmigen können. Eine Aufgabentrennung kann den Missbrauch von Code Signing-Zertifikaten wirksam verhindern.

3.) Integrieren mit DevOps

Sicherheit ist nur wirksam, wenn sie angenommen wird. Die Entwickler müssen in der Lage sein, jeden Code von überall aus und ohne Unterbrechung zu signieren. Andernfalls werden unweigerlich Sicherheitslücken entstehen.

Code Signing sollte eine gemeinsame Aufgabe von Sicherheits- und Entwicklungsteams sein, um das gemeinsame Ziel zu erreichen, Schlüssel zu schützen, ohne den SDLC zu unterbrechen. Integrieren Sie Code Signing-Prozesse in bestehende Entwickler-Tools und -Workflows.

Tipp: Finden Sie eine Lösung, die es Entwicklern ermöglicht, Code von überall aus zu signieren, ohne Code Signing Keys lokal auf verschiedenen Workstations, Build-Servern, Smartcards und Tokens speichern zu müssen.

4.) Kontinuierliche Überwachung und Prüfung

Zertifikate laufen ab, Schlüssel und Algorithmen werden mit der Zeit schwächer, und die Bedrohungen entwickeln sich ständig weiter. Behalten Sie diese Risiken im Auge, indem Sie den Status von Code Signing-Zertifikaten, die Stärke der verwendeten Algorithmen und alle Code Signing-Aktivitäten kontinuierlich überwachen. Protokollieren und prüfen Sie regelmäßig die Verwendung von Schlüsseln, um sicherzustellen, dass nichts übersehen wird.

Kontinuierliche Überwachung und Prüfung

Tipp: Nehmen Sie Code Signing-Zertifikate in Ihre Strategie zur Verwaltung des Lebenszyklus von Zertifikaten auf und legen Sie fest, wie sie beantragt, ausgestellt, erneuert oder widerrufen werden.

Möchten Sie mehr erfahren? Laden Sie die Definitive Roadmap to Secure Code Signing herunter, die detaillierte Informationen über die jüngsten Angriffe auf Code Signing enthält und wie sie hätten verhindert werden können.

Sind Sie bereit, loszulegen? Keyfactor Code Assure wurde speziell entwickelt, um Sie bei der Bewältigung Ihrer größten Herausforderungen beim Code Signing zu unterstützen.