Eftermälet av sårbarheten Apache Log4J, vilken förra året, visar att de största riskerna med företagens mjukvara inte nödvändigtvis återfinns i den mjukvara de själva utvecklar. Sårbarheter i de komponenter, kodbibliotek och annan öppen källkod som utgör lejonparten av dagens mjukvara är den del av osäkerhetens isberg som ligger under ytan.

Den enkla sanningen är att stora delar av de applikationer som produceras av devops-team och mjukvaruingenjörer inte utvecklas av deras egna programmerare. Dagens moderna mjukvaror är modulära till sin karaktär, och utvecklarna använder så kallade mikrotjänster för att skapa nya applikationer enligt liknande principer som man bygger Lego, det vill säga man använder block med färdigutvecklad kod.

Istället för att återuppfinna hjulet varje gång utvecklarna behöver en vanligt förekommande funktion till sin applikation, rotar de runt i den ökända lådan med kodblock för att hitta precis den kod som gör det man behöver, utan en massa besvär.

Den där lådan utgör dagens ständigt växande leveranskedja av mjukvara, en ibland rätt informell källa till kod från miljontals kodbehållare på Github och alla de öppna källkodsprojekt som flyter runt på dagens internet. Alla dessa komponenter och kodbibliotek används i en myriad applikationer och i den underliggande infrastrukturen som används för att konstruera moderna utvecklingsprocesser.

De program som finns tillgängliga i denna leveranskedja fungerar trots allt inte helt som legobitar på det sättet att de passar perfekt ihop, vilket innebär att utvecklare anpassar komponenterna för att kunna integrera dem i sina egna applikationer. Faktum är att många sedan släpper den modifierade koden som ännu ett öppen källkodsprojekt för dem som brottas med liknande problem, och det är en anledning till att leveranskedjan hela tiden växer.

Applikationer som bygger på kod från tredje part

En modern applikation är till större delen uppbyggd av kod från tredje part. Enligt en undersökning från Forrester handlade det år 2020 om 75 procent av koden för en genomsnittlig applikation – en uppgång från 36 procent år 2015.

Anledningen är att det går snabbare och blir mer skalbart att utveckla applikationer, men som med alla tekniska innovationer ökar riskerna om man inte är försiktig. Det är något av en smutsig branschhemlighet bland utvecklare att de komponenter som hämtas från dagens leveranskedja lätt kan falla för bäst-före-datumet och innehålla en massa sårbarheter.

Saken blir dessutom ännu mer komplicerad av den enkla sanningen att sårbarheterna ofta är nästlade i varandra eftersom olika projekt har beroenden till andra projekt inom leveranskedjan. Ibland kan också cyberkriminella avsiktligt lägga in sårbarheter i koden.

De här sårbarheterna kan sedan ligga gömda likt minor i företagens mjukvaror, särskilt när företagen inte styr upp situationen och sätter regler för hur utvecklarna får använda sig av kod från leveranskedjan.

Många organisationer har knappt någon spårning, för att inte tala om granskning eller hantering, av tredjepartskod eller utvecklingsverktyg som hamnar i eller producerar den kod som utvecklarna lämnar över. Enligt en undersökning från Linux Foundation använder inte ens hälften av organisationerna en mjukvaruförteckning (så kallad software bill of materials, SBOM) som håller reda på exakt vilka komponenter från leveranskedjan som inkluderas i applikationerna.

Att skapa en SBOM är grundläggande för en bra säkerhet kring leveranskedjor, tillsammans med styrning av hur öppen öppen källkod används och säkerheten kring de infrastruktur-som-kod-element som berör applikationerna genom utvecklingsprocessen.

Nedan följer en lista över verktyg som kan hjälpa till med att ta fram en SBOM, med tyngdpunkt på analys av mjukvarukomponenter eller SCA (software composition analysis) och höja insynen i vad som inkluderas i mjukvaran och städa bort olika sårbarheter i de byggstenar som utgör moderna applikationer.

De bästa säkerhetsverktygen för leveranskedjor

Contrast Security
Contrast Security är mest kända för sin Interactive Application Security Testing-teknik (IAST) som upptäcker sårbarheter i applikationer via en agent som körs på applikationsservern. Contrast Security tillhandahåller SCA-förmågor som en del av en svit av testverktyg på företagets öppna plattform. Plattformen inkluderar också tester som dynamic application security testing (DAST), static application security testing (SAST), runtime application scanning protection (RASP) samt serverlösa säkerhetskontroller på AWS Lambda.

Verktygen kan mer än att endast generera en SBOM. För att hjälpa till med att städa upp hotmodellerna kan de också kontextualisera felaktigheter över de olika ingredienser som ingår i en applikation. Detta genom att visualisera infrastrukturen för applikationen, kodträdet och information om meddelandeflöden.

Styrning av öppen källkod finns inbyggd i moderna arbetsflöden och verktyg inom utveckling, och Contrasts huvudverksamhet handlar om att överbrygga gapet mellan utvecklings- och säkerhetsteam. Detta gör Contrast till en huvudspelare på marknaden för så kallad devsecops.

Shiftleft
En ganska ny spelare inom området är Shiftleft. Verktyget är framtaget för att passa in i arbetsflödet för utvecklarna inom framåtlutande devops-team. Det huvudsakliga värdet ligger i att sammanföra SCA och SAST till en enda genomsökning som görs när en utvecklare gör en hämtningsbegäran (pull request).

Verktyget använder en teknik som företaget kallar för Code Property Graph (CPG) för att kartlägga beroenden och dataflöden mellan egen kod, öppen källkodsbibliotek, SDK:er och API:er. Detta söker fram inte endast sårbarheter inom hela applikationen, inklusive öppen källkodskomponenterna, utan också svagheter i applikationslogiken.

Sårbarheterna prioriteras över mottaglighet för attacker genom ett ”nåbarhetsindex” som inkluderas i SBOM:en. Detta sätter in sårbarheten i en kontext som säger hur sårbar en komponent är baserat på hur den används i applikationen.

Snyk
Snyk är en molnbaserad, utvecklarcentrerad uppsättning verktyg som är specialbyggda för DevSecOps och molninriktade utvecklingsavdelningar. Även om verktyget är mest känt för säkerhet kring SCA och säkerhetsgenomsökningar i containrar erbjder det även SAST och sårbarhetstester för API:er. I februari 2022 köpte företaget upp Fugue, ett företag inom hantering av molnsäkerhet.

Analysföretaget Gartner har sagt att ”applikations- och infrastrukturlager går allt mer ihop. Dessa köps in av utvecklingssidan, men är värt att titta på för CSO:er och säkerhetspersonal som vill gå mot en demokratiserad modell där utvecklarna står för säkerhetstestning och sanering”. Snyk är med sin blandning av erbjudanden inom infrastruktur-som-kod, container- och applikationssäkerhet en representant för detta.

Sonatype Nexus
Som en av de mest långlivade spelarna på SCA-marknaden har Sonatype betecknat sig själva som ett företag inom ”säkerhet för leveranskedjan av mjukvara”. Detta långt innan termen letade sig in i rubrikerna för säkerhetskonferenser och dito webinarer.

Hjärtat i Sonatypes Nexus-plattform är dess förmåga att skapa detaljerade SBOM:er och hantering av policys. Analytiker på Forrester säger att ”policys är Sonatypes styrka med färdiga policys i linje med en rad standarder och en policymotor som låter användarna skapa och tilldela policys för vissa typer av applikationer”.

Policys kan appliceras på mer än vilka komponenter som tas med i koden, utan också för att hantera säkerheten och konfigurationen av den omgivande infrastrukturen-som-kod och containrar som används för att utveckla och rulla ut applikationer.

För att tillhandahålla en enda källa av sanning för alla komponenter, binärer och byggartifakter erbjuder Sonatype även hantering av kodbehållare. Analytiker anser även att Nexus visualisering av komponenthistorik och Sonatypes kundtjänst ska räknas in som en stor styrka. 2021 köpte Sonatype upp bolaget Musedev vilket hjälpte dem att bygga ut Sonatype Lift, ett verktyg som tillhandahåller en utvecklarvänlig analys av kodkvalitet i samband med kodgranskningar.

Synopsis Black Duck
SCA-verktyget Black Duck från Synopsis utför fyra typer av analyser – beroenden, kodgranskning, binärer och kodutdrag – för att följa och hantera de komponenter som används inom en applikation. Nyligen uppdaterade Synopsis Black Ducks förmåga att skapa SBOM:ar så att det nu även inkluderar BLANK. I tillägg till att skapa materiallistor kan verktyget också utföra automatiserad policyhantering.

Black Duck är en del av Synopsis bredare portfölj av verktyg för applikationssäkerhet som Gartner utsåg till en ledare inom deras ”magiska kvadrant” för applikationssäkerhetstester. Modellen med en öppen plattform som Synopsis använder för att leverera SCA tillsammans med DAST, SAST, pentester, fuzzing och en rad andra tester är en viktig del i affärsvärdet.

Gartner säger att ”det gör att Synopsis passar bra för organisationer med komplex utveckling i många team som använder en blandning av utvecklingsstilar och programmeringstekniker”

Veracode
En stor spelare som verkat länge inom traditionell applikationssäkerhet är Veracode som med sin mogna Saas-produkt länge dominerat inom SAST och DAST. Under senare år har företaget också gjort stora investeringar i SCA.

Efter uppköpet av Sourceclear 2018 erbjöd företaget både den egna SCA-produkten och den som kom av uppköpet, men den nya Veracode Software Composition Analysis är nu en enhetlig produkt tillgänglig genom plattformen.

Forresters analytiker förklarar att ”Veracodes färdplan fokuserar på att slå samman förmågorna för SAST och SCA i utvecklarmiljön, och förstärka förmågan inom säkerhet för containrar och infrastruktur-som-kod”.

Analytikerna säger att det som ger Veracode höga betyg är dess saneringsrapporter och kartläggning av beroenden. Det största minustecknet gäller svårigheten att integrera verktyget i utvecklarnas arbetsflöden.

Whitesource Software
Höjdpunkten i SCA-verktyget från Whitesource Softwares är det utvecklarvänliga sättet att sanera sårbarheter i komponenter, inklusive varningar och hur det fixar utdaterade och skadliga komponenter. Forrester, som ser Whitesource som ledande inom SCA, skriver att ”Whitesource idéledarskap fokuserar på sanering och prioritering”.

”Whitesource erbjuder differentierade funktioner, inklusive en webbläsarmodul som hjälper till att undvika problematiska komponenter och avlägsna onåbara sårbarheter från utvecklarens kö, för att förbättra utvecklarupplevelsen”. En av analytikernas anmärkningar gäller verktygets brist på färdiga policys. WhiteSource släppte även en SAST-lösning förra året.