Många systemadministratörer tänker sig inte för när de laddar ned och installerar mjukvaror med öppen källkod från välkända utvecklares förvaringsplatser (repositories) på till exempel Github. Flera attacker under senare tid har låtit cyberkriminella injicera skadlig kod i öppen källkods-mjukvaror på grund av utvecklarnas illa skyddade konton.

Nyligen gick dock Github ut med nyheten att de nu stödjer WebAuthn och hårdvarunycklar för att bättre skydda utvecklarnas och projektens konton, något som varmt rekommenderas att alla utvecklare ser till att skaffa sig. Fler borde dessutom nyttja möjligheten att signera koden för att de som laddar med mjukvarorna ska kunna kontrollera deras integritet.

Utvecklare av webbplatser och mjukvaror blir allt bättre på att täppa till sårbarheter, även om nyhetsrapporteringen ofta indikerar det omvända, varför utvecklare av skadlig kod allt mer vänder sig mot att få in sin kod i andras, redan vid källan. Dessa så kallade supply chain-attacker är, när de lyckas, ett synnerligen effektivt sätt att få stor spridning på den skadliga koden eftersom många öppen källkods-projekt är populära med många nedladdningar, och tyvärr är det ofta bakdörrar de cyberkriminella vill sprida.

Nackdelen för de cyberkriminella är att det är omöjligt för dem att veta var deras kod till slut hamnar; de kan bara hoppas på att den skadliga koden laddas ned och installeras på lukrativa servrar.

Två incidenter som upptäckts den senaste tiden har satt ljuset på supply chain-attacker. Den första är ett hack mot Webmin som är ett mycket populärt webbaserat administrationsverktyg för Linux-servrar som utvecklas av Jamie Cameron.

Missa inte Sveriges viktigaste IT-säkerhetsevent, Next Generation Threats

I april förra året trängde en hackare in sig i den server på vilken Cameron utvecklar nya versioner av Webmin – detta hade alltså inget med Github-konton att göra. Den okände förövaren gjorde en subtil förändring i ett skript kallat password_change.cgi. Förändringen gav förövaren möjligheten att skicka kommandon som root via en speciell url.

I version 1.890, som laddats ned över 421 000 gånger mellan juni 2018 och förra helgen då hacket upptäcktes, var bakdörren öppen i grundläget, medan i versionerna 1.90 till 1.92, med sammanlagt över 942 000 nedladdningar, var det nödvändigt att en administratör ändrade en grundinställning för att bakdörren skulle öppnas.

Öppen bakdörr på Linuxservrar

De smittade versionerna distribuerades framför allt via SourceForge, Webmins nedladdningsställe par preference, medan de som laddade ned Webmin från Github undgick den infekterade koden. Troligen ligger bakdörren öppen på tiotusentals linuxservrar utan att ägarna vet om det, vilket sökningar med sökmotorn Shodan indikerar, men det exakta antalet är svårt att få fram då sökinformationen inte visar om dessa servrar fått sin kod via SourceForge eller Github.

En andra bakdörr, som upptäcktes så sent som i måndags, gäller 11 kodbibliotek inkluderat i öppen källkods-projektet RubyGems på Github. Enligt en analys av utvecklaren Jan Dintel gör bakdörren att hackare kan använda förvalda inloggningsuppgifter för att fjärr-exekvera godtyckliga kommandon på infekterade servrar.

Den skadliga koden har även andra funktioner som exempelvis kan ladda upp miljövariabler som ofta innehåller inloggningsuppgifter till databaser, tjänsteleverantörer och andra känsliga uppgifter till en server på adressen mironanoru.zzz.com.ua, samt en funktion som bryter kryptovalutor. Sammanlagt har kodbiblioteken laddats ned nästan 3600 gånger, och förövaren kunde utföra sin attack via ett gammalt github-konto som skyddades av ett knäckt lösenord.

Detta är dock inte första gången en bakdörr upptäckts i RubyGems. I mars upptäckte säkerhetsanalytiker att biblioteket bootstrap-sass hade en bakdörr, och i början av augusti upptäcktes något liknande i biblioteket strong-password. Bakdörrarna i dessa bibliotek utnyttjar en funktion i en webbkaka för att köra kod på infekterade servrar. Bakdörren i biblioteket strong-password kommunicerar med servern smiley.zzz.com.ua vilket indikerar släktskap med ovan nämnda bakdörrar.

Supply chain-attackerna började på allvar i oktober förra året med upptäckten av två av varandra oberoende hack mot öppen källkodsprojekt inom samma vecka. Det första var ett hack mot VestaCP, ett gränssnitt för kontrollpaneler, och det andra handlade om ett kodpaket vid namn Colourama som placerades i det officiella förvaringsplatsen för utvecklingsspråket Python på Github. En månad senare placerades skadlig kod ämnat att stjäla bitcoin från krypto-plånboken Copay i kodbiblioteket event-stream som laddats ned två miljoner gånger och inkluderas i otal andra projekt.

I ärlighetens namn är det inte endast öppen källkod som drabbas av supply chain-attacker. Asus har drabbats två gånger där användarna av Asus produkter fått in skadlig kod då de laddat ned programuppdateringar från leverantören officiella hemsida, och på samma sätt var det en infekterad programuppdatering till bokförings-applikationen M.E.Doc som initierade det katastrofala NotPetya-utbrottet 2017. Senare samma år drabbades även diskverktyget CCleaner av samma fenomen. Alla dessa är exempel på stängd kod.

Men faktum kvarstår att det är öppen källkod som är den lågt hängande frukten för hackarna, delvis för att många projekt inte tillämpar multifaktor-autentisering för utvecklarnas konton och/eller signering av koden.

HD Moore, ansvarig för forskning och utveckling på Atredis Partners säger i ett uttalande till Ars Technica att ”de senaste upptäckterna tydliggör att dessa problem blir vanligare och att säkerhetssystemen kring publiceringen och hanteringen av kodpaket inte förbättras snabbt nog”.

"Ännu fler konton har komprometterats"

”Det skrämmande är att dessa incidenter troligen resulterade i att ännu fler utvecklarkonton har komprometterats genom uppsnappade lösenord, auktorisationspolletter, api-nycklar och ssh-nycklar. Angriparna har troligen mer än tillräckligt med inloggningsuppgifter för att kunna utföra dessa attacker om och om igen tills alla inloggningsuppgifter har återställts och multifaktor-autentisering och signering är på plats”.

Moore säger också att det ofta är svårt att värdera utfallet av supply chain-attacker eftersom de infekterade biblioteken och kodpaketen kan inkluderas i beroendekedjor i andra paket. Det sätt som pakethanterare fungerar på, att som standard alltid trycka ut de senaste paketen, gör det än mer sannolikt att denna typ av attacker lyckas.

Supply chain-attackerna mot öppen källkod kan få stora konsekvenser då många av dessa projekt utvecklar kod för tunga och viktiga serverapplikationer för exempelvis epost- och webbservrar. Tyvärr är det enda sättet att bli av med dessa bakdörrar att bygga om hela systemet, ett arbete så betungande att många administratörer av de uppåt 100 000 system som smittats av de bakdörrar som upptäckts den senaste tiden hellre avstår.

Kenn White, chef för Open Crypto Audit Project, säger till Ars Technica att ”utan en ren ominstallation av operativsystemet, tillsammans med byte av nycklar och lösenord, är risken överhängande att de smittade systemet kommer att förbli komprometterade.

Läs också:
Github inför stöd för säkerhetsnycklar
Canonicals Github-repo hackat