Zephyrnet-logo

8 strategieën voor het verbeteren van de beveiliging van codeondertekening

Datum:

COMMENTAAR

Het recente nieuws dat hackers het bedrijf voor externe toegang hadden geschonden AnyDesk scheen een scherp licht op de noodzaak voor bedrijven om lang en grondig te kijken naar praktijken voor het ondertekenen van codes om een ​​veiligere software-toeleveringsketen te helpen garanderen.  

Code-ondertekening voegt een digitale handtekening toe aan software, firmware of applicaties die garandeert dat de gebruikerscode afkomstig is van een vertrouwde bron en dat er niet mee is geknoeid sinds deze voor het laatst werd ondertekend. Maar het ondertekenen van code is slechts zo goed als de uitvoering ervan, en ontoereikende praktijken kunnen leiden tot malware-injecties, geknoei met code en software en imitatie-aanvallen. 

Privésleutels moeten worden beschermd, maar veel ontwikkelaars onderhouden (voornamelijk uit gemaksoverwegingen) hun eigen sleutels en slaan deze op hun lokale machines op of bouwen servers. Hierdoor zijn ze vatbaar voor diefstal en misbruik, en ontstaan ​​er blinde vlekken voor beveiligingsteams.  

Naar aanleiding van de SolarWinds-hack in 2020 heeft het Certificate Authority/Browser (CA/B) Forum een ​​nieuwe set uitgebracht basisvereisten voor het onderhouden van codeondertekeningscertificaten die het gebruik van hardwarebeveiligingsmodules (HSM's) verplicht stellen, apparaten die cryptografische sleutels onderhouden en beveiligen, evenals andere maatregelen om privésleutels te beschermen. 

HSM's bieden het hoogste beveiligingsniveau, maar verhogen ook de kosten, complexiteit en onderhoudseisen. Tenzij ze kunnen worden geïntegreerd in de tools voor het ondertekenen van code die door het DevOps-team worden gebruikt, kan het verbreken van de verbinding de toegang tot het ondertekenen van code bemoeilijken en het proces vertragen.  

Door de migratie naar de cloud heeft beveiliging een hogere prioriteit gekregen, maar de cloud biedt ook een oplossing voor het ondertekenen van code. Cloudcodeondertekening en HSM's kunnen de snelheid en flexibiliteit bieden die ontwikkelaars willen, evenals gecentraliseerde controle die gedistribueerde ontwikkelingsteams ondersteunt, integreert in de ontwikkelingsprocessen en gemakkelijker kan worden gemonitord door de beveiliging. 

De reis naar geïntegreerde codeondertekening 

Met de recente wijzigingen van de CA / B-forumis het tijd voor organisaties om aan een reis te beginnen om hun codeondertekening te moderniseren met gecentraliseerde controle ter ondersteuning van ontwikkelingsteams. Veel bedrijven blijven in de ‘ad hoc’-fase, waarin sleutels lokaal worden onderhouden en ontwikkelaars een verscheidenheid aan processen en tools voor het ondertekenen van code gebruiken. Anderen hebben de controle gecentraliseerd om beveiligingsteams zichtbaarheid en bestuur te geven door HSM's te gebruiken om sleutels te beveiligen, maar het gebruik van afzonderlijke tools voor het ondertekenen van code heeft nog steeds invloed op de snelheid van softwareontwikkeling. 

De ideale, volwassen structuur vereist een integratie van belangrijke beveiligings-, code-ondertekeningstools en ontwikkelingsworkflows om het proces naadloos en gestroomlijnd te maken voor alle builds, containers, artefacten en uitvoerbare bestanden. Beveiligingsteams beheren de HSM's en krijgen volledig inzicht in de ondertekening van code, terwijl ontwikkelaars nu over een flexibele en snelle ontwikkelingspijplijn beschikken. 

Een aantal best practices kunnen u helpen de weg te effenen op dit traject: 

  • Beveilig uw sleutels: Bewaar codeondertekeningssleutels op een veilige locatie, zoals een HSM die voldoet aan de cryptografische vereisten van het CA/B Forum (FIPS 140-2 Level 2 of Common Criteria EAL 4+). HSM's zijn fraudebestendig en voorkomen dat privésleutels worden geëxporteerd.

  • Toegang controleren: Minimaliseer het risico van ongeautoriseerde toegang en misbruik van privésleutels door de toegang te beperken via op rollen gebaseerde toegangscontrole. Definieer goedkeuringsworkflows en dwing beveiligingsbeleid af om de toegang te reguleren tot alleen het noodzakelijke personeel, en houd auditlogboeken bij waarin wordt vastgelegd wie het ondertekeningsverzoek heeft geactiveerd, wie toegang heeft gehad tot de sleutels en waarom. 

  • Toetsen draaien: Als één sleutel wordt gecompromitteerd, lopen alle releases die ermee zijn ondertekend het risico gecompromitteerd te worden. Roteer de codeondertekeningssleutels regelmatig en gebruik unieke en afzonderlijke sleutels voor het ondertekenen van verschillende releases binnen meerdere DevOps-teams. 

  • Tijdstempelcode:  Code-ondertekenende certificaten hebben een beperkte levensduur: één tot drie jaar en deze wordt korter. Door code van een tijdstempel te voorzien tijdens het ondertekenen ervan, kan de legitimiteit van een handtekening worden geverifieerd, zelfs nadat het certificaat is verlopen of ingetrokken, waardoor het vertrouwen van de ondertekende code en software wordt vergroot.

  • Code-integriteit controleren: Voer een volledige codebeoordeling uit voordat u de definitieve build ondertekent en vrijgeeft door de code op de buildserver te vergelijken met de broncoderepository en alle handtekeningen van de ontwikkelaars te verifiëren om er zeker van te zijn dat er niet mee is geknoeid. 

  • Centraliseer het beheer: Bedrijven zijn tegenwoordig mondiaal. Een gecentraliseerd proces voor het ondertekenen van code kan helpen bij het monitoren van ondertekeningsactiviteiten en certificaten in de hele onderneming, ongeacht waar de ontwikkelaars zich bevinden. Het verbetert de zichtbaarheid, vergroot de verantwoordelijkheid en elimineert beveiligingsproblemen.

  • Beleid afdwingen: Standaardiseer het codeondertekeningsproces door beleid te definiëren en in kaart te brengen, inclusief machtigingen voor sleutelgebruik, goedkeuringen, vervaldatum van sleutels, CA-type, sleutelgrootte, type ondertekeningsalgoritme en meer. Automatiseer de handhaving van het beleid om ervoor te zorgen dat alle code, bestanden en software worden ondertekend op basis van het beleid en voldoen aan de industriestandaarden. 

  • Vereenvoudig het ondertekenen van code: Het integreren en automatiseren van codeondertekening met CI/CD-tools vereenvoudigt het proces voor DevOps zonder de veiligheid in gevaar te brengen, terwijl de snelheid en flexibiliteit worden bevorderd.

In een wereld van continue integratie en continue implementatie bieden sterke best practices op het gebied van code-ondertekening een manier van onschatbare waarde om vertrouwen in het ontwikkelingsproces op te bouwen en een veiligere softwaretoeleveringsketen mogelijk te maken.

spot_img

Laatste intelligentie

spot_img