Zephyrnet-logo

8 strategier for å forbedre kodesigneringssikkerheten

Dato:

KOMMENTAR

Den siste nyheten om at hackere hadde brutt fjerntilgangsløsningsselskapet AnyDesk kastet et skarpt lys over behovet for selskaper å ta en lang, hard titt på kodesigneringspraksis for å bidra til å sikre en sikrere programvareforsyningskjede.  

Kodesignering legger til en digital signatur til programvare, fastvare eller applikasjoner som sikrer at brukerkoden kommer fra en pålitelig kilde og ikke har blitt tuklet med siden den sist ble signert. Men kodesignering er bare så god som utførelse, og utilstrekkelig praksis kan føre til injeksjoner av skadelig programvare, tukling med kode og programvare og etterligningsangrep. 

Private nøkler må beskyttes, men mange utviklere (hovedsakelig av praktiske årsaker) vedlikeholder sine egne og lagrer dem på sine lokale maskiner eller bygger servere. Dette gjør dem åpne for tyveri og misbruk, og skaper blindsoner for sikkerhetsteam.  

Etter SolarWinds hack i 2020 ga Certificate Authority/Browser (CA/B) Forum ut et nytt sett med grunnleggende krav for vedlikehold av kodesigneringssertifikater som krever bruk av maskinvaresikkerhetsmoduler (HSM), enheter som vedlikeholder og sikrer kryptografiske nøkler, samt andre tiltak for å beskytte private nøkler. 

HSM gir det høyeste sikkerhetsnivået, men de øker også kostnadene, kompleksiteten og vedlikeholdskravene. Med mindre de kan integreres i kodesigneringsverktøyene som brukes av DevOps-teamet, kan frakoblingen komplisere kodesigneringstilgangen og bremse prosessen.  

Migrering til skyen har gitt sikkerhet høyere prioritet, men skyen tilbyr også en løsning for kodesignering. Skykodesignering og HSM-er kan gi hastigheten og smidigheten som utviklere ønsker, samt sentralisert kontroll som støtter distribuerte utviklingsteam, integreres i utviklingsprosessene og lettere kan overvåkes av sikkerhet. 

Reisen til integrert kodesignering 

Med de siste endringene fra CA / B Forum, er det på tide for organisasjoner å legge ut på en reise for å modernisere kodesigneringen med sentralisert kontroll for å støtte utviklingsteam. Mange selskaper forblir i «ad hoc»-stadiet, der nøkler vedlikeholdes lokalt og utviklere bruker en rekke kodesigneringsprosesser og verktøy. Andre har sentralisert kontroll for å gi sikkerhetsteam synlighet og styring ved å bruke HSM-er for å sikre nøkler, men bruk av separate kodesigneringsverktøy påvirker fortsatt hastigheten på programvareutvikling. 

Den ideelle, modne strukturen krever en integrasjon av nøkkelsikkerhet, kodesigneringsverktøy og utviklingsarbeidsflyter for å gjøre prosessen sømløs og strømlinjeformet på tvers av alle bygg, beholdere, artefakter og kjørbare filer. Sikkerhetsteam administrerer HSM-ene og får full synlighet i kodesignering, mens utviklere nå har en smidig og rask utviklingspipeline. 

Noen gode fremgangsmåter kan bidra til å bane vei for denne reisen: 

  • Sikre nøklene dine: Lagre kodesigneringsnøkler på et sikkert sted, for eksempel en HSM som overholder CA/B Forum kryptografiske krav (FIPS 140-2 Level 2 eller Common Criteria EAL 4+). HSM-er er manipulasjonssikre og forhindrer at private nøkler eksporteres.

  • Kontroller tilgang: Minimer risikoen for uautorisert tilgang og misbruk av private nøkler ved å begrense tilgangen gjennom rollebasert tilgangskontroll. Definer godkjenningsarbeidsflyter og håndhev sikkerhetspolicyer for å regulere tilgangen til kun nødvendig personale, og vedlikehold revisjonslogger som registrerer hvem som utløste signeringsforespørselen, hvem som fikk tilgang til nøklene og hvorfor. 

  • Roter tastene: Hvis én nøkkel er kompromittert, er alle utgivelsene signert med den i fare for kompromittering. Roter kodesigneringsnøkler regelmessig, og bruk unike og separate nøkler for å signere forskjellige utgivelser på tvers av flere DevOps-team. 

  • Tidsstempelkode:  Kodesigneringssertifikater har begrenset levetid - ett til tre år og krymper. Tidsstempling av kode mens du signerer den kan bekrefte legitimiteten til en signatur selv etter at sertifikatet har utløpt eller blitt tilbakekalt, noe som utvider tilliten til den signerte koden og programvaren.

  • Sjekk kodens integritet: Utfør en fullstendig kodegjennomgang før du signerer og frigjør den endelige builden ved å sammenligne koden i byggeserveren med kildekodelageret, og verifiser alle utviklersignaturer for å sikre at de er fri for manipulering. 

  • Sentraliser ledelsen: Bedrifter i dag er globale. En sentralisert kodesigneringsprosess kan hjelpe med å overvåke signeringsaktiviteter og sertifikater på tvers av bedriften, uavhengig av hvor utviklerne befinner seg. Det forbedrer synlighet, bygger ansvarlighet og eliminerer sikkerhetssårbarheter.

  • Håndheve retningslinjer: Standardiser kodesigneringsprosessen ved å definere og kartlegge retningslinjer, inkludert nøkkelbrukstillatelser, godkjenninger, nøkkelutløp, CA-type, nøkkelstørrelse, signeringsalgoritmetype og mer. Automatiser håndhevelse av retningslinjer for å sikre at all kode, filer og programvare er signert basert på retningslinjer og er i samsvar med industristandarder. 

  • Forenkle kodesignering: Integrering og automatisering av kodesignering med CI/CD-verktøy forenkler prosessen for DevOps uten at det går på bekostning av sikkerheten samtidig som det fremmer hastighet og smidighet.

I en verden med kontinuerlig integrasjon og kontinuerlig distribusjon, gir sterke kodesigneringsbestemmelser en uvurderlig måte å bygge tillit i utviklingsprosessen og muliggjøre en sikrere programvareforsyningskjede.

spot_img

Siste etterretning

spot_img