Kodsignering är en säkerhetsmekanism som används för att verifiera äktheten och integriteten hos digital kod. Det innebär att man lägger till en digital signatur i kod, vilket gör det möjligt för användare att avgöra vem som skapade den och om den har manipulerats. Kodsignering används ofta för att signera körbara filer, bibliotek och skript, men det kan också användas för att signera Excel-makrofiler.
Vad är kodsignering?
Kodsignering är en säkerhetspraxis som innebär att programvara signeras digitalt med ett certifikat för att verifiera dess äkthet och integritet. Kodsigneringscertifikat utfärdas av betrodda certifikatutfärdare (CA) och låta slutanvändare verifiera att programvaran de laddar ner eller kör inte har manipulerats eller modifierats sedan den signerades av programvaruutgivaren.
Detta hjälper till att förhindra att skadlig kod och annan skadlig programvara distribueras och installeras på användarnas system. För att skapa förtroende för en digital signatur och säkerställa att koden inte har manipulerats kräver populära kodsigneringsverktyg som Microsoft Authenticode och Java Code Signing vanligtvis ett digitalt certifikat utfärdat av en tredjepartscertifikatutfärdare.
Signera Excel-filer
Excel-makrofiler används för att automatisera uppgifter i Microsoft Excel. De kan innehålla makron, som är små program som automatiserar repetitiva uppgifter, till exempel formatering av data eller generering av rapporter. Makrofiler kan skapas med programmeringsspråket VBA (Visual Basic for Applications) och kan sparas med filändelsen .xlsm.
Hot från makron
Även om Office-makron fortfarande är det bästa alternativet för affärskritiska processer, utgör de också ett stort säkerhetshot. Makron körs i Office-dokument med samma rättigheter som personen som öppnade dem. För att inte tala om makron som ytterligare ökar deras privilegier genom att utnyttja ytterligare attacker, vilket gör makron till ett kraftfullt verktyg för hackare att infiltrera en organisation.
Men vad gör Makro så hemskt? Till skillnad från andra program tenderar folk att använda Office-dokument utan att tveka. Sedan krävs det bara ett klick för att aktivera makrokörning, vilket är särskilt enkelt att åstadkomma med social ingenjörskonst genom att bädda in instruktioner i ett e-postmeddelande eller till och med själva dokumentet.
Administratörer har svårt att hantera makron, främst av dessa skäl:
- Det är nästan omöjligt att tillhandahålla policyinställningar som kan definiera vilka makron som får köras.
- Policyramverk som Programkontroll/vitlistning fungerar inte för makron.
- Vissa skadliga makron kan kringgå skadlig koddetektorer.
Nu uppstår frågan, vad kan vi göra för att skydda oss mot makrohot? Svaret är enkelt., implementera makrosignering för att skapa säkra slutanvändarpolicyer.
Genom att signera en Excel-makrofil kan du säkerställa att användarna kan lita på koden i filen och att den inte har manipulerats. Digital signering av organisationens makron skapar grunden för policyfunktionerna i MS Office. Detta ger dig möjlighet att...
- Använd grupprinciper för att endast tillåta körning för makron som är signerade med betrodda certifikat, och
- Tilldela betrodda certifikat till användare och grupper.
Med CodeSign Secure kan vi förenkla signerings- och verifieringsprocessen. Vår process innefattar klientsidans hashning för att öka serverhastigheten och använda HSM:er för att lagra privata nycklar, vilket säkerställer en låg attackyta och snabb och säker signering av filer.
Begränsningar i nuvarande metoder
Denna tabell visar hur lättillgängliga policyer antingen har otillräcklig säkerhet eller har en oacceptabelt negativ inverkan på verksamheten:
| Metod | Säkerhetsnivå | Genomförande | Business Impact | Anmärkningar |
|---|---|---|---|---|
| Låt användarna bestämma om de ska aktivera körningen av makron | Medium | Hög | Hög | Man kan inte alltid lita på att användarna gör de bästa valen |
| Aktivera makrokörning | Låg | Hög | Hög | Det är aldrig lämpligt att tillåta detta. |
| Inaktivera makrokörning förutom för digitalt signerade makron | Medelhög | Medium | Hög | Processen för digital signering i Office är mödosam och kräver att makroskrivare har tillgång till sina utvecklingsdatorers privata nycklar. |
| Inaktivera makrokörning förutom för användare som behöver dem | Medelhög | Låg | Medium | Var och en av dessa användare är fortfarande farliga, och deras antal ökar ofta. |
| Inaktivera makrokörning förutom för vissa lagringsplatser | Medelhög | Medelhög | Medelhög | Även om direkta attacker online och via e-post kommer att minska som ett resultat av detta, kan vem som helst fortfarande lämna ett skadligt dokument på en pålitlig plats. |
| Inaktivera makrokörning för alla | Hög | Hög | Låg | Mycket säkert men ofta orealistiskt |
| Använda CodeSign Secure- Inaktivera makrokörning förutom för digitalt signerade makron | Hög | Hög | Hög | Tillhandahåll en säkrare procedur som följer makrokörningsprinciper för signeringsauktorisering och godkännandeprinciper. |
Steg-för-steg-signeringsprocess
Här är stegen för att signera en Excel-makrofil. Först måste vi installera de nödvändiga verktygen.
steg 1
Vi måste installera Windows SDK, som tillhandahåller bibliotek och verktyg för att bygga Windows-appar. Detta utvecklingspaket installerar ett verktyg som heter signtool, vilket ingår som en del av Windows SDK. Klicka på Ladda ner installationsprogrammet och kör det när nedladdningen är klar.
Du kan välja att endast installera Windows SDK-signeringsverktygen för skrivbordsappar.
Obs: Kom ihåg standardsökvägen som visas i installationssökvägen, eftersom det kommer att vara användbart när du kör dessa kommandon från kommandotolken.

På sidan Sekretess för Windows Kits är båda alternativen för att tillåta Microsoft att samla in insikter okej. Klicka på Nästa.

Godkänn licensavtalet

Avmarkera alla funktioner utom Windows SDK-signeringsverktyg för skrivbordsappar, välj sedan installera. Vi behöver inte alla funktioner för att signeringsprocessen ska fungera.

När du tillfrågas om du vill tillåta att den här appen gör ändringar väljer du ja.

Slutligen, välj stäng, och sedan måste vi lägga till en sökväg till systemmiljövariablerna för att kunna köra kommandon från kommandotolken effektivt.

Klicka på Windows sökfält i aktivitetsfältet och skriv "Redigera systemmiljövariablerna" och välj alternativet med samma namn på kontrollpanelen.

Klicka Miljövariabler

Innan du redigerar variabellistan, navigera till var Windows SDK är installerat med hjälp av Utforskaren. Du måste kopiera sökvägen till mappen som innehåller signtool-applikationen. Standardsökvägen är C:\Programfiler (x86)\Windows-paket\10\bin\10.0.22621.0\x64, Se skärmdumpen nedan. Se till att högerklicka och kopiera sökvägen som visas. Du kan också se signtool-applikationen längst ner i fillistan, det är det kommandot du kommer att köra.

I listan Systemvariabler klickar du på ny. Skriv sedan sökväg som variabelnamn och kopiera och klistra in den ovannämnda sökvägen. Klicka sedan på OK på miljö variabler fönster och system egenskaper fönster.

För att testa installationen, öppna kommandotolken och skriv teckenverktyg, och utdata bör vara som visas nedan.

Standardinstallationsplatsen för signtool är till exempel: C:\Programfiler (x86)\Windows-paket\10\bin\10.0.22621.0\x64
steg 2
Hämta och installera Ämnesgränssnittspaket för digital signering av Microsoft Office-filer
Den här länken går till Microsofts nedladdningssida för ett gränssnittspaket. Nedladdningen innehåller två SIP-bibliotek (Subject Interface Package) som stöder digital signering och signaturverifiering av Visual Basic for Applications-projekt i de flesta Office-filformat som stöder VBA-makron. Dessa krävs för att signtool ska känna igen .xls- och .xlsm-filer. Följ stegen nedan efter att du har laddat ner installationsprogrammet.

När .exe-filen har laddats ner, öppna den och välj en installationsmapp eller skapa en ny mapp enligt nedan:

Det kommer att stå att filerna har extraherats, och du hittar din installationsmapp fylld med några filer. Det här är de bibliotek som är viktiga för att möjliggöra signering av Excel-makron. Vi måste köra ett par kommandon för att installera dessa .dll-filer i registret.
Öppna en administratörskommandotolk och skriv följande, sökvägen kommer att vara där du precis installerade filerna:
regsvr32.exe
regsvr32.exe
För mer information om hur du registrerar OLE-kontroller, besök Microsofts webbplats.
Om det lyckas kommer du att se ett meddelande: "DIIRegister Server in lyckades."
steg 3
Sedan måste vi ladda ner Microsoft Visual C++ Redistributable Installer. Dessa bibliotek krävs av många applikationer som byggts med Microsoft C- och C++-verktyg. Eftersom verktygen vi använder kräver dessa bibliotek är det nödvändigt att installera dem. För mer information, se Microsofts dokumentation.
Länk för nedladdning av Microsoft Visual C++ Redistributable Installer:
Kör installationsprogrammet, acceptera villkoren och klicka på installera.


steg 4
Nu kan vi använda kommandotolken för att signera våra filer. Signera Windows Excel-makrofiler är möjligt med kommandot signtool. /kc kommer att vara namnet på ditt certifikat, /f kommer att vara sökvägen till certificate.pem-filen, /fd och /td är de önskade algoritmerna, /csp är namnet på kryptolagringsleverantören (i detta fall Encryption Consulting Key Storage Provider), /tr är adressen till tidsstämpelservern, sedan efter /td SHA256 är sökvägen inom citattecken till filen som ska signeras.
I det här fallet med makrosignering kan du använda .xls eller .xlsm filtillägg och kör signeringskommandot.
signtool sign /csp “Krypteringskonsulttjänst för nyckellagring” /kc evcodesigning /f C:\Användare\Administratör\Skrivbord\FörTesting\evcodesigning.pem /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 “C:\Användare\Administratör\Skrivbord\FörTesting\MacroTest.xlm”

steg 5
Efter att du har signerat filen kan du verifiera den och lista information om den. För att verifiera den signerade filen använder du helt enkelt kommandot verify:
signtool.exe verifiera /pa C:\Användare\Administratör\Skrivbord\FörTestning\MacroTest.xlsm

Slutsats
När Excel-makrofilen har signerats kommer användare som öppnar filen att se ett varningsmeddelande om att filen innehåller makron, men de kommer också att se den digitala signaturen och kan verifiera att den är giltig. Om den digitala signaturen inte är giltig kommer användarna att varnas om att filen kan innehålla skadlig kod och kan vara osäker att öppna.
Sammanfattningsvis är det avgörande att integrera kodsignering i programvarusäkerhet för att skydda den mot skadlig kod och manipulering. Encryption Consultings Code Sign Secure erbjuder olika fördelar, inklusive sömlös integration med utvecklingsarbetsflöden, robust autentisering och kryptering samt anpassningsbara prisalternativ. För att lära dig mer om hur du kan använda Code Sign Secure, besök: Kodsigneringslösning eller kontakta oss på: info@encryptionconsulting.com
