Code Signing ist ein Sicherheitsmechanismus zur Überprüfung der Authentizität und Integrität von digitalem Code. Dabei wird dem Code eine digitale Signatur hinzugefügt, die es Benutzern ermöglicht, festzustellen, wer ihn erstellt hat und ob er manipuliert wurde. Code Signing wird häufig zum Signieren von ausführbaren Dateien, Bibliotheken und Skripten verwendet, kann aber auch zum Signieren von Excel-Makrodateien verwendet werden.
Was ist Code Signing?
Code Signing ist eine Sicherheitsmethode, bei der Software digital mit einem Zertifikat signiert wird, um ihre Authentizität und Integrität zu überprüfen. Code Signing-Zertifikate werden von vertrauenswürdigen Zertifizierungsstellen (CA) und Endbenutzern die Überprüfung ermöglichen, dass die Software, die sie herunterladen oder ausführen, seit ihrer Signierung durch den Softwareherausgeber nicht manipuliert oder geändert wurde.
Dies trägt dazu bei, die Verbreitung und Installation von Malware und anderer Schadsoftware auf den Systemen der Benutzer zu verhindern. Um Vertrauen in eine digitale Signatur aufzubauen und sicherzustellen, dass der Code nicht manipuliert wurde, erfordern gängige Code-Signatur-Tools wie Microsoft Authenticode und Java Code Signing in der Regel ein vertrauenswürdiges digitales Zertifikat einer Zertifizierungsstelle eines Drittanbieters.
Signieren von Excel-Dateien
Excel-Makrodateien dienen zur Automatisierung von Aufgaben in Microsoft Excel. Sie können Makros enthalten, kleine Programme, die wiederkehrende Aufgaben wie das Formatieren von Daten oder das Erstellen von Berichten automatisieren. Makrodateien können mit der Programmiersprache VBA (Visual Basic for Applications) erstellt und mit der Dateierweiterung .xlsm gespeichert werden.
Bedrohungen durch Makros
Office-Makros sind zwar nach wie vor die beste Lösung für geschäftskritische Prozesse, stellen aber auch ein großes Sicherheitsrisiko dar. Makros werden in Office-Dokumenten mit denselben Rechten ausgeführt wie die Person, die sie geöffnet hat. Ganz zu schweigen von Makros, die ihre Privilegien durch die Ausnutzung weiterer Exploits noch weiter erhöhen. Dadurch werden Makros zu einem mächtigen Werkzeug für Hacker, die in Unternehmen eindringen möchten.
Doch was macht Makros so gefährlich? Im Gegensatz zu anderen Programmen nutzen Nutzer Office-Dokumente meist ohne Bedenken. Ein Klick genügt, um die Ausführung von Makros zu aktivieren. Besonders einfach ist dies durch Social Engineering, indem Anweisungen in eine E-Mail oder sogar in das Dokument selbst eingebettet werden.
Administratoren geraten bei Makros vor allem aus folgenden Gründen in Schwierigkeiten:
- fast unmöglich, Richtlinieneinstellungen bereitzustellen mit dem festgelegt werden kann, welche Makros ausgeführt werden dürfen.
- Politische Rahmenbedingungen wie Anwendungssteuerung/Whitelisting funktionieren bei Makros nicht.
- Einige bösartige Makros können Umgehen Sie Malware-Detektoren.
Nun stellt sich die Frage, was wir tun können, um uns vor Makrobedrohungen zu schützen. Die Antwort ist einfach, implementieren Sie die Makrosignatur um sichere Endbenutzerrichtlinien zu erstellen.
Durch die Signierung einer Excel-Makrodatei stellen Sie sicher, dass Benutzer dem Code in der Datei vertrauen und dieser nicht manipuliert wurde. Die digitale Signierung der Makros Ihres Unternehmens bildet die Grundlage für die Richtlinienfunktionen von MS Office. Dies ermöglicht Ihnen Folgendes:
- Verwenden Sie Gruppenrichtlinien, um die Ausführung nur für Makros zuzulassen, die mit vertrauenswürdigen Zertifikaten signiert sind, und
- Weisen Sie Benutzern und Gruppen vertrauenswürdige Zertifikate zu.
Mit CodeSign Secure können wir den Signier- und Verifizierungsprozess vereinfachen. Unser Prozess beinhaltet clientseitiges Hashing um die Servergeschwindigkeit zu erhöhen und HSMs zum Speichern privater Schlüssel zu verwenden, wodurch eine geringe Angriffsfläche und eine schnelle, sichere Signierung von Dateien gewährleistet wird.
Einschränkungen der aktuellen Ansätze
Diese Tabelle zeigt, wie leicht zugängliche Richtlinien entweder unzureichende Sicherheit bieten oder sich inakzeptabel negativ auf das Geschäft auswirken:
| Methodik | Sicherheitsstufe | Umsetzung | Auswirkungen auf das Geschäft | Bemerkungen |
|---|---|---|---|---|
| Lassen Sie Benutzer entscheiden, ob die Ausführung von Makros aktiviert werden soll | Medium | Hoch | Hoch | Man kann sich nicht immer darauf verlassen, dass die Benutzer die beste Wahl treffen |
| Makroausführung aktivieren | Niedrig | Hoch | Hoch | Es ist niemals angebracht, dies zu aktivieren. |
| Deaktivieren Sie die Makroausführung mit Ausnahme digital signierter Makros | Mittelhoch | Medium | Hoch | Der Prozess der digitalen Signatur in Office ist mühsam und erfordert, dass Makroautoren Zugriff auf die privaten Schlüssel ihrer Entwicklungs-PCs haben. |
| Deaktivieren Sie die Makroausführung, außer für Benutzer, die sie benötigen | Mittelhoch | Niedrig | Medium | Jeder dieser Benutzer ist immer noch gefährlich und ihre Zahl nimmt häufig zu. |
| Deaktivieren Sie die Makroausführung mit Ausnahme bestimmter Speicherorte | Mittelhoch | Mittelhoch | Mittelhoch | Obwohl direkte Online- und E-Mail-Angriffe dadurch verringert werden, kann immer noch jeder ein schädliches Dokument an einem sicheren Ort hinterlassen. |
| Makroausführung für alle deaktivieren | Hoch | Hoch | Niedrig | Sehr sicher, aber oft unrealistisch |
| Mit CodeSign Secure- Deaktivieren Sie die Makroausführung mit Ausnahme digital signierter Makros | Hoch | Hoch | Hoch | Stellen Sie ein sichereres Verfahren bereit, das den Richtlinien zur Makroausführung für die Signierung von Autorisierungs- und Genehmigungsrichtlinien entspricht. |
Schrittweiser Signiervorgang
Hier sind die Schritte zum Signieren einer Excel-Makrodatei. Zuerst müssen wir die erforderlichen Tools installieren
Schritt 1:
Wir müssen installieren Windows SDK, das Bibliotheken und Tools zum Erstellen von Windows-Apps bereitstellt. Dieses Entwicklungskit installiert das Tool „signtool“, das Teil des Windows SDK ist. Klicken Sie auf „Installer herunterladen“ und führen Sie es nach dem Download aus.
Sie können auswählen, nur die Windows SDK-Signaturtools für Desktop-Apps zu installieren.
Hinweis: Merken Sie sich den im Installationspfad angezeigten Standardpfad, da dieser beim Ausführen dieser Befehle über die Eingabeaufforderung hilfreich ist.

Auf der Datenschutzseite von Windows Kits können Sie Microsoft mit beiden Optionen das Sammeln von Erkenntnissen gestatten. Klicken Sie auf „Weiter“.

Akzeptieren Sie die Lizenzvereinbarung

Deaktivieren Sie alle Funktionen außer Windows SDK-Signaturtools für Desktop-Apps, Wählen Sie dann „Installieren“. Wir benötigen nicht alle Funktionen, damit der Signaturvorgang funktioniert.

Wenn Sie gefragt werden, ob Sie dieser App Änderungen erlauben möchten, wählen Sie „Ja“.

Wählen Sie abschließend „Schließen“ aus. Anschließend müssen wir einen Pfad zu den Systemumgebungsvariablen hinzufügen, um Befehle aus der Eingabeaufforderung effektiv ausführen zu können.

Klicken Sie auf die Windows-Suchleiste in der Taskleiste, geben Sie „Systemumgebungsvariablen bearbeiten“ ein und wählen Sie die gleichnamige Option in der Systemsteuerung aus.

Klicken Sie auf Umgebungsvariablen

Bevor Sie die Variablenliste bearbeiten, navigieren Sie mit dem Datei-Explorer zum Installationsort des Windows SDK. Sie müssen den Pfad des Ordners kopieren, der die Signtool-Anwendung enthält. Der Standardpfad lautet C:\Programme (x86)\Windows Kits\10\bin\10.0.22621.0\x64, Siehe Screenshot unten. Klicken Sie mit der rechten Maustaste und kopieren Sie den Pfad wie gezeigt. Sie sehen außerdem die Anwendung „Signtool“ unten in der Dateiliste. Dies ist der Befehl, den Sie ausführen werden.

Klicken Sie in der Liste der Systemvariablen auf Neu. Geben Sie dann Pfad als Variablennamen ein und kopieren Sie den oben genannten Pfad. Klicken Sie dann auf OK auf die Umwelt Variablen Fenster und fragst immobilien Fenster.

Um die Installation zu testen, öffnen Sie die Eingabeaufforderung und geben Sie signtool, und die Ausgabe sollte wie unten gezeigt aussehen.

Der Standardinstallationsort für Signtool ist beispielsweise: C:\Programme (x86)\Windows Kits\10\bin\10.0.22621.0\x64
Schritt 2:
Laden Sie die Subject Interface Package zum digitalen Signieren von Microsoft Office-Dateien
Dieser Link führt zur Download-Seite von Microsoft für ein Interface-Paket. Dieser Download enthält zwei Subject Interface Package (SIP)-Bibliotheken, die die digitale Signierung und Signaturprüfung von Visual Basic for Applications-Projekten in den meisten Office-Dateiformaten mit VBA-Makros unterstützen. Diese sind erforderlich, damit signtool XLS- und XLSM-Dateien erkennt. Führen Sie nach dem Download des Installationsprogramms die folgenden Schritte aus.

Nachdem die EXE-Datei heruntergeladen wurde, öffnen Sie sie und wählen Sie einen Installationsordner aus oder erstellen Sie einen neuen Ordner, wie unten gezeigt:

Es wird angezeigt, dass die Dateien erfolgreich extrahiert wurden, und Ihr Installationsordner enthält einige Dateien. Dies sind die Bibliotheken, die für die Signierung von Excel-Makros unerlässlich sind. Wir müssen ein paar Befehle ausführen, um diese DLL-Dateien in der Registrierung zu installieren.
Öffnen Sie eine Administrator-Eingabeaufforderung und geben Sie Folgendes ein. Der Pfad befindet sich dort, wo Sie gerade die Dateien installiert haben:
regsvr32.exe
regsvr32.exe
Weitere Informationen zum Registrieren von OLE-Steuerelementen finden Sie unter Microsoft-Website.
Bei Erfolg wird die Meldung „DIIRegister Server in“ angezeigt gelungen.“
Schritt 3:
Anschließend müssen wir den Microsoft Visual C++ Redistributable Installer herunterladen. Diese Bibliotheken werden von vielen Anwendungen benötigt, die mit Microsoft C- und C++-Tools erstellt wurden. Da die von uns verwendeten Tools diese Bibliotheken benötigen, ist es notwendig, sie zu installieren. Weitere Informationen finden Sie unter Microsoft-Dokumentation.
Download-Link für das Microsoft Visual C++ Redistributable Installer:
Führen Sie das Installationsprogramm aus, akzeptieren Sie die Bedingungen und klicken Sie auf installieren.


Schritt 4:
Nun können wir die Eingabeaufforderung verwenden, um unsere Dateien zu signieren. Das Signieren von Windows Excel-Makrodateien ist mit dem Befehl signtool möglich. Die /kc wird der Name Ihres Zertifikats sein, /f ist der Pfad zur Datei certificate.pem, /fd und /td sind die gewünschten Algorithmen, /csp ist der Name des Kryptospeicheranbieters (in diesem Fall Encryption Consulting Key Storage Provider), /tr ist die Adresse des Zeitstempelservers, dann nach dem /td SHA256 ist der Pfad in Anführungszeichen der zu signierenden Datei.
Bei diesem Fall der Makrosignatur können Sie .xls oder .xlsm Dateierweiterungen und führen Sie den Signaturbefehl aus.
signtool sign /csp „Anbieter von Schlüsselspeicherung für Verschlüsselungsberatung“ /kc evcodesigning /f C:\Benutzer\Administrator\Desktop\ForTesting\evcodesigning.pem /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 „C:\Benutzer\Administrator\Desktop\ForTesting\MacroTest.xlm“

Schritt 5:
Nach dem Signieren der Datei können Sie diese überprüfen und Informationen dazu auflisten. Verwenden Sie dazu einfach den Befehl „Verify“:
signtool.exe verify /pa C:\Benutzer\Administrator\Desktop\ForTesting\MacroTest.xlsm

Fazit
Sobald die Excel-Makrodatei signiert ist, wird Benutzern beim Öffnen der Datei eine Warnmeldung angezeigt, dass die Datei Makros enthält. Sie sehen jedoch auch die digitale Signatur und können deren Gültigkeit überprüfen. Ist die digitale Signatur ungültig, werden Benutzer gewarnt, dass die Datei möglicherweise schädlichen Code enthält und das Öffnen unsicher ist.
Zusammenfassend lässt sich sagen, dass die Integration von Code Signing in die Softwaresicherheit entscheidend ist, um diese vor Malware-Angriffen und Manipulationen zu schützen. Code Sign Secure von Encryption Consulting bietet verschiedene Vorteile, darunter die nahtlose Integration in Entwicklungs-Workflows, robuste Authentifizierung und Verschlüsselung sowie anpassbare Preisoptionen. Weitere Informationen zur Nutzung von Code Sign Secure finden Sie unter: Code Sign-Lösung oder kontaktieren Sie uns unter: info@encryptionconsulting.com
