Meteen naar de inhoud

Certificaten met een geldigheidsduur van 47 dagen komen eraan. Ben je klaar?

Handel nu →

Moderne strategieën voor het ondertekenen en verifiëren van containerimages met CodeSign Secure 

Moderne strategieën voor het ondertekenen en verifiëren van containerimages met CodeSign Secure

Introductie 

Aanvallen op de supply chain van software zijn niet langer alleen een theoretisch risico; ze gebeuren en ze komen hard aan. Incidenten zoals de SolarWinds-breuk en de Log4Shell-kwetsbaarheid heeft pijnlijk duidelijk gemaakt dat aanvallers zich niet langer alleen op uw code richten; ze hebben het gemunt op alles wat ermee in aanraking komt, inclusief de tools, bibliotheken en containers waarop u vertrouwt. 

In deze realiteit is het ondertekenen en verifiëren van containerimages geen voorziening; het is een must. Als u niet-ondertekende images pusht of handtekeningcontroles overslaat tijdens de implementatie, laat u de deur wagenwijd openstaan ​​voor aanvallers om schadelijke code binnen te smokkelen zonder dat u het merkt. 

Daar komt onze CodeSign Secure om de hoek kijken. 

Met CodeSign Secure kunt u eenvoudig digitale handtekeningen toevoegen aan uw containerimages en deze verifiëren voordat ze in productie gaan. Of u nu een snelgroeiende CI/CD-pipeline gebruikt of honderden microservices beheert, het helpt u uw container supply chain te beveiligen zonder dat dit de productie vertraagt. 

In de volgende secties zullen we bekijken hoe onze CodeSign Secure in uw workflow past en hoe het uw afbeeldingen beveiligt met HSM-ondersteunde sleutels en hoe u handtekeningcontroles kunt afdwingen voordat er iets wordt geïmplementeerd. 

De rol van codeondertekening in DevSecOps 

Bij DevOps draait alles om snelheid, het snel uitrollen van updates, alles automatiseren en de boel in beweging houden. Maar die snelheid brengt ook risico's met zich mee. Hoe sneller je code levert, hoe groter de kans dat er iets onbetrouwbaars doorheen glipt. Dat is waar DevSecOps komt erbij en integreert de beveiliging direct in het proces, in plaats van dat deze er aan het einde aan wordt toegevoegd. 

Een van de beste manieren om dat vertrouwen op te bouwen, is met codeondertekening. Wanneer je containerimages ondertekent, geef je ze in feite een stempel met de tekst: "Dit komt van ons en er is niet mee geknoeid." Het is een eenvoudige controle die er enorm aan bijdraagt ​​dat wat je in productie draait, precies is wat je wilde bouwen. 

Ons platform, CodeSign Secure, sluit aan op uw CI/CD-pijplijn Ondertekenen is dus geen aparte taak; het is gewoon onderdeel van de build. Elke image die wordt gebouwd en gepusht, kan automatisch worden ondertekend. En voordat de image wordt geïmplementeerd, kan de handtekening worden geverifieerd om er zeker van te zijn dat er onderweg niets mee is geknoeid. 

Het gaat erom beveiliging op de automatische piloot te zetten. U hoeft niet te kiezen tussen snel handelen en veilig blijven met ons platform; u krijgt beide. 

Containerimages ondertekenen met CodeSign Secure

Voordat u met het ondertekenen van afbeeldingen kunt beginnen, moeten Docker en CoSign (de CLI-tool van CodeSign Secure) op de machine worden geïnstalleerd. 

Volg de onderstaande stappen om Cosign te installeren 

CoSign installeren 

# binair 

wget “https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign-linux-amd64” 

mv cosign-linux-amd64 /usr/local/bin/cosign 

chmod +x /usr/local/bin/cosign

# toerental 

wget “https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign-2.0.0.x86_64.rpm”

rpm -ivh cosign-2.0.0.x86_64.rpm

#dkpg 

wget “https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign_2.0.0_amd64.deb”

dpkg -i cosign_2.0.0_amd64.deb

Python en Docker installeren en instellen 

sudo apt-get install docker.io

sudo apt-get install python-is-python3

sudo apt installeer python3-pip

sudo apt-get install python3-docker

sudo apt-get -y installeer python3-openssl

sudo apt-get install -y dbus-user-session

sudo apt-get install -y docker-ce-rootless-extras

Als docker-ce-rootless-extras een foutmelding geeft, volg dan de onderstaande stappen: 

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg lsb-release

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce-rootless-extras

Nu moet u inloggen op uw Docker Hub-account door de onderstaande opdracht uit te voeren

sudo docker-aanmelding 

Containerondertekening instellen 

  • Download de Container Signing Tools van het CodeSign Secure-portaal.
  • Ga naar de map SignImage.
  • Open het bestand “ec-signer.conf” en werk de codesigning-URL, het pad van uw SSL-authenticatiecertificaat en het wachtwoord van het certificaat bij.
    containerondertekening

    NOTITIE: Het SSL-authenticatiecertificaat en wachtwoord kunnen worden gegenereerd via het CodeSignSecure-portaal.

    containerondertekening
  • Open terminal
  • Uitvoeren

    ./ec-signer –project_name= –afbeelding_naam= –docker_gebruikersnaam=

  • U wordt gevraagd het Docker Hub-wachtwoord en de root-rechten van de huidige gebruiker op te geven
    containerondertekening
  • U zult een nieuwe handtekeningafbeelding zien in uw Docker Hub-account.
    containerondertekening

Containerimage verifiëren 

Verificatie van containerimages stelt u in staat om alleen ondertekende Docker-images te implementeren en niet-ondertekende images af te wijzen. Kubernetes moet worden geïmplementeerd om de ondertekening van de containerimage te verifiëren. 

Kubernetes installeren 

Volg de volgende opdracht om Kubernetes te installeren. 

curl -sfL https://get.k3s.io | sh – 

Kubernetes-services maken 

Voordat we een afbeelding in een Kubernetes-omgeving kunnen verifiëren, moeten de volgende services in het Kubernetes-cluster worden geïmplementeerd 

  • Verifieer afbeeldingsservice 
  • Webhook-service voor beeldvalidatie 

Volg de onderstaande stappen om de Verify Image Service te maken: 

  • Ga naar de map ../VerifyImage/image-verifier.
  • Maak een Docker-image met de naam "verifyImage" met behulp van de Dockerfile die aanwezig is in de map

    Bijvoorbeeld:

    sudo docker build -t aryan34/demo:verifyImage

    waarbij “aryan34” de Docker-gebruikersnaam is en “demo” de Docker Hub-repositorynaam.

  • Push deze afbeelding nu naar uw Docker Hub-account

    Bijvoorbeeld:

    sudo docker image push aryan34/demo:verifyImage

    waarbij “aryan34” de Docker-gebruikersnaam is en “demo” de Docker Hub-repositorynaam.

  • Open nu het bestand validator-deploy.yaml en werk de volgende instellingen bij
    1. certificaatnaam
    2. server_url
    3. pfx_bestandspad
    4. pfx_bestand_wachtwoord
    5. DOCKER_GEBRUIKERSNAAM
    6. DOCKER_WACHTWOORD
    7. Afbeelding (LET OP: behoud de afbeeldingsnaam als "verifyImage". Wijzig alleen de Docker-gebruikersnaam en de repositorynaam.)
    containerondertekening
  • Implementeer de Image Verifier Service

    sudo kubectl apply -f validator-deploy.yaml

Volg de onderstaande stappen om de Image Validation Service te maken: 

  • Ga naar de map ../VerifyImage/validating-webhook.
  • Maak een Docker-image met de naam "image-validation-webhook" met behulp van de Dockerfile in de map.

    Bijvoorbeeld:

    sudo docker build -t aryan34/demo:image-validatie-webhook

    Waarbij “aryan34” de Docker-gebruikersnaam is en “demo” de naam van de Docker Hub-repository.

  • Push deze afbeelding nu naar uw Docker Hub-account

    Bijvoorbeeld:

    sudo docker image push aryan34/demo:image-validatie-webhook

    waarbij “aryan34” de Docker-gebruikersnaam is en “demo” de Docker Hub-repositorynaam.

  • Implementeer nu de webhookgeheimen en configuratie-yaml-bestanden.

    sudo kubectl apply -f webhook-secret.yaml

    sudo kubectl apply -f webhook-config.yaml

  • Open nu het bestand webhook-deploy.yaml en werk de volgende instellingen bij
    1. Afbeelding (LET OP: behoud de afbeeldingsnaam als "image-validation-webhook". Wijzig alleen de Docker-gebruikersnaam en de repositorynaam.)
    containerondertekening
  • Implementeer de webhook voor beeldvalidatie

    sudo kubectl apply -f webhook-deploy.

  • Als de services succesvol zijn geïmplementeerd, voeren we de volgende opdracht uit:

    sudo kubectl get pods -all-namespaces

We zouden de volgende output moeten krijgen: 

containerondertekening

Testen 

Als we proberen een containerimage te implementeren die niet is ondertekend, mislukt de implementatie. We kunnen alleen een ondertekende image implementeren dankzij onze Kubernetes-verificatie- en validatieservices. 

Een niet-ondertekende afbeelding implementeren 

We moeten een yaml-bestand maken voor de niet-ondertekende afbeelding 

We hebben een demo-deployment-unsigned.yaml-bestand gemaakt om de niet-ondertekende aryan34/demo:notSigned-image te implementeren. 

Hier is een voorbeeld van een yaml-bestand. Vergeet niet de naam van de geïmplementeerde service (demo-deployment-unsigned), de imagenaam en het poortnummer te wijzigen. 

apiVersion: apps/v1 kind: Implementatie metadata: name: demo-deployment-unsigned labels: app: demo spec: replicas: 1 # Aantal gewenste replica's selector: matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - name: demo image: aryan34/demo:notSigned # unsigned demo image ports: - containerPort: 8997 # Poort om bloot te stellen

Voer de volgende opdracht uit om de niet-ondertekende afbeelding met Kubernetes te implementeren. 

  sudo kubectl apply -f demo-deployment-unsigned.yaml 

containerondertekening

Een ondertekende afbeelding implementeren 

Hier is een voorbeeld van een yaml-bestand. Vergeet niet de naam van de geïmplementeerde service (deployed-demo), de imagenaam en het poortnummer te wijzigen. 

apiVersion: apps/v1 kind: Implementatie metadata: name: demo-deployment labels: app: demo spec: replicas: 1 # Aantal gewenste replica's selector: matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - name: demo image: aryan34/demo:new3 # ondertekende demo image ports: - containerPort: 8999 # Poort om bloot te stellen

Voer de volgende opdracht uit om de ondertekende afbeelding met Kubernetes te implementeren. 

    sudo kubectl apply -f demo-deployment.yaml 

Als u nu alle pods controleert, zult u zien dat er een demo-implementatieservice succesvol wordt uitgevoerd. 

containerondertekening

CodeSign Secure + SBOM: transparantie in de toeleveringsketen garanderen 

Weten wat er in je containers zit, is net zo belangrijk als weten wie ze heeft gebouwd. Daar komen SBOM's (Software Bill of Materials) om de hoek kijken. Ze vermelden alle componenten in je containerimage, een beetje zoals een voedingswaarde-etiket voor je software. 

Met onze CodeSign Secure kunt u uw SBOM's ondertekenen en direct aan uw containerimages koppelen. Dit betekent dat iedereen die uw image ophaalt, zowel de image als de SBOM kan controleren om te bevestigen dat ze legitiem en onaangetast zijn. 

Ons platform ondersteunt populaire SBOM-formaten zoals SPDX, dus u bent gedekt, ongeacht welke tooling u al gebruikt. En het beste is nog wel dat u deze controles kunt afdwingen. Als een image wordt weergegeven zonder een ondertekende SBOM of als de SBOM niet overeenkomt met wat verwacht wordt, kunt u de implementatie direct blokkeren. 

Geen SBOM? Geen implementatie. Simpel. 

Zo krijgt u inzicht in wat er gebeurt en kunt u problemen signaleren voordat ze later tot beveiligingsproblemen leiden. 

CodeSign Veilige en Post-Quantum Cryptografie 

Quantum computing is er nog niet, maar zodra het er is, kunnen veel huidige encryptiemethoden in de problemen komen. Algoritmes zoals RSA en ECC, die we nu gebruiken voor ondertekening, maken geen schijn van kans tegen een krachtige quantumcomputer. 

Daarom is ons platform, CodeSign Secure, is nu klaar met ondersteuning voor LMS (Leighton-Micali Signature), een van de post-kwantumalgoritmen die door NIST worden aanbevolen. LMS is ontworpen om krachtig te blijven, zelfs als quantumcomputers een echte bedreiging vormen. 

U kunt ons platform nu al testen met LMS om te zien hoe post-quantum signing in uw pipeline past. Het werkt met HSM's die LMS ondersteunen en integreert net als elk ander algoritme dat CodeSign Secure verwerkt. Er zijn geen speciale trucs nodig. 

We zullen in de toekomst ondersteuning blijven toevoegen voor meer post-kwantumalgoritmen naarmate de standaarden definitief worden, waaronder die van de NIST PQC-competitie. Dus wanneer de overstap naar kwantumveilige ondertekening noodzakelijk wordt, hoeft u zich geen zorgen te maken; wij staan ​​voor u klaar.

Functies op ondernemingsniveau

Wanneer u codeondertekening op grote schaal uitvoert, hebt u meer nodig dan alleen een handtekening. U hebt controle, inzicht en de flexibiliteit nodig om aan te sluiten bij de werkwijze van uw team. 

  • Rolgebaseerde toegangscontrole en auditing: Niet iedereen zou elke afbeelding moeten kunnen ondertekenen. Met RBAC van CodeSign Secure kunt u gedetailleerde machtigingen instellen, zodat alleen uw release engineers productiebuilds kunnen goedkeuren, terwijl ontwikkelaars toegang krijgen tot omgevingen met een lager risico. Elke ondertekeningsactie wordt automatisch geregistreerd, waardoor u een volledig audittrail krijgt van wie wat, wanneer en met welke sleutel heeft ondertekend. 
  • Centraal dashboard voor zichtbaarheid van ondertekening: De tijd van het zoeken naar logs van meerdere CI-taken is voorbij. Het dashboard van ons platform brengt al je ondertekeningsgebeurtenissen samen op één plek, zodat je in één oogopslag kunt zien welke afbeeldingen geldige handtekeningen hebben, welke sleutels ze hebben gebruikt en welke verificaties zijn mislukt. Als er iets niet klopt, zie je het meteen en kun je doorklikken voor meer informatie. 
  • API-First-architectuur voor aangepaste integraties: Wilt u ons platform koppelen aan uw eigen tools of een aangepaste workflow automatiseren? Alle functies van CodeSign Secure worden beschikbaar gesteld via een goed gedocumenteerde REST API, zodat u vrijwel alles kunt scripten om een ​​sign-and-push-stap in uw eigen CI-tool te activeren, interne rapportages te bouwen of te integreren met het beveiligingsticketingsysteem dat u al gebruikt. 

Dankzij deze zakelijke functies ondertekent CodeSign Secure niet alleen uw afbeeldingen, maar helpt het u ook bij het beheren en bewaken van elke stap van het proces. 

Oplossing voor codeondertekening voor bedrijven

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

Conclusie 

Bedreigingen voor de toeleveringsketen verdwijnen niet en ze negeren is geen optie. Maar alles op slot doen hoeft u niet te vertragen. Met onze CodeSign Securekrijgt u een tool die naadloos aansluit op uw bestaande pijplijn, sterke beveiliging toevoegt waar dat nodig is en ervoor zorgt dat u de controle behoudt, van build tot implementatie. 

Van het ondertekenen van containerimages en SBOM's tot het verifiëren ervan met HSM-ondersteunde sleutels en het voorbereiden op een kwantumveilige toekomst: ons platform helpt u aan alle eisen te voldoen, zonder dat het uw team extra belast. 

Bent u klaar om containerbeveiliging serieus te nemen zonder uw workflows ingewikkelder te maken? Probeer dan onze CodeSign Secure.