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.
NOTITIE: Het SSL-authenticatiecertificaat en wachtwoord kunnen worden gegenereerd via het CodeSignSecure-portaal.
- 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
-
U zult een nieuwe handtekeningafbeelding zien in uw Docker Hub-account.
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
- certificaatnaam
- server_url
- pfx_bestandspad
- pfx_bestand_wachtwoord
- DOCKER_GEBRUIKERSNAAM
- DOCKER_WACHTWOORD
- Afbeelding (LET OP: behoud de afbeeldingsnaam als "verifyImage". Wijzig alleen de Docker-gebruikersnaam en de repositorynaam.)
-
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
- Afbeelding (LET OP: behoud de afbeeldingsnaam als "image-validation-webhook". Wijzig alleen de Docker-gebruikersnaam en de repositorynaam.)
-
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:

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

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.

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