GlobalSign Blog

24 Apr 2018

Die Bedeutung von Code Signing Redux

Wieder ein Blog zum Thema Code Signing mögen Sie sich fragen. Ja. Aus gutem Grund, denn jüngste Hackerangriffe legen nahe, das Thema noch einmal aufzugreifen und einige Details zu klären. Wie wichtig das Signieren von Code wirklich ist erläutern wir zunächst anhand einiger Grundlagen.

Code Signing nennt man den Vorgang, eine digitale Signatur in Software/Anwendungen einzufügen. Das virtuelle Äquivalent beispielsweise zu einer eingeschweißten CD im Ladenverkauf. Die eingeschweißte Hülle garantiert dem Käufer, dass es sich um eine Originalversion handelt und nicht um eine billige Kopie.

Das gilt analog für die Signierung von Code. Das richtige Signieren geschieht über ein Code Signing-Zertifikat. Es garantiert dem User, der die signierte Software herunterlädt, dass sie von genau dem betreffenden Anbieter stammt, und der Code seit seiner Veröffentlichung nicht manipuliert wurde.

UNSIGNIERTER CODE

unsigned code

MIT EINEM CODE SIGNING-ZERTIFIKAT SIGNIERTER CODE

Signed code

Beim obigen Beispiel einer versiegelten CD kann der Kunde klar erkennen, wer der Herausgeber ist und ob die Verpackung manipuliert oder geöffnet wurde. Der Kunde kann normalerweise problemlos entscheiden, ob er dem Produkt vertraut oder nicht. Kunden, die Software aus dem Internet herunterladen, brauchen eine ähnlich geartete Sicherheit. Die bietet Code Signing indem es quasi als "virtuelle Einschweißfolie" für den Softwarevertrieb im Internet fungiert.

In einem bereits zu einem früheren Zeitpunkt erschienenen Beitrag rund um die Wichtigkeit von Code Signing stellt Linus Hallberg von GlobalSign fest:

Sie verstehen jetzt bereits die Wichtigkeit von Code Signing, aber das macht den Vorgang vermutlich nicht weniger mühsam.

Hallberg geht unter anderem darauf ein, dass man bei Code, der mit einem EV-Code-Signing-Zertifikat signiert ist, eine Reihe der sonst üblichen Schwierigkeiten vermeiden kann. Derart signierter Code ruft beispielsweise keine SmartScreen-Warnungen hervor. SmartScreen stuft diesen Code sofort als vertrauenswürdig ein.

Code Signing-Fälschungen auf dem Vormarsch

Grundsätzlich überrascht das nicht. Hacker sind ständig auf der Suche nach neuen Wegen, sei es aus reinem Vergnügen an der Sache, aus Profitgier oder um möglichst viel Schaden anzurichten. Und sie sind dabei, sich ein weiteres Terrain zu erobern: Code Signing in Apps und ähnlichen Anwendungen. IT-Abteilungen tun gut daran, hier wachsam zu sein.

ZD Net berichtete erst kürzlich, dass

Sicherheitsexperten herausgefunden haben, dass Hacker immer häufiger Code Signing-Zertifikate verwenden, um Sicherheitslösungen leichter umgehen und ihre Opfer infizieren zu können.

Es hat den Anschein, dass Hacker jetzt versuchen, über gestohlene Unternehmensdaten legitime Zertifikate von Zertifizierungsstellen zu bekommen, um bösartigen Code zu signieren. Eine neue Strategie. Früher wurden die Zertifikate von Unternehmen und Entwicklern gestohlen und von Hackern "umgewidmet“. Ziel war es, den eigenen Code mit einem gültigen Code Signing-Zertifikat zu signieren.

Die Zahl der Fälschungen lässt sich aber stark reduzieren. Zum Beispiel, wenn die ausstellende Zertifizierungsstelle ihre Accounts mit strengen Sicherheitsmaßnahmen schützt. Sie verhindert so, dass Hacker auf die Konten zugreifen und sie kontrollieren können. Ein umfassendes Überprüfungsprotokoll stellt zusätzlich sicher, dass die Identität des Erwerbers legitim ist. Bei GlobalSign überprüft beispielsweise der Prüfprozess für EV-Code Signing die Identität einer Organisation anhand eines bestimmten Gerichtsstands. Das Zertifikat identifiziert auch den Hauptgeschäftssitz des Käufers, Administrators und Unternehmens durch strikte Prüfverfahren. Der Prozess bindet die Organisation zudem vertraglich an eine Abonnentenvereinbarung. Diese Vereinbarung kommt vertrauenden Parteien zugute, stärkt aber auch die Sicherheit des Internets insgesamt.

Der CA Security Council (CASC) hat eine Reihe von Mindestanforderungen veröffentlicht, die Zertifizierungsstellen beim Ausstellen von Code Signing-Zertifikaten erfüllen müssen. Eine der grundlegenden Ideen besteht darin, Benutzer über den Sinn und Zweck signierten Codes auf dem Laufenden zu halten und ihnen so zu fundierten Entscheidungen zu verhelfen. Die Leitlinien sollen ferner dazu dienen, die Vertrauenswürdigkeit von Softwareplattformen zu verbessern und die Verbreitung von Malware einzuschränken.

Microsoft ist hier mit gutem Beispiel vorangegangen und hat die neuen Leitlinien sofort übernommen. Gleichzeitig hat der Softwareriese alle Zertifizierungsstellen, die Code Signing-Zertifikate für Windows-Plattformen ausstellen, aufgefordert, ab Februar 2017 die Mindestanforderungen einzuhalten.

Über den Tellerrand

Ein Code Signing-Zertifikat sollte von einer anerkannten und seriösen Zertifizierungsstelle mit einem strengen Überprüfungsprotokoll kommen. Hat man solch ein Zertifikat erhalten, kann man sofort mit dem authentifizierten und vertrauenswürdigen Signieren von Code beginnen. Einige Details sollte man allerdings dabei nicht außer Acht lassen.

  • Wenn man Code mit einem Code Signing-Zertifikat signiert, ist das digitale Zertifikat für die spezifische Verwendung bei digital signiertem Code markiert.
  • Wenn eine digitale Signatur eingebunden wird, kann man zusätzlich einen Zeitstempel aufzeichnen. Die Zeitstempelfunktion garantiert, dass der signierte Code gültig bleibt, auch wenn das digitale Zertifikat abläuft. Sofern man keinen zusätzlichen Code hinzufügt oder den Code ändert, muss man keine neue Signatur einbinden (selbst wenn das ursprünglich verwendete digitale Zertifikat abläuft).

Mit Code Signing nachweisen lassen sich:

  • die Quelle des Inhalts - Code Signing kennzeichnet, dass die Software oder Anwendung aus einer spezifischen Quelle stammt (ein Entwickler oder Signaturgeber). Wenn Software aus dem Internet heruntergeladen wird, zeigen Browser eine Warnmeldung an, die auf die möglichen Gefahren beim Download von Daten hinweist oder sie zeigen die Warnung "unbekannter Herausgeber" an. Code Signing beseitigt diese Sicherheitswarnungen und weist den Namen des Herausgebers aus (d. h. Unternehmensname oder Name des einzelnen Entwicklers).
  • die Integrität des Inhalts - Code Signing garantiert, dass ein Code nicht verändert wurde und bestimmt, ob der Code für einen spezifischen Zweck vertrauenswürdig ist. Wenn der Anwendungs-/Software-Code nach dem Signieren manipuliert oder verändert wurde, erscheint die Signatur als ungültig und nicht vertrauenswürdig. Code zu signieren nützt also beiden, Benutzern, die Anwendungen herunterladen, und Entwicklern. Benutzern wird zugesichert, von wem sie Software herunterladen und sie können anhand dessen entscheiden, ob sie der Quelle vertrauen oder nicht. Entwickler können ihre "Marke" kenntlich machen und die Software vor unerwünschten Änderungen schützen.

Unterschiede zwischen verschiedenen Code Signing Zertifikattypen

GlobalSign gilt als eine der weltweit führenden Zertifizierungsstellen mit PKI-Services und -Lösungen für praktisch jeden Anwendungsfall sowie Unternehmen und Organisationen aller Größen. Weitere Informationen zu Code Signing finden Sie im E-Book Einführung in das Code Signing - und wie immer laden wir Sie ein, direkt mit uns zu sprechen.

Weitere Ressourcen:

Artikel teilen