Zum Inhalt

Webinar: Melden Sie sich jetzt für unser kommendes Webinar an!

Jetzt registrieren

So signieren Sie ein Excel-Makroprojekt mit SignTool

Excel-Makroprojekt mit SignTool signieren

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.

Enterprise Code-Signing-Lösung

Holen Sie sich mit unserer Code-Signing-Lösung eine Lösung für alle Ihre kryptografischen Software-Code-Signing-Anforderungen.

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. 

Windows SDK-Signaturtools für Desktop-Apps

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

Datenschutzseite für Windows-Kits

Akzeptieren Sie die Lizenzvereinbarung

Lizenzbedingungen für Windows-Software

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.

Signiervorgang funktioniert

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

Systemumgebungsvariablen

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.

Windows Software Development Kit

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. 

Windows-Systemsteuerung

Klicken Sie auf Umgebungsvariablen

Windows Signtool-Anwendung

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. 

Signtool-Anwendung

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. 

Umgebungsvariablen

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

Standardmäßige Signtool-Installation

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.

Schnittstellenpakete

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:

Signieren von Excel-Makros

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.“ 

Enterprise Code-Signing-Lösung

Holen Sie sich mit unserer Code-Signing-Lösung eine Lösung für alle Ihre kryptografischen Software-Code-Signing-Anforderungen.

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:

Herunterladen

Führen Sie das Installationsprogramm aus, akzeptieren Sie die Bedingungen und klicken Sie auf installieren.

Microsoft Visual C++ Redistributable Installer
Microsoft Visual C++ 2010-Setup abgeschlossen

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“

Makrosignatur

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 

Signieren der Datei

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