Hoppa till innehåll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

Status för attacker i programvaruleveranskedjan

Attacker i programvaruleveranskedjan

Under de senaste åren har du förmodligen hört mer än du någonsin velat eller förväntat dig att höra om attacker i leveranskedjan. Sonatypes rapport om tillståndet i programvarans leveranskedja från 2021 fann en ökning med 650 % jämfört med föregående år av attacker riktade mot öppen källkodsprogramvara det året, och trenden har fortsatt sedan dess: Sonatypes senare rapporter har spårat hundratusentals skadliga paket med öppen källkod som identifierats kumulativt sedan 2019. De studerade programvaruutvecklingsmiljöerna visade konsekvent låg grundläggande säkerhet, med konfigurationsfel i praktiskt taget alla analyserade organisationer.

Kortfattat: attacker i programvaruleveranskedjan riktar sig i allt högre grad mot byggprocessen och beroendekedjan snarare än direkt mot den levererade applikationen, från SolarWinds (2020) som äventyrar en byggprocess, till XZ Utils-bakdörren (2024) som är inbäddad av en långvarig bidragsgivare till ett allmänt använt komprimeringsbibliotek, till 3CX (2023) som upprepar SolarWinds-mönstret. Kodsignering åtgärdar den del av detta problem som handlar om förtroendeverifiering; den ersätter inte sårbarhetsskanning före signering eller integritetskontroller för byggprocessen.

Key Takeaways

  • XZ Utils-incidenten (mars 2024) är den mest sofistikerade leveranskedjeattacken som hittills avslöjats: en bidragsgivare spenderade ungefär två år på att bygga upp förtroende för projektet innan han infogade en bakdörr i ett komprimeringsbibliotek som används av SSH i större Linuxdistributioner. Den upptäcktes före bred distribution, av en utvecklare som upptäckte en oförklarlig prestandaregression, inte av någon automatiserad kontroll.
  • Den här sidan spårar incidentlandskapet och trender. För den fullständiga hotmodellen, inneslutning, återkallelse och återställningshandboken för en aktiv kompromettering, se Stärk kodsigneringssäkerheten mot integritetskringningar.

Vad är en attack i mjukvaruleveranskedjan?

När ondskefulla hackare tränger in i beroenden från tredjepartsprogramvara som används i ett flertal "nedströms"-applikationer, resulterar det i en attack mot programvaruleveranskedjan. Det gemensamma elementet är programvara med öppen källkod, ofta en automatiskt betrodd kodkälla som används av interna systemutvecklare. Angripare kan potentiellt stjäla känslig information från, störa tjänster för eller bryta sig in i nätverk hos hundratals eller till och med tusentals företag genom att infiltrera ett enda program eller bibliotek med öppen källkod.

Skador utdelats

Nyare forskning belyser tendensen att tre av fem företag utsattes för attacker från mjukvaruleveranskedjan. En branschundersökning från 2021 visade att endast 38 % av företagen uppgav att de inte påverkades av denna typ av attack det året. Alla attacker är inte likadana; vissa är stora, medan andra snabbt syns i backspegeln. Några av de uppmärksammade mjukvaruattackerna som tog internet bort från stormarna var:

  • Solvindar (december 2020)

    Hotaktörer använde Orions programvara som ett vapen för att få åtkomst till flera statliga nätverk och tusentals privata system världen över, vilket gjorde SolarWinds leveranskedjeattack till en global hackerattack. De amerikanska hälso-, finans- och utrikesdepartementen var anmärkningsvärda offer för denna attack.

  • Codecov (april 2021)

    Angripare lyckades infoga en bakdörr i Codecov för att få tillgång till känslig klientdata, vilket nyligen ledde till ett stort intrång. Mycket skickliga angripare använde en brist i hur Codecov skapade Docker-avbildningar för att utföra detta intrång. De använde detta för att ändra ett skript som lät dem starta flera attacker från en fjärrserver med hjälp av miljövariabler från Codecov-användarnas CI.

  • Microsofts Winget (maj 2021)

    WinGets programvaruregister översvämmades med pull requests för applikationer som antingen var dubbletter eller inte fungerade som de skulle helgen efter lanseringen. Det översvämmades med felaktiga eller duplicerade paket, som skrev över de redan befintliga.

  • Kaseya (juli 2021)

    Flera säkerhetsleverantörers programvaruplattformar för fjärrövervakning och hantering innehöll en nolldagssårbarhet som en ransomware-organisation hittade och utnyttjade. Denna incident krypterade filer från över 1 500 företag.

  • Log4j-sårbarhet (december 2021)

    Felet gör det möjligt för angripare att få fjärråtkomst till appar som använder Log4j . Sårbarheten ligger i kommunikationsmekanismen, vilket gör det möjligt för en angripare att infoga skadlig kod i loggarna och få den att köras på systemet.

  • 3CX (mars 2023)

    Angripare komprometterade 3CXs byggmiljö och använde ett legitimt kodsigneringscertifikat för att signera en trojaniserad version av deras skrivbordsapplikation för datorer, vilket nära upprepade SolarWinds-mönstret: certifikatet var giltigt och koden var legitimt signerad, själva bygget hade komprometterats före signering.

  • XZ använder bakdörr (mars 2024)

    En bidragsgivare som hade ägnat ungefär två år åt att bygga upp förtroende hos utvecklarna för det allmänt använda XZ-komprimeringsbiblioteket infogade en bakdörr som riktade sig mot SSH-autentisering på större Linuxdistributioner. Den upptäcktes av en Microsoft-ingenjör som undersökte en oförklarlig SSH-prestandaregression, innan den bakdörrade versionen nådde de flesta stabila distributioner, vilket gjorde den till en av de närmaste mötena i leveranskedjans historia på senare tid.

Och många fler på listan.

Toppattackvektorer

Många olika attackvektorer används för att kompromettera en programvaruleverantör och framgångsrikt attackera genom utvecklingspipelinen. Angriparna koncentrerade huvudsakligen sina attacker på dessa punkter:

  • Utnyttjar brister i öppen källkodsapplikationer

    De flesta kommersiella programvaror har öppen källkod. Två områden är i fokus för sårbara attacker i leveranskedjan för applikationer:

    • En är att utnyttja brister i tidigare installerade och spridda program. Till exempel Log4j-sårbarheten.
    • Inkludering av skadlig kod i välkända privata och öppen källkodspaket för att få automatiserade pipeline-verktyg att inkludera dem i applikationsbyggprocessen. T.ex. us-parser-js paketförgiftning.
  • Komprometterade pipelineverktyg och ändrad byggprocess

    Den andra attackmetoden är att kompromettera pipeline-verktyg, vilket gör det möjligt för angripare att ändra eller introducera skadlig kod. Källkoden för en applikation, som fungerar som dess ritning samt utvecklingsinfrastruktur och procedurer, kan göras offentlig via en komprometterad CI/CD-pipeline.

    Samtidigt byggs programmet (liksom fallet med SolarWinds). Dessutom är pipelinen kopplad till dussintals externa beroenden som kan användas för att komma åt och starta attacker, som Codecov-attacken.

  • Manipulering av integritetskoden

    Känslig data i kod, dålig kodkvalitet och säkerhetsproblem observerades ofta i många kunders miljöer. Inlämning av felaktig kod till källkodsdatabaser har erkänts som den tredje riskfaktorn. Detta påverkar säkerhetsställningen och artefaktkvaliteten.

Lösning för företagskodsignering

Få en lösning för alla dina behov av kodsignering och kryptografi för mjukvara med vår kodsigneringslösning.

Hur kan samdesign hjälpa till?

Kodsignering är en process för att bekräfta äktheten och originaliteten hos digital information, såsom en mjukvarukod. Det försäkrar användarna om att denna digitala information är giltig och fastställer författarens legitimitet.

Kodsignering säkerställer också att denna digitala information inte har ändrats eller återkallats efter att den giltigt signerades. Kodsignering kan garantera dubbel autentisering, förhindra attacker och till och med undvika namnrymdskonflikter när du delar källkod i hela SDLC:n.

Best Practices

Här är några bästa praxis för kodsignering för att garantera säkerheten för din applikationskod.

  • Säkra alla privata nycklar

    Förlust, stöld eller kompromettering av en privat nyckel för kodsignering utgör en allvarlig säkerhetsrisk. Det finns några enkla regler vi kan följa för att undvika risken:

    • Begränsa obehörig åtkomst till nycklarna.
    • Implementera fysisk säkerhetskontroll över nycklarna för att begränsa processen.
    • Säkra nycklar med kryptografiska hårdvaruartiklar.
  • Automatisera signeringsprocessen med Pipelines

    En centraliserad helhetsstrategi för kodsigneringsprocedurer samtidigt som säkerhetsföreskrifter upprätthålls är en del av den automatiserade kodsigneringsprocessen . Utan att sakta ner SDLC ansluter denna automatiseringsmetod till CI/CD-pipelines och använder detaljerad åtkomstkontroll.

  • Beskriv roller, ansvarsområden och rutiner för godkännande.
  • Integrering med befintliga miljöer och verktyg kan göra kodsignering snabb och enkel för de interna teamen.
  • Använda tidsstämplar för att registrera alla samdesignaktiviteter.

Vanliga frågor om partihandel med mat och dryck

Blev XZ Utils bakdörr upptäckt på grund av kodsignering?

Nej. Det upptäcktes eftersom en utvecklare upptäckte en oförklarlig SSH-prestandaregression under en orelaterad undersökning. Kodsignering var inte kontrollen som stoppade det, vilket illustrerar varför signering ensam, utan försigneringsskanning och granskning av byggen, inte upptäcker en sofistikerad, tålmodigt byggd insiderkompromiss.

Vad har SolarWinds, 3CX och XZ Utils gemensamt?

Alla tre riktade in sig på bygg- eller bidragsprocessen snarare än att attackera den levererade applikationen direkt. I SolarWinds och 3CX signerade en legitim signeringsprocess redan komprometterad kod; i XZ Utils infogade en betrodd bidragsgivare bakdörren direkt i källkoden.

Förhindrar kodsignering ensamt attacker i programvaruleveranskedjan?

Nej. Den verifierar ursprung och integritet från och med signeringstillfället. Den upptäcker inte skadlig kod som infogas före signering, vilket är anledningen till att sårbarhetsskanning före signering, buildisolering och kodgranskning fortfarande är nödvändiga utöver det.

Slutsats

Er mjukvaruleveranskedja är invecklad, omfattande och sammankopplad, vilket gör den sårbar för attacker. Det har förekommit några förödande och små attacker tidigare, och framtiden kan bli mycket bättre. Angripare har använt olika attackvektorer för att rikta in sig på en specifik sida. Tillämpningen av kodsignering är en avgörande säkerhetshärdande teknik.

Kodsignering säkerställer att obehöriga parter inte manipulerar programvaran och att den slutgiltiga publicerade programvaran kommer från den ursprungliga utgivaren. Genom att följa vissa bästa praxis för kodsignering kan vi säkerställa att attacker från leveranskedjan inte längre hotar oss.

För mer information kan du kontakta oss på [email protected]