Meteen naar de inhoud

Certificaten voor 47 dagen komen eraan. Ben je er klaar voor?

Handel nu →

Codeondertekening in DevOps

Codeondertekening in DevOps

DevOps

DevOps is, heel simpel gezegd, een combinatie van ontwikkeling (Dev) en beheer (Ops) om de snelheid, veiligheid en ontwikkeling van software te verbeteren. De DevOps-aanpak stelt het ontwikkelteam in staat het ontwikkelingsproces te versnellen door middel van continue integratie, automatisering en samenwerking, waardoor het bouwproces iteratiever wordt. DevOps streeft ernaar het softwareontwikkelingsproces te verkorten en continue levering te realiseren.

Efficiënte ontwikkeling rond DevOps-principes helpt organisaties de behoeften van hun klanten beter te begrijpen en effectief te concurreren op de markt. Een van de grootste cloudcomputing- en e-commercebedrijven ter wereld, Amazon, implementeerde DevOps om zijn infrastructuurbeheer te verbeteren. Het bedrijf begon automatiseringstools zoals AWS CloudFormation en AWS Elastic Beanstalk te gebruiken om het proces van resource provisioning en -schaling te vereenvoudigen.

Hoewel snelheid en efficiëntie essentiële factoren zijn in softwareontwikkeling, mag productbeveiliging geen bijzaak zijn. Door codeondertekening te integreren in een DevOps-pipeline, wordt een extra laag beveiliging en vertrouwen tussen gebruikers gecreëerd, omdat het de integriteit van de softwarepakketten bevestigt en de authenticiteit ervan waarborgt.

Door sterke beveiliging in eerste instantie prioriteit te geven, vermindert u de noodzaak van herstelmaatregelen later in de ontwikkelingscyclus. Dit maakt resources vrij die kunnen worden gebruikt voor andere essentiële taken. Bij zwakke beveiliging kan het automatiseren van het ontwikkelingsproces riskant zijn, omdat processen of scripts kwetsbaarheden kunnen bevatten die gemakkelijk door aanvallers kunnen worden misbruikt.

Het instellen van codeondertekening in een DevOps-pipeline, kort samengevat: de runner of build-agent authenticeert zich bij de ondertekeningsservice via certificaatverificatie en een API-sleuteltoken, niet via een ingebedde privésleutel; de daadwerkelijke ondertekeningssleutel blijft gedurende het hele proces in de HSM. Deze pagina richt zich specifiek op dat configuratiemechanisme.

Key Takeaways

  • De belangrijkste inhoud van deze pagina is de authenticatie van de runner en de configuratie van API-tokens. Voor platformspecifieke stapsgewijze handleidingen raadpleegt u de integratiehandleidingen voor Jenkins, GitHub Actions, GitLab en Azure DevOps; voor een breder conceptueel overzicht, zie CI/CD en de integratie ervan met codeondertekening.
  • CodeSign Secure vereist FIPS 140-2 Level 2 HSM-conformiteit of hoger, overeenkomend met de huidige CA/Browser Forum-basislijn, en niet Level 3 als harde vereiste.

Code ondertekening

Codeondertekening is het proces waarbij een ontwikkelaar softwarepakketten, uitvoerbare bestanden of scripts digitaal ondertekent met een cryptografische handtekening. Deze handtekening dient als bewijs dat de software niet is gemanipuleerd. De identiteit van de softwareauteur of -uitgever kan worden bevestigd door een digitale handtekening aan een softwarebestand of -programma toe te voegen.

Cryptografische handtekeningen werken op dezelfde manier als de digitale vingerafdruk van informatie. Een privésleutel wordt door de verzender gebruikt om een ​​artefact een unieke handtekening te geven. De authenticiteit van een artefact kan door iedereen worden geverifieerd met behulp van de openbare sleutel die voor de ondertekening is gebruikt. Dit draagt ​​bij aan de authenticiteit. Er zijn verschillende bestanden en software beschikbaar op internet die eenvoudig kunnen worden gedownload.

Iedereen kan zich voordoen als legitiem om malware te installeren. Met behulp van codeondertekening kunnen ongelukken veroorzaakt door geïnjecteerde malware gemakkelijk worden voorkomen. Zelfs besturingssystemen controleren tegenwoordig op digitale certificaten/handtekeningen. Ze geven een waarschuwing wanneer deze niet worden gevonden, waardoor het ondertekenen van een artefact noodzakelijk is.

Oplossing voor codeondertekening voor bedrijven

Ontvang één oplossing voor al uw cryptografische behoeften op het gebied van softwarecodeondertekening met onze codeondertekeningsoplossing.

Welke rol speelt codesigning in het DevOps-proces?

Het DevOps-proces legt de nadruk op de automatisering van softwareontwikkeling met continue integratie en continue ontwikkeling, beter bekend als CI/CD . Snelle softwareontwikkeling en -implementatie via DevOps verhoogt de productiviteit, maar kan ook beveiligingsrisico's met zich meebrengen.

Codeondertekening zou een belangrijke praktijk moeten zijn binnen DevOps. Dit helpt de authenticiteit van de software die gebruikers gebruiken te waarborgen. DevOps helpt ook bij het fraudebestendig implementeren van software tijdens ontwikkelingsfasen zoals testen en implementatie. Het ondertekenen van codes kan ook het vertrouwen van gebruikers vergroten, omdat het helpt te voldoen aan bepaalde branchenormen.

Codeondertekening vindt meestal plaats tijdens de build-, release- en implementatiefase van softwareontwikkeling. Zodra de code is verpakt in een uitvoerbaar artefact, zoals een containerimage of installatieprogramma, wordt het pakket digitaal ondertekend.

Verdere wijzigingen in het ondertekende pakket maken de handtekening ongeldig. Codeondertekening en DevOps kunnen hand in hand gaan voor veilige en snelle softwarelevering. Terwijl codeondertekening helpt bij het verifiëren van de authenticiteit van software, helpt DevOps bij het automatiseren van het hele proces. De toevoeging van codeondertekening in een DevOps-pijplijn zorgt voor consistente ondertekening gedurende de hele ontwikkeling. Teamwork verbetert wanneer teams vertrouwen hebben in ondertekende code.

Ondertekende artefacten maken snelle implementatie mogelijk zonder de beveiliging in gevaar te brengen en garanderen continue levering. Deze aanpak van het ondertekenen van code past naadloos in DevOps-automatisering. Dit wordt bereikt door gebruik te maken van de CI/CD-pipeline. DevOps kan ook de beveiliging verbeteren door over te stappen op DevSecOps.

Codeondertekening vindt meestal plaats aan het einde van de softwareontwikkeling, maar DevSecOps draait om het al vanaf de beginfase rekening houden met dergelijke beveiligingsaspecten. Door codeondertekening te introduceren in de codeer-, bouw- en testfase, kunnen alle artefacten, zoals broncode, afhankelijkheden, bibliotheken en tools die in de pijplijn worden gebruikt, worden beveiligd.

Het geeft eindgebruikers of klanten het vertrouwen dat alleen betrouwbare en ongewijzigde artefacten worden gebruikt, waardoor het risico op mogelijke manipulatie wordt verkleind. Organisaties kunnen er ook zeker van zijn dat het artefact gedurende alle fasen van de DevOps-pipeline veilig is. Kwaadaardige code werd via een geavanceerde cyberaanval in het Orion-monitoringplatform van SolarWinds geïnjecteerd.

Als codeondertekening was uitgevoerd, zou een gecompromitteerde SolarWinds-software-update, zonder geldige handtekening van de legitieme bron (SolarWinds), een waarschuwing in de pijplijn hebben geactiveerd. Deze waarschuwing zou de implementatie kunnen stoppen, wat zou leiden tot een onderzoek en zou voorkomen dat schadelijke code de productie zou bereiken.

Best practices voor het integreren van codeondertekening in DevOps-pijplijnen

  • Sleutelbeheer

    Sterke procedures voor sleutelbeheer zijn nodig om de privésleutels te beschermen die worden gebruikt voor het ondertekenen van code. Deze privésleutels moeten veilig worden opgeslagen en alleen toegankelijk zijn voor geautoriseerde personen. Toegangscontrole en encryptie moeten worden geïmplementeerd om de ondertekeningssleutels te beschermen tegen oneigenlijk en ongewenst gebruik. "Beveiliging is een ketting, slechts zo sterk als de zwakste schakel." Het is cruciaal om sleutels veilig op te slaan en te beheren voor een veilig sleutelbeheer.

    Als een aanvaller een privésleutel in handen krijgt die voor ondertekening wordt gebruikt, kan hij de ondertekende gegevens mogelijk compromitteren. Dit kan rampzalig zijn, omdat de aanvaller zich kan voordoen als legitieme softwareontwikkelaars om schadelijke content te verspreiden. Sleutelbeheer is erop gericht dit risico te beperken door zich te richten op het veilig genereren, opslaan, distribueren en intrekken van cryptografische sleutels.

  • Tijdstempel

    Om problemen met verlopen certificaten te voorkomen, moet tijdstempeling worden toegevoegd aan codeondertekening. Tijdstempeling biedt zekerheid over de integriteit en authenticiteit van de code, omdat het garandeert dat de ondertekende code geldig blijft, zelfs nadat het ondertekeningscertificaat is verlopen. Met behulp van een tijdstempel kan de ondertekende code worden geverifieerd, zelfs als de ondertekeningssleutels in gevaar komen. Een tijdstempel koppelt een handtekening op een veilige manier aan een specifiek tijdstip, waardoor een verifieerbaar bewijs ontstaat van wie de code heeft ondertekend en wanneer, wat de verantwoordelijkheid gedurende de gehele ontwikkelingscyclus benadrukt.

  • Certificaat intrekken

    Er moeten procedures worden ontwikkeld om gehackte ondertekeningscertificaten snel in te trekken. Organisaties moeten procedures en plannen paraat hebben voor het intrekken van gecompromitteerde certificaten. Deze gecompromitteerde certificaten moeten worden vervangen door nieuwe. Deze plannen en procedures worden in werking gesteld tijdens een beveiligingslek of wanneer ondertekeningssleutels worden gecompromitteerd. Het intrekken van gecompromitteerde certificaten helpt de kans te verkleinen dat kwaadwillende personen software ondertekenen met die certificaten.

    "De veiligheid van elk systeem is afhankelijk van de integriteit van de componenten." Het snel intrekken van certificaten kan misbruik van certificaten voorkomen. Als een certificaat wordt gestolen of in verkeerde handen valt, kan het worden misbruikt om handtekeningen te vervalsen en schadelijke malware te verspreiden die zich voordoet als geldig. Intrekking stelt autoriteiten in staat om gecompromitteerde certificaten ongeldig te verklaren en het gebruik ervan voor ondertekening te beperken.

  • Beleidshandhaving

    Voor het ondertekenen van code moeten gedetailleerde regels en voorschriften worden opgesteld en systematisch worden toegepast gedurende de ontwikkeling en implementatie. In deze regels moeten specifieke instructies voor het ondertekenen van code worden opgenomen. De regels kunnen betrekking hebben op de vereiste handtekeningen, tijdstempels, goedgekeurde certificeringsinstanties en validatiecriteria. Het is belangrijk ervoor te zorgen dat alle geïmplementeerde componenten voldoen aan de vastgestelde beveiligingsregels door naleving van het beleid af te dwingen.

    "Beleid is de leidraad voor de beveiligingsinspanningen van een organisatie." Beleidshandhaving zorgt voor consistente ondertekeningspraktijken en vermindert menselijke fouten. Over het algemeen zorgt beleidshandhaving ervoor dat alleen geautoriseerde entiteiten een entiteit kunnen ondertekenen. Dit voorkomt dat schadelijke code in de softwareketen terechtkomt en waarborgt de integriteit van geïmplementeerde software.

  • Automatische ondertekening

    Geautomatiseerde tools en procedures kunnen worden gebruikt in de implementatie- en ontwikkelingsfase van softwareontwikkeling om de code te ondertekenen. Automatisering van taken en functies kan de kans op menselijke fouten verkleinen en ervoor zorgen dat alles consistent wordt ondertekend met de juiste sleutels. Dit zorgt voor efficiëntie en versnelt het proces. Beveiliging opleggen gebeurt niet zomaar. Het is een systematische aanpak.

    Automatisering van het ondertekeningsproces stroomlijnt de DevSecOps en vermindert handmatige fouten. Geautomatiseerde ondertekening pakt het beveiligingsprobleem van menselijke fouten aan. Door het ondertekeningsproces binnen de DevOps-pijplijn te automatiseren, wordt de kans geëlimineerd dat ontwikkelaars vergeten code te ondertekenen of de verkeerde sleutel gebruiken. Dit zorgt voor consistente ondertekening en betrouwbare codeverificatie.

Oplossing voor codeondertekening voor bedrijven

Ontvang één oplossing voor al uw cryptografische behoeften op het gebied van softwarecodeondertekening met onze codeondertekeningsoplossing.

Hoe integreert CodeSign Secure met DevOps?

CodeSign Secure van Encryption Consulting integreert met DevOps en maakt gebruik van CI/CD-pipelines op diverse platforms zoals Azure DevOps , GitHub Actions , GitLab en Jenkins . De integratie van onze ondertekeningsoplossing met deze platforms is naadloos en eenvoudig. We integreren met DevOps CI/CD om een ​​geautomatiseerd ondertekeningsproces te creëren.

Met CodeSign Secure kunt u uw builds tijdens het ontwikkelingsproces ondertekenen. De oplossing vereist een HSM die voldoet aan FIPS 140-2 Level 2 of hoger, de huidige basisvereiste van het CA/Browser Forum, waardoor alle sleutels en certificaten die u gebruikt voor ondertekening veilig worden opgeslagen. We voeren client-side hashing uit, wat zorgt voor hoge beschikbaarheid en maximale prestaties. Hierdoor is snel en veilig ondertekenen mogelijk zonder dat u grote bestanden naar de server hoeft te uploaden.

Zodra we veilig sleutelbeheer en beleid hebben ingesteld, integreren we met CI/CD-pipelines om de ondertekening te automatiseren. Als een gebruiker Jenkins wil gebruiken, wordt dit in de clientomgeving ingesteld en wordt er een buildproces aangemaakt.

Voor pipelines zoals GitHub Actions of Azure DevOps configureren we een runner-machine om het buildproces uit te voeren. Na de initiële configuratie met de gewenste pipeline kunnen gebruikers het codeondertekeningsproces toevoegen aan hun buildscript om het proces te automatiseren. Integratie met elke CI/CD-pipeline is goed gedocumenteerd en eenvoudig uit te voeren.

De runners die worden ingesteld voor het uitvoeren van ondertekening, moeten eerst worden geauthenticeerd. Dit gebeurt via certificaatauthenticatie. Gebruikers moeten ook een API-sleuteltoken genereren via de website van CodeSignSecure om API-aanroepen te doen. Dit zorgt ervoor dat alleen geautoriseerde personen de ondertekening op deze runners uitvoeren. Hier komt het instellen van beleid om de hoek kijken.

We bieden ook buildverificatie aan, waarmee we kunnen controleren of er met uw build is geknoeid, wat zorgt voor een robuustere beveiliging. We bieden alles wat u nodig hebt voor robuuste codeondertekening. Dankzij onze compatibiliteit met het populaire DevOps-platform is het verbeteren van de productiviteit van ontwikkelaars en het efficiënter maken van softwareontwikkeling een fluitje van een cent.

De implementatie van onze oplossing is schaalbaar, zowel on-premise, in de cloud als als SAAS. We ondersteunen een aantal bestandsextensies voor ondertekening, zoals *.dll, cab, *.msi, *.js, *.vbs, *.ps1, *.ocx, *.sys, *.wsf en nog veel meer.

Veelgestelde Vragen / FAQ

Heeft de CI/CD-runner ooit toegang tot de onbewerkte ondertekeningssleutel?

Nee. De runner authenticeert zich bij CodeSign Secure via certificaatverificatie en een API-sleuteltoken, en vraagt ​​vervolgens een handtekening aan; de privésleutel zelf blijft gedurende het hele proces in de HSM en wordt nooit aan de runner of buildagent getoond.

Is FIPS 140-2 niveau 3 vereist, of is niveau 2 voldoende?

Niveau 2 of hoger is vereist, overeenkomend met de huidige codeondertekeningsstandaard van het CA/Browser Forum. Niveau 3 biedt extra bescherming tegen manipulatie en kan worden gebruikt als de beveiligingsvereisten van een organisatie dit vereisen, maar het is niet de minimale vereiste.

Conclusie

Codeondertekening is een van de meest cruciale onderdelen van de DevOps-pipeline. Door codeondertekening te integreren in uw CI/CD-proces, kan de algehele beveiliging en integriteit van de ontwikkelde software worden verbeterd. Dit kan bijdragen aan het opbouwen van gebruikersvertrouwen en het voldoen aan compliance-eisen. Het volgen van de best practices voor codeondertekening kan een robuust en veilig codeondertekeningsproces realiseren. Het integreren van codeondertekening in het DevOps-platform is niet alleen een best practice, maar essentieel voor het creëren van een veilig product.

Onthoud dat codeondertekening niet alleen gaat over het beschermen van code tegen manipulatie of misbruik, maar over het beschermen van uw gehele software-ecosysteem. Neem voor meer informatie over onze service contact met ons op via [email protected]