Beskrivning
Attacker i leveranskedjan för programvara är inte bara en teoretisk risk längre; de händer, och de slår hårt. Incidenter som SolarWinds brott och Log4Shell-sårbarheten gjorde det smärtsamt tydligt att angripare inte längre bara riktar in sig på din kod; de jagar allt som rör den, inklusive verktyg, bibliotek och containrar du förlitar dig på.
I den här verkligheten är det inte bra att signera och verifiera containeravbildningar; det är ett måste. Om du använder osignerade avbildningar eller hoppar över signaturkontroller under distributionen, lämnar du dörren vidöppen för angripare att smyga in skadlig kod utan att du ens märker det.
Det är där vår CodeSign Secure kommer in i bilden.
CodeSign Secure gör det enkelt att lägga till digitala signaturer till dina containeravbildningar och verifiera dem innan de ens når produktionsläget. Oavsett om du kör en snabb CI/CD-pipeline eller hanterar hundratals mikrotjänster, hjälper det dig att låsa upp din containerförsörjningskedja utan att sakta ner något.
I de kommande avsnitten går vi igenom hur vår CodeSign Secure passar in i ditt arbetsflöde, hur den säkrar dina bilder med HSM-backade nycklar och hur du kan tillämpa signaturkontroller innan något distribueras.
Kodsigneringens roll i DevSecOps
DevOps handlar om hastighet, att skicka uppdateringar snabbt, automatisera allt och hålla saker igång. Men med den hastigheten kommer risker. Ju snabbare du levererar kod, desto större är risken att något otillförlitligt slinker igenom. Det är där DevSecOps kommer in, och bakar in säkerhet direkt i processen istället för att lägga till den i slutet.
Ett av de bästa sätten att bygga upp det förtroendet är med kodsignering. När du signerar containeravbildningar stämplar du dem i princip med en sigill som säger "Detta kommer från oss, och det har inte förstörts". Det är en enkel kontroll som gör stor skillnad för att säkerställa att det du kör i produktion är exakt vad du tänkt dig att bygga.
Vår plattform, CodeSign Secure, kopplas in i din CI/CD pipeline Så signering är inte en separat uppgift; det är bara en del av bygget. Varje avbildning som skapas och skickas kan signeras automatiskt. Och innan den distribueras kan den verifiera signaturen för att säkerställa att ingenting har manipulerats längs vägen.
Det handlar om att sätta säkerheten på autopilot. Du ska inte behöva välja mellan att agera snabbt och att vara säker med vår plattform; du får båda.
Signera containerbilder med CodeSign Secure
Innan du fortsätter med bildsignering måste Docker och CoSign (vårt CodeSign Secures CLI-verktyg) installeras på den maskinen.
Följ stegen nedan för att installera Cosign
Installera CoSign
# binär
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
# varv/min
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
Installera och konfigurera Python och Docker
sudo apt-get install docker.io
sudo apt-get install python-is-python3
sudo apt installera python3-pip
sudo apt-get install python3-docker
sudo apt-get -y installera python3-openssl
sudo apt-get install -y dbus-användarsession
sudo apt-get install -y docker-ce-rootless-extras
Om docker-ce-rootless-extras ger ett felmeddelande, följ stegen nedan:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/nyckelringar
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 behöver du logga in på ditt Docker Hub-konto genom att köra kommandot nedan
sudo docker inloggning
Konfigurera containersignering
- Ladda ner verktygen för containersignering från CodeSign Secure-portalen.
- Gå till mappen SignImage.
-
Öppna filen ”ec-signer.conf” och uppdatera URL:en för samdesign, sökvägen till ditt SSL-autentiseringscertifikat och lösenordet för certifikatet.
OBS: SSL-autentiseringscertifikatet och lösenordet kan genereras från CodeSignSecure-portalen.
- Öppet terminal
- Utförande
./ec-signer –projektnamn= –bildnamn= –docker_användarnamn=
-
Du kommer att bli ombedd att ange Docker Hub-lösenordet och root-behörigheterna till den aktuella användaren.
-
Du kommer att kunna se en ny signaturbild på ditt Docker Hub-konto.
Verifierar containeravbildning
Verifiering av containeravbildningar gör att du kan distribuera endast signerade Docker-avbildningar och avvisa osignerade. Kubernetes måste distribueras för att verifiera containeravbildningens signering.
Installera Kubernetes
Följ följande kommando för att installera Kubernetes.
curl -sfL https://get.k3s.io | sh –
Skapa Kubernetes-tjänster
Innan vi kan verifiera en avbildning i en Kubernetes-miljö måste följande tjänster distribueras i Kubernetes-klustret
- Verifiera bildtjänst
- Bildvaliderings-webhook-tjänst
För att skapa Verify Image-tjänsten, följ stegen nedan:
- Gå till katalogen ../VerifyImage/image-verifier.
-
Skapa en Docker-avbildning med namnet "verifyImage" med hjälp av Dockerfilen som finns i mappen
Till exempel:
sudo docker build -t aryan34/demo:verifieraBild
där ”aryan34” är Docker-användarnamnet och ”demo” är Docker Hub-arkivets namn.
-
Skicka nu den här bilden till ditt Docker Hub-konto
Till exempel:
sudo docker image push aryan34/demo:verifyImage
där ”aryan34” är Docker-användarnamnet och ”demo” är Docker Hub-arkivets namn.
- Öppna nu filen validator-deploy.yaml och uppdatera följande inställningar
- cert_namn
- server_url
- pfx_file_path
- pfx_file_passwd
- DOCKER_ANVÄNDARNAMN
- DOCKER_LÖSENORD
- bild (OBS: Behåll bildnamnet som ”verifyImage”. Ändra endast Docker-användarnamnet och arkivnamnet.)
-
Distribuera bildverifieringstjänsten
sudo kubectl apply -f validator-deploy.yaml
För att skapa bildvalideringstjänsten, följ stegen nedan:
- Gå till katalogen ../VerifyImage/validating-webhook.
-
Skapa en Docker-avbildning med namnet "image-validation-webhook" med hjälp av Dockerfilen som finns i mappen.
Till exempel:
sudo docker build -t aryan34/demo:image-validation-webhook
Där ”aryan34” är Docker-användarnamnet och ”demo” är Docker Hub-arkivets namn.
-
Skicka nu den här bilden till ditt Docker Hub-konto
Till exempel:
sudo docker image push aryan34/demo:image-validation-webhook
där ”aryan34” är Docker-användarnamnet och ”demo” är Docker Hub-arkivets namn.
-
Distribuera nu webhook-hemligheterna och yaml-konfigurationsfilerna.
sudo kubectl apply -f webhook-secret.yaml
sudo kubectl apply -f webhook-config.yaml
-
Öppna nu filen webhook-deploy.yaml och uppdatera följande inställningar
- bild (OBS: Behåll bildnamnet som "image-validation-webhook". Ändra endast Docker-användarnamnet och arkivnamnet.)
-
Distribuera bildvalideringswebbhooken
sudo kubectl apply -f webhook-deploy.
-
Om tjänsterna har distribuerats korrekt, när vi kör följande kommando –
sudo kubectl hämta pods -alla-namnrymder
Vi borde få följande utdata –

Testning
Om vi försöker distribuera en containeravbildning som inte är signerad kommer distributionen att misslyckas. Vi kommer bara att kunna distribuera en signerad avbildning tack vare våra verifierings- och valideringstjänster för Kubernetes.
Distribuera en osignerad avbildning
Vi behöver skapa en yaml-fil för den osignerade bilden.
Vi har skapat en demo-deployment-unsigned.yaml-fil för att distribuera den osignerade aryan34/demo:notSigned-avbildningen.
Här är ett exempel på en Yaml-fil. Kom ihåg att ändra namnet på den distribuerade tjänsten (demo-deployment-unsigned), avbildningsnamnet och portnumret.
apiVersion: apps/v1 kind: Distributionsmetadata: namn: demo-deployment-unsigned labels: app: demo spec: replikor: 1 # Antal önskade repliker väljare: matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - namn: demobild: aryan34/demo:notSigned # osignerad demobild ports: - containerPort: 8997 # Port att exponera
För att distribuera den osignerade avbildningen med Kubernetes, kör följande kommando.
sudo kubectl apply -f demo-deployment-unsigned.yaml

Distribuera en signerad avbildning
Här är ett exempel på en Yaml-fil. Kom ihåg att ändra namnet på den distribuerade tjänsten (deployed-demo), avbildningsnamnet och portnumret.
apiVersion: apps/v1 kind: Distributionsmetadata: name: demo-deployment labels: app: demo spec: replikor: 1 # Antal önskade replikor selector: matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - name: demo image: aryan34/demo:new3 # signerad demobild ports: - containerPort: 8999 # Port att exponera
För att distribuera den signerade avbildningen med Kubernetes, kör följande kommando.
sudo kubectl apply -f demo-deployment.yaml
Om du nu kontrollerar alla poddar ser du en demo-distributionstjänst som körs.

CodeSign Secure + SBOM: Säkerställer transparens i leveranskedjan
Att veta vad som finns inuti dina containrar är lika viktigt som att veta vem som byggt dem. Det är där SBOM:er (Software Bill of Materials) kommer in i bilden. De listar alla komponenter i din containrarbild, ungefär som en näringsetikett för din programvara.
Med vår CodeSign Secure kan du signera dina SBOM:er och bifoga dem direkt till dina containeravbildningar. Det innebär att alla som hämtar din avbildning kan kontrollera både avbildningen och SBOM:en för att bekräfta att de är legitima och oanvända.
Vår plattform stöder populära SBOM-format som SPDX, så du är täckt oavsett vilka verktyg du redan använder. Och det bästa av allt? Du kan framtvinga dessa kontroller. Om en avbildning visas utan en signerad SBOM eller om SBOM:en inte matchar förväntat kan du blockera distributionen direkt.
Ingen SBOM? Ingen driftsättning. Enkelt.
Detta ger dig insyn i vad som körs och det hjälper till att upptäcka problem innan de förvandlas till säkerhetsproblem senare.
CodeSign säker och postkvantkryptografi
Kvantberäkning är inte här än, men när den väl dyker upp kan många av dagens krypteringsmetoder få problem. Algoritmer som RSA och ECC, som vi förlitar oss på för signering idag, kommer inte att ha en chans mot en tillräckligt kraftfull kvantmaskin.
Det är därför vår plattform, CodeSign Secure, är nu redo med stöd för LMS (Leighton-Micali Signature), en av de postkvantalgoritmer som rekommenderas av NIST. LMS är utformat för att förbli starkt även om kvantdatorer blir ett verkligt hot.
Du kan redan börja testa vår plattform med LMS för att se hur post-kvantumsignering passar in i din pipeline. Den fungerar med HSM:er som stöder LMS och integreras precis som alla andra algoritmer som CodeSign Secure hanterar. Inga speciella knep behövs.
Framöver kommer vi att fortsätta lägga till stöd för fler postkvantalgoritmer allt eftersom standarderna färdigställs, inklusive de från NIST PQC-tävlingen. Så när övergången till kvantsäker signering blir nödvändig behöver du inte krångla; vi har det du behöver.
Enterprise-grade funktioner
När du kör kodsignering i stor skala behöver du mer än bara en signatur. Du behöver kontroll, insyn och flexibilitet för att passa in i hur ditt team arbetar.
- Rollbaserad åtkomstkontroll och granskning: Alla borde inte kunna signera varje image. Med vår CodeSign Secures RBAC kan du konfigurera detaljerade behörigheter så att endast dina releaseingenjörer kan godkänna produktionsversioner, medan utvecklare får åtkomst till miljöer med lägre risk. Varje signeringsåtgärd loggas automatiskt, vilket ger dig en fullständig revisionslogg över vem som signerade vad, när och med vilken nyckel.
- Central instrumentpanel för signeringssynlighet: Borta är dagarna då man behövde leta efter loggar över flera CI-jobb. Vår plattforms instrumentpanel samlar alla dina signeringshändelser på ett ställe och visar dig med en snabb blick vilka bilder som har giltiga signaturer, vilka nycklar de använde och eventuella misslyckade verifieringar. Om något ser fel ut ser du det direkt och kan klicka dig vidare för mer information.
- API-först-arkitektur för anpassade integrationer: Vill du koppla vår plattform till dina egna verktyg eller automatisera ett anpassat arbetsflöde? Alla CodeSign Secure-funktioner exponeras via ett väl dokumenterat REST API så att du kan skripta praktiskt taget vad som helst för att utlösa ett sign-and-push-steg i ditt skräddarsydda CI-verktyg, bygga intern rapportering eller integrera med det säkerhetsärendesystem du redan använder.
Med dessa företagsfunktioner signerar CodeSign Secure inte bara dina bilder utan hjälper dig också att hantera och övervaka varje steg i processen.
Slutsats
Hoten mot leveranskedjan försvinner inte, och att ignorera dem är inte ett alternativ. Men att stänga ner saker behöver inte sakta ner dig. Med våra CodeSign Secure, får du ett verktyg som passar perfekt in i din befintliga pipeline, lägger till stark säkerhet där det behövs och ger dig kontroll från byggnation till driftsättning.
Från att signera containeravbildningar och SBOM:er till att verifiera dem med HSM-baserade nycklar och förbereda sig för en kvantsäker framtid, hjälper vår plattform dig att kontrollera alla krav, utan att det blir mer krångligt för ditt team.
Om du är redo att ta containersäkerhet på allvar utan att komplicera dina arbetsflöden, prova vår CodeSign Secure.
