Zephyrnet-Logo

8 Strategien zur Verbesserung der Code-Signing-Sicherheit

Datum:

KOMMENTAR

Die jüngsten Nachrichten, dass Hacker in das Unternehmen für Fernzugriffslösungen eingedrungen sind AnyDesk warf ein scharfes Licht auf die Notwendigkeit für Unternehmen, sich eingehend mit Code-Signing-Praktiken zu befassen, um eine sicherere Software-Lieferkette zu gewährleisten.  

Durch das Signieren von Code wird Software, Firmware oder Anwendungen eine digitale Signatur hinzugefügt, die sicherstellt, dass der Benutzercode von einer vertrauenswürdigen Quelle stammt und seit der letzten Signatur nicht manipuliert wurde. Aber Code-Signierung ist nur so gut wie ihre Ausführung, und unzureichende Praktiken können zu Malware-Injektionen, Manipulationen an Code und Software sowie Identitätsdiebstahl-Angriffen führen. 

Private Schlüssel müssen geschützt werden, aber viele Entwickler pflegen (hauptsächlich aus Bequemlichkeitsgründen) ihre eigenen und speichern sie auf ihren lokalen Maschinen oder Build-Servern. Dies macht sie anfällig für Diebstahl und Missbrauch und schafft blinde Flecken für Sicherheitsteams.  

Nach dem SolarWinds Hack Im Jahr 2020 veröffentlichte das Certificate Authority/Browser (CA/B) Forum eine neue Reihe von Grundvoraussetzungen für die Aufrechterhaltung von Code-Signatur-Zertifikaten, die die Verwendung von Hardware-Sicherheitsmodulen (HSMs), Geräten zur Verwaltung und Sicherung kryptografischer Schlüssel sowie anderer Maßnahmen zum Schutz privater Schlüssel vorschreiben. 

HSMs bieten ein Höchstmaß an Sicherheit, erhöhen jedoch auch die Kosten, die Komplexität und den Wartungsaufwand. Sofern sie nicht in die vom DevOps-Team verwendeten Code-Signatur-Tools integriert werden können, kann die Trennung den Code-Signatur-Zugriff erschweren und den Prozess verlangsamen.  

Durch die Migration in die Cloud hat die Sicherheit eine höhere Priorität erlangt, aber die Cloud bietet auch eine Lösung für die Codesignierung. Cloud-Code-Signierung und HSMs können die von Entwicklern gewünschte Geschwindigkeit und Agilität sowie eine zentrale Steuerung bieten, die verteilte Entwicklungsteams unterstützt, sich in die Entwicklungsprozesse integriert und einfacher durch die Sicherheit überwacht werden kann. 

Der Weg zur integrierten Code-Signatur 

Mit den jüngsten Änderungen von der CA / B-Forum, ist es für Unternehmen an der Zeit, sich auf den Weg zu machen, ihre Codesignatur mit zentraler Steuerung zur Unterstützung von Entwicklungsteams zu modernisieren. Viele Unternehmen befinden sich weiterhin in der „Ad-hoc“-Phase, in der die Schlüssel lokal verwaltet werden und Entwickler eine Vielzahl von Code-Signing-Prozessen und -Tools verwenden. Andere verfügen über eine zentralisierte Kontrolle, um Sicherheitsteams Transparenz und Kontrolle zu geben, indem sie HSMs zum Sichern von Schlüsseln verwenden, aber die Verwendung separater Code-Signing-Tools wirkt sich immer noch auf die Geschwindigkeit der Softwareentwicklung aus. 

Die ideale, ausgereifte Struktur erfordert eine Integration wichtiger Sicherheits-, Code-Signatur-Tools und Entwicklungsworkflows, um den Prozess über alle Builds, Container, Artefakte und ausführbaren Dateien hinweg nahtlos und rationalisiert zu gestalten. Sicherheitsteams verwalten die HSMs und erhalten vollständigen Einblick in die Codesignierung, während Entwickler jetzt über eine agile und schnelle Entwicklungspipeline verfügen. 

Ein paar Best Practices können Ihnen den Weg auf diesem Weg ebnen: 

  • Sichern Sie Ihre Schlüssel: Speichern Sie Codesignaturschlüssel an einem sicheren Ort, z. B. einem HSM, das den kryptografischen Anforderungen des CA/B-Forums (FIPS 140-2 Level 2 oder Common Criteria EAL 4+) entspricht. HSMs sind manipulationssicher und verhindern den Export privater Schlüssel.

  • Zugriffskontrolle: Minimieren Sie das Risiko unbefugten Zugriffs und Missbrauchs privater Schlüssel, indem Sie den Zugriff durch rollenbasierte Zugriffskontrolle einschränken. Definieren Sie Genehmigungsworkflows und setzen Sie Sicherheitsrichtlinien durch, um den Zugriff nur auf das erforderliche Personal zu regeln, und führen Sie Prüfprotokolle, die aufzeichnen, wer die Signaturanforderung ausgelöst hat, wer auf die Schlüssel zugegriffen hat und warum. 

  • Schlüssel drehen: Wenn ein Schlüssel kompromittiert wird, besteht die Gefahr der Kompromittierung aller damit signierten Releases. Rotieren Sie die Codesignaturschlüssel regelmäßig und verwenden Sie eindeutige und separate Schlüssel zum Signieren verschiedener Releases in mehreren DevOps-Teams. 

  • Zeitstempelcode:  Code-Signing-Zertifikate haben eine begrenzte Lebensdauer – ein bis drei Jahre, Tendenz steigend. Durch die Zeitstempelung des Codes beim Signieren kann die Legitimität einer Signatur auch nach Ablauf oder Widerruf des Zertifikats überprüft werden, wodurch die Vertrauenswürdigkeit des signierten Codes und der signierten Software gestärkt wird.

  • Überprüfen Sie die Codeintegrität: Führen Sie vor dem Signieren und Freigeben des endgültigen Builds eine vollständige Codeüberprüfung durch, indem Sie den Code auf dem Build-Server mit dem Quellcode-Repository vergleichen und alle Entwicklersignaturen überprüfen, um sicherzustellen, dass sie manipulationssicher sind. 

  • Zentralisieren Sie die Verwaltung: Unternehmen sind heute global. Ein zentralisierter Codesignaturprozess kann dabei helfen, Signierungsaktivitäten und Zertifikate im gesamten Unternehmen zu überwachen, unabhängig davon, wo sich die Entwickler befinden. Es verbessert die Sichtbarkeit, stärkt die Verantwortlichkeit und beseitigt Sicherheitslücken.

  • Richtlinien durchsetzen: Standardisieren Sie den Codesignaturprozess, indem Sie Richtlinien definieren und zuordnen, einschließlich Schlüsselnutzungsberechtigungen, Genehmigungen, Schlüsselablauf, CA-Typ, Schlüsselgröße, Typ des Signaturalgorithmus und mehr. Automatisieren Sie die Durchsetzung von Richtlinien, um sicherzustellen, dass alle Codes, Dateien und Software richtlinienbasiert signiert sind und den Industriestandards entsprechen. 

  • Vereinfachen Sie das Signieren von Code: Die Integration und Automatisierung der Code-Signierung mit CI/CD-Tools vereinfacht den Prozess für DevOps, ohne die Sicherheit zu beeinträchtigen, und fördert gleichzeitig Geschwindigkeit und Agilität.

In einer Welt der kontinuierlichen Integration und kontinuierlichen Bereitstellung bieten starke Best Practices für die Code-Signierung eine unschätzbare Möglichkeit, Vertrauen in den Entwicklungsprozess aufzubauen und eine sicherere Software-Lieferkette zu ermöglichen.

spot_img

Neueste Intelligenz

spot_img