Codeondertekening is een cruciaal mechanisme om authenticiteit en vertrouwen te waarborgen en ervoor te zorgen dat software tijdens de distributie niet wordt gecompromitteerd. Onjuiste codeondertekeningspraktijken kunnen echter aanzienlijke risico's met zich meebrengen. In deze blog onderzoeken we het belang van codeondertekening en gaan we dieper in op de mogelijke gevolgen van een gecompromitteerd codeondertekeningsproces.
Het versterken van softwarebeveiliging door middel van codeondertekening, kort gezegd: de terugkerende incidenten (NotPetya, ShadowPad, ASUS, CCleaner) hebben allemaal één gemeenschappelijke oorzaak: een gecompromitteerde build of sleutel leidde tot een legitieme handtekening op kwaadaardige code. Sleutelbeheer met HSM-ondersteuning, gecentraliseerd sleutelbeheer en verplichte pre-ondertekeningsscans voorkomen specifiek herhaling, niet zozeer algemene bewustwording.
Key Takeaways
- NotPetya (verspreid via MeDoc) en ShadowPad (verspreid via NetSarang's Xmanager/Xshell) zijn twee verschillende supply chain-aanvallen uit 2017; beide maakten gebruik van een compromitterend bouwproces om malware te verspreiden via een legitiem ondertekende update, maar ze waren gericht op verschillende bedrijven en software.
- Voor de volledige incidentresponsprocedure bij een vermoeden van een actieve inbreuk, inclusief dreigingsmodel, beheersing, intrekking en herstel, zie Versterk de beveiliging van codeondertekening tegen integriteitsomzeilingen..
De verwoestende impact van een mislukte codeondertekening
Hieronder volgen enkele opmerkelijke aanvallen die plaatsvonden als gevolg van een inbreuk op of een storing in de codeondertekening:
-
NotPetya-aanval
In juni 2017 werd het wereldwijde scheepvaartconglomeraat AP Moller-Maersk het slachtoffer van de NotPetya-malwareaanval. De aanval was afkomstig van een klein Oekraïens softwarebedrijf, MEDoc, dat slachtoffer was geworden van door de staat gesponsorde hackers. Door kwetsbaarheden in de beveiligingsinfrastructuur van het bedrijf te misbruiken, kregen de hackers toegang tot de codeondertekeningssleutels, waardoor ze malware konden injecteren in een legitieme software-update. Deze kwaadaardige update werd vervolgens verspreid onder klanten, waaronder AP Moller-Maersk, met als gevolg een wijdverspreide infectie en aanzienlijke verstoringen.
-
ShadowPad Supply Chain-aanval
In 2017 werd de buildserver van NetSarang, een ontwikkelaar van serverbeheersoftware zoals Xmanager en Xshell, gecompromitteerd door een aparte supply chain-aanval . Aanvallers voegden een backdoor, later ShadowPad genoemd, toe aan een legitieme software-update. NetSarang ondertekende deze update vervolgens digitaal en distribueerde deze naar klanten die niet wisten dat de build was gemanipuleerd. Dit incident, dat in augustus 2017 werd ontdekt, betrof een compleet ander bedrijf en product dan de NotPetya/MeDoc-aanval hierboven, ondanks dat beide hetzelfde patroon volgden: de build compromitteren en het normale ondertekeningsproces de malware laten legitimeren.
-
ASUS Live Update-hack
In 2019 infiltreerden hackers de webupdateserver van ASUS en injecteerden malware in legitieme ASUS-stuurprogramma-updates. De gecompromitteerde codeondertekeningssleutels zorgden ervoor dat de kwaadaardige updates authentiek leken, met als gevolg dat meer dan een miljoen ASUS-computers geïnfecteerd raakten. Deze aanval benadrukte de kwetsbaarheid van softwareleveringsketens en het belang van robuuste codeondertekeningspraktijken.
-
CCleaner-achterdeur
In 2017 werd de populaire systeemoptimalisatietool CCleaner gehackt toen hackers malware injecteerden in een van hun officiële software-updates. De aanvallers ondertekenden de kwaadaardige update met een geldig codeondertekeningscertificaat , waardoor gebruikers dachten dat het een legitieme update was. Het incident trof miljoenen gebruikers en onderstreepte het belang van de integriteit van codeondertekening.
Deze aanvallen vormen een duidelijke herinnering aan de cruciale rol die codeondertekening speelt bij het waarborgen van de betrouwbaarheid en authenticiteit van software.
Het beoordelen van softwarevertrouwen en screeningprocessen
Gezien dergelijke incidenten is het cruciaal om ons af te vragen hoeveel vertrouwen we hebben in de software die we installeren en gebruiken. Bedrijven vertrouwen op talloze externe softwarepakketten ter ondersteuning van hun dagelijkse activiteiten. Het ontbreken van strenge controleprocedures voor deze softwarepakketten kan echter aanzienlijke risico's met zich meebrengen. Om de softwarebeveiliging te verbeteren, kunt u de volgende maatregelen overwegen:
-
Controle en whitelisting
Implementeer een robuust proces om software te controleren en goed te keuren voordat gebruikers deze kunnen installeren. Overweeg een lijst met vertrouwde software op te stellen en beperk de installatie tot alleen die goedgekeurde applicaties.
-
Interne softwareproductie
Erken het belang van de beveiliging van de software van uw bedrijf. Beschouw uw privésleutels voor codeondertekening als de sleutels tot het koninkrijk van uw bedrijf. Implementeer strikte toegangscontroles, versleuteling en monitoringmechanismen om deze sleutels te beschermen tegen diefstal of misbruik. Overweeg het gebruik van hardwarebeveiligingsmodules (HSM's) voor het opslaan en beschermen van uw sleutels voor codeondertekening, aangezien deze een hoge mate van beveiliging en bescherming tegen manipulatie bieden.
-
Integriteit van de toeleveringsketen
Zorg ervoor dat de software die u van externe bronnen ontvangt, grondige beveiligingscontroles ondergaat. Implementeer mechanismen om de integriteit en authenticiteit van software-updates te verifiëren vóór installatie.
Het probleem van codeondertekening begrijpen
De effectiviteit van codeondertekening bij het beschermen van softwaretoeleveringsketens is de afgelopen drie decennia bewezen. Er zijn echter bepaalde uitdagingen die de effectiviteit ervan belemmeren. Organisaties hebben vaak moeite met het effectief beheren van privé-codeondertekeningssleutels, wat leidt tot kwetsbaarheden en mogelijke inbreuken. Laten we enkele veelvoorkomende problemen onderzoeken:
-
Gebrek aan gecentraliseerd sleutelbeheer
Veel internationale organisaties hebben geografisch verspreide teams van softwareontwikkelaars. Deze teams hebben toegang nodig tot privésleutels voor het ondertekenen van code om hun software te kunnen ondertekenen. Wanneer deze sleutels echter op de laptops van ontwikkelaars, buildservers of webupdateservers worden opgeslagen, lopen ze het risico gestolen of misbruikt te worden.
-
Het niet erkennen van het belangrijkste belang
Privécode-ondertekeningssleutels moeten worden beschouwd als de hoofdsleutels van uw bedrijf. Helaas onderschatten organisaties vaak het belang ervan en nemen ze onvoldoende beveiligingsmaatregelen om ze te beschermen.
-
Onvoldoende beveiligingspraktijken
Onvoldoende beveiligingsmaatregelen, zoals zwak wachtwoordbeheer, gebrek aan versleuteling en ontoereikende toegangscontroles, dragen verder bij aan kwetsbaarheden in codeondertekening.
Best practices voor robuuste codeondertekening
Om de beveiliging en integriteit van uw software-infrastructuur te verbeteren, is het essentieel om best practices voor codeondertekening te implementeren. Overweeg de volgende aanbevelingen:
-
Hardware Security Modules (HSM's) implementeren
HSM's bieden een speciale en veilige omgeving voor sleutelopslag en cryptografische bewerkingen. Door gebruik te maken van HSM's kunnen organisaties hun privésleutels beschermen tegen fysieke en logische aanvallen, waardoor de integriteit van het codeondertekeningsproces wordt gewaarborgd.
-
Regelmatig toetsen draaien
Vervang de sleutels voor codeondertekening periodiek om de gevolgen van mogelijke inbreuken op de sleutels te beperken. Door de sleutels regelmatig bij te werken, minimaliseren organisaties het risico op ongeautoriseerde toegang en behouden ze de betrouwbaarheid van hun ondertekende software.
-
Gebruik codeondertekeningsbeleid en -procedures
Ontwikkel uitgebreide beleidsregels en procedures voor codeondertekening die de rollen, verantwoordelijkheden en werkprocessen voor het codeondertekeningsproces definiëren. Zorg ervoor dat medewerkers de juiste training krijgen en zich aan deze beleidsregels houden om een ​​veilige codeondertekeningsomgeving te waarborgen.
-
Continue monitoring en auditing
Implementeer een robuust monitorings- en auditmechanisme om verdachte activiteiten met betrekking tot codeondertekening te detecteren en te onderzoeken. Controleer regelmatig logbestanden en voer audits uit om potentiële beveiligingslekken te identificeren en onmiddellijk corrigerende maatregelen te nemen.
-
Scannen op virussen
Hoewel codeondertekening authenticatie biedt, garandeert het niet de veiligheid van de code zelf. Daarom is het ten zeerste aan te raden om de code grondig te scannen op virussen en malware voordat deze wordt gepubliceerd en ondertekend met digitale certificaten . Het uitvoeren van deze scans verbetert de algehele kwaliteit van de code en helpt bij het identificeren en beperken van potentiële beveiligingsrisico's.
Wilt u weten hoe wij u kunnen helpen?
CodeSign Secure van Encryption Consulting biedt organisaties een complete oplossing voor codeondertekening, afgestemd op hun specifieke behoeften. Met deze oplossing kunnen organisaties een sterk beleid voor codeondertekening opstellen dat beveiligingsrisico's effectief beperkt en de authenticiteit van hun software waarborgt. Ons product stroomlijnt het codeondertekeningsproces en biedt een reeks functies die zijn ontworpen om de beveiliging te verbeteren.
Een belangrijk kenmerk van CodeSign Secure is het veilige sleutelbeheer . Organisaties kunnen hiermee hun privésleutels van het codeondertekeningscertificaat veilig opslaan door integratie met toonaangevende, FIPS- gecertificeerde Hardware Security Modules (HSM's). Deze integratie elimineert de potentiële risico's van gestolen, beschadigde of misbruikte sleutels, omdat de privésleutels de HSM tijdens het ondertekeningsproces nooit verlaten.
Conclusie
Codeondertekening is een cruciaal onderdeel om de authenticiteit en betrouwbaarheid van software te waarborgen. De potentiële gevolgen van een gecompromitteerd codeondertekeningsproces zijn echter ernstig, zoals blijkt uit opvallende aanvallen zoals de NotPetya-malwareaanval op AP Moller-Maersk en andere incidenten. Om uw software-infrastructuur te beschermen, is het essentieel om robuuste codeondertekeningspraktijken te implementeren en prioriteit te geven aan de beveiliging van privésleutels voor codeondertekening. Organisaties kunnen de risico's die gepaard gaan met mislukte codeondertekening beperken door best practices te volgen, zoals het gebruik van HSM's, regelmatige sleutelrotatie, strikt codeondertekeningsbeleid, continue monitoring en virusscans.
Veelgestelde Vragen / FAQ
Waren NotPetya en ShadowPad dezelfde aanval?
Nee. NotPetya werd verspreid via een gecompromitteerde update van MEDoc, Oekraïense boekhoudsoftware. ShadowPad was een apart incident, verspreid via een gecompromitteerde versie van NetSarangs Xmanager- en Xshell-serverbeheertools. Beide volgden hetzelfde patroon van compileren, compromitteren en vervolgens ondertekenen, maar het betreft afzonderlijke aanvallen op verschillende bedrijven.
Wat is de meest effectieve maatregel tegen dit aanvalspatroon?
HSM-beveiligde sleutelopslag in combinatie met malware-scanning vóór ondertekening. Geen van beide is op zichzelf voldoende: HSM-opslag beschermt de sleutel tegen diefstal, maar detecteert geen kwaadaardige code die al in de build aanwezig is; scanning detecteert wel kwaadaardige code, maar beschermt een blootgestelde sleutel niet.
