GitLab is een webgebaseerde Git-repositorymanager die broncodebeheer, automatisering van continue integratie/continue ontwikkeling (CI/CD) en diverse andere functies voor softwareontwikkeling biedt. Het is een uitgebreid DevOps-platform waarmee experts elk projectwerk kunnen uitvoeren, van het plannen en beheren van de broncode tot monitoring en beveiliging.
Teams kunnen hierdoor samenwerken en betere software creëren. GitLab biedt uitgebreide DevOps-mogelijkheden in elke fase van de softwareontwikkelingscyclus. De mogelijkheden voor continue integratie (CI) automatiseren het bouwen en testen van code voor ontwikkelteams. Het platform bevat ook beveiligingsfuncties die scanresultaten binnen de native CI-pipeline/workflow weergeven, en een dashboard dat beveiligingsprofessionals helpt bij het beheren van kwetsbaarheden.
Co-ontwerpen
Code ondertekening is een procedure die de legitimiteit van de auteur en de originaliteit en authenticiteit van digitale informatie, met name softwarecode, verifieert. Het garandeert ook dat de informatie geen kwaadaardige code is. Bovendien garandeert het dat deze informatie niet is gewijzigd, vervalst of geannuleerd nadat deze is gepubliceerd. digitaal ondertekendDe digitale handtekening wordt gemaakt met een privésleutel die alleen beschikbaar is voor de uitgever van de software. Wanneer de software wordt gedownload en geïnstalleerd, wordt de digitale handtekening gecontroleerd aan de hand van de openbare sleutel om te bevestigen dat deze overeenkomt en dat de software niet is gewijzigd. Codeondertekening is belangrijk voor de veiligheid en beveiliging van softwaretoepassingen, omdat het de verspreiding van malware en andere schadelijke software helpt voorkomen.
Encryptie Consulting heeft een CodeSigning-oplossing, “CodeSign Secure”, wat u kan helpen met fraudebestendige opslag van de sleutels en volledige zichtbaarheid en controle over codeondertekeningsactiviteiten. De privésleutels van het codeondertekeningscertificaat kunnen worden opgeslagen in een HSM om de risico's te elimineren die samenhangen met gestolen, beschadigde of misbruikte sleutels.
Integratie van GitLab met CodeSigning
Om hiermee aan de slag te gaan, heb je eerst een GitLab-account en een Runner nodig, waarop je signtool en ECSigning KSP hebt geïnstalleerd en geconfigureerd. Hieronder de vereisten:
- Zelfgehoste runner met ECSigning KSP en Signtool geïnstalleerd en geconfigureerd. Deze runner moet beheerdersrechten hebben.
- Een GitLab-account.
Om ECSigningKSP en Signtool in te stellen, doorloopt u de volgende stappen:
Windows SDK downloaden: (developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/)
U kunt ervoor kiezen om alleen de Windows SDK Signing Tools voor desktop-apps te installeren.
Open het bestand winsdksetup.exe. Onthoud het standaardpad dat wordt weergegeven in het installatiepad, omdat dit handig is bij het uitvoeren van deze opdrachten vanaf de opdrachtprompt.

Op de pagina Windows Kits Privacy is elke optie om Microsoft toestemming te geven om inzichten te verzamelen in orde. Klik op Volgende.

Accepteer de licentieovereenkomst

Deselecteer alle functies behalve Windows SDK-ondertekeningshulpmiddelen voor desktop-apps, Selecteer vervolgens Installeren.

Wanneer u wordt gevraagd of u wilt toestaan dat deze app wijzigingen aanbrengt, selecteert u Ja.


Klik op de Windows-zoekbalk op de taakbalk en typ 'Bewerk de systeemomgevingsvariabelen'. Selecteer vervolgens de gelijknamige optie in het Configuratiescherm.

Klik omgevingsvariabelen.

Voordat u de variabelenlijst bewerkt, navigeert u met behulp van de bestandsverkenner naar de locatie waar de Windows SDK is geïnstalleerd. U moet het pad kopiëren van de map waarin de SignTool-toepassing zich bevindt. Het standaardpad is C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64, Zie de onderstaande schermafbeelding. Klik met de rechtermuisknop en kopieer het pad zoals weergegeven. U kunt ook de SignTool-applicatie onderaan de bestandslijst zien; dit is de opdracht die u gaat uitvoeren.

Klik in de lijst Systeemvariabelen op Nieuw. Typ vervolgens Pad als variabelenaam en kopieer en plak het bovengenoemde pad. Klik vervolgens op OK aan de omgeving houden variabelen venster en system vastgoed venster.

Om de installatie te testen, opent u de opdrachtprompt en typt u signtool. De uitvoer zou er dan als volgt uit moeten zien.

De standaard installatielocatie voor signtool is bijvoorbeeld: C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64
Om KSP in te stellen, volgt u de onderstaande stappen:
Als u onze oplossing gebruikt, kunt u de KSP downloaden met behulp van de onderstaande stappen:
- Inloggen Code Sign Secure.
-
Navigeer naar: Signing tools repository.

- Download “Encryptie Consulting CNG-SigningKSP”
-
Installeer de clienttools met behulp van het .MSI-installatieprogramma. Het .MSI-installatieprogramma automatiseert een groot deel van de configuratie. Navigeer naar de locatie waar het gedownloade bestand is opgeslagen en start het installatieprogramma.

-
Klik op Volgende wanneer de installatiewizard verschijnt.

-
Klik volgende.

- In de Gebruikersnaam veld, typ admin.
-
In de Code veld, kopieer de code uit de Postman API-repository. Klik op de GetLoginToken api en kopieer de code van de Lichaam.
Download PostMan hier linkKlik na het downloaden op de knop 'Overslaan' onderaan het venster. Voeg in het dashboard een nieuwe collectie toe met het plusteken naast 'Collecties'.
GetLoginToken API (http://codesignsecureapi.encryptionconsulting.com/api/auth/GetLoginToken): Dit is de belangrijkste API, omdat deze u een Token aan toonder Om te gebruiken met de rest van de API's, wordt hieronder weergegeven wat er in de body moet staan. De code dient als wachtwoord om een Bearer Token te verkrijgen, het veld 'Gebruiker' is de gebruikersnaam en het veld 'Identiteitstype' specificeert het gebruikerstype. Klik Verstuur Om een uitvoer te genereren met de Bearer Token onderaan. Kopieer deze token voor gebruik.

- Verander de Identiteit Type om 1.
- Verlof API BaseURL hetzelfde.
-
Klik volgende.

-
Klik volgende.

-
U krijgt dan een melding dat dit programma wijzigingen zal aanbrengen op uw pc. Klik op Ja.

-
De installatie is nu voltooid.

Volg de onderstaande stappen:
- Maak een GitLab-account aan. Navigeer naar 'Nieuw leeg project maken'.
-
Scroll naar beneden naar Instellingen -> CI/CD en navigeer naar Runner. Vouw het uit.

-
Klik op nieuwe projectrunner.

-
Klik op het platform van je keuze en geef de loper een tag. Geef hem een time-out in seconden en klik op 'loper maken'.

- Kopieer het getoonde token. We hebben het nodig om de runner te registreren. Nu installeren we eerst Gitlab Runner op ons apparaat.
- Installeer GitLab Runner op uw apparaat met behulp van de linkDeze link is voor Windows. Je kunt hier kijken link om te zien hoe u het op uw specifieke apparaat kunt installeren.
- Je kunt het volgen documentatie om uw hardloper in te stellen en te registreren op uw apparaat.
Om een runner onder Windows te registreren, voert u de volgende opdracht uit:
- .\gitlab-runner.exe registreren
- Voer de URL van uw GitLab-instantie in (ook bekend als de gitlab-ci-coördinator-URL). Bijvoorbeeld: https://gitlab.com
- Voer het token in dat je hebt gekregen om de runner te registreren. Je kunt dit doen via Instellingen -> CI/CD -> Uitvouwen -> Projectrunners. Onder Projectrunners vind je het token.
- Voer een beschrijving in voor de runner. Je kunt deze waarde later wijzigen in de GitLab-gebruikersinterface. Voorbeeld: Apparaat
- Voer de tags in die bij de runner horen, gescheiden door komma's. Je kunt deze waarde later wijzigen in de GitLab-gebruikersinterface. Voorbeeld: WindowsRunner
- Voer eventuele onderhoudsnotities voor de hardloper in.
- Geef de runner-executor op. We gebruiken dit in Shell.
Zodra de runner is geïnstalleerd en geconfigureerd, navigeer je naar services op je apparaat, scrol je naar beneden naar GitLab Runner en stel je 'Aanmelden als beheerder' in. Geef hier je beheerderswachtwoord op.

Zodra dit is gebeurd, ga je naar je project. Mogelijk moet je de .ym-bestandsnaam hernoemen. Hernoem het naar .gitlab-ci.yml. Voer het onderstaande script uit om te codesignen.
job1: tags: - WindowsRunner // De tag die u hebt opgegeven tijdens het instellen van het runner-script: - signtool sign /csp "Encryption Consulting Key Storage provider" /kc evcodesigning /fd SHA256 /f "C:\Users\Administrator\Desktop\ForTesting\evcodesigning.pem" /tr http://timestamp.digicert.com /td SHA256 "C:\Users\Administrator\Desktop\ForTesting\AgentService.exe"
Als u op CI/CD -> jobs klikt, ziet u dat de ondertekening succesvol is.

U moet de opdracht aanpassen aan uw variabelen
- kc evcodesigning: vervang evcodesiging door uw sleutelnaam
- f "C:\Users\Administrator\Desktop\ForTesting\evcodesigning.pem": vervang de locatie door de locatie van uw .pem-bestand om de code te ondertekenen. U kunt dit doen met behulp van Signing KSP. Ga vanuit de opdrachtprompt naar de map met SigningKSP. Gebruik de opdracht ECGetCert.ece om het pem-bestand van uw certificaat te verkrijgen.
- tr http://timestamp.digicert.com: tijdstempelserver
- td SHA256 “C:\Users\Administrator\Desktop\ForTesting\AgentService.exe”: locatie van het bestand dat u wilt laten ondertekenen.
Conclusie
Het bovenstaande artikel demonstreert het proces van het integreren van je GitLab CI/CD-pipeline met codesigning. Het is een heel eenvoudig proces, je hoeft alleen maar een runner in te stellen, deze te verbinden met een GitLab-account en de pipeline te bouwen om de taak uit te voeren. Codesigning is cruciaal in de huidige tijd, aangezien kwaadaardige software en bestanden blijven groeien. Je kunt contact met ons opnemen via [e-mail beveiligd] voor alle hulp met betrekking tot onze codeondertekeningsoplossing.
