Så hanterar Er organisation en cyberincident

Så hanterar Er organisation en cyberincident

Jag blir kontaktad då och då av organisationer som behöver hjälp att hantera cyberincidenter. Som tur var så lämnar de flesta incidenter någon form av spår som gör det möjligt att i efterhand spåra och dra slutsatser från incidenten. Men med goda förberedelser så kan Er organisation bli bättre på att hantera incidenter.

Den första frågan du bör ställa dig är: Har Er organisation redan rutiner på plats vid en cyberincident? Om inte så börja med att efterfråga en redan nu eller upprätta en rutin.

Betänk även att de flesta incidenter uppdagas genom att en extern part kontaktar Er och informerar om en incident som drabbar Er. Därför är det bra att ha kontaktuppgifter tillgängliga till säkerhetsavdelningen såsom E-post: [email protected] eller en webbsida som upplyser om vem man ska kontakta.

Glöm inte att löpande dokumentera allt som händer och vid vilka tidpunkter. Upprätta även en incidentrapport som ni uppdaterar hela tiden.

Koordinera och informera

Vem är det som bör informeras om incidenten. Finns det en säkerhetschef eller IT-säkerhetschef? Bör VD och styrelse snabbt informeras samt press-avdelning om externa frågor börjar att inkomma från allmänheten eller journalister.

Följande bild kommer från NIST SP 800-61r2 och beskriver hur kommunikation kan ske till och från ett Incident Response Team:

Isolera och begränsa

Att snabbt isolera och begränsa incidenten är också en viktig faktor, men betänk även att om det är ett pågående intrång så kan personen eller personerna i fråga ändra sitt beteende om de upptäcker att de blivit bortkopplade eller upptäckta.

Ett exempel på hur en server eller klient kan isoleras är att helt enkelt att fysiskt koppla bort den från nätverket och låta den fortsätta köra.

Säkra bevis

Att snabbt se till att säkra bevis efter incidenten är viktigt. För desto längre tid som går desto mer bevis kan gå förlorade. Det kan röra sig om ram-minne som försvinner om en server eller klient stängs av eller logg-filer som roteras och raderas efter en viss tid.

Titta vilka brandväggsloggar ni har, E-postloggar och AD-loggar samt andra relevanta loggfiler. Säkra upp dumpar av RAM-minne, hårddiskkopior och annat.

Det kanske är så att ni även måste kontakta en extern driftpartner eller organisation för att erhålla loggfiler.

Utreda omfattningen

Om det är ett intrång så är det viktigt att utreda exakt vilka system som drabbats av intrånget. Vid en överbelastningsattack så är det bra att veta vilka system som attackeras. Och när det gäller informationsläckage så måste ni veta exakt vilka uppgifter som ni blivit av med när, samt hur.

Vilka legala skyldigheter har organisationen och regelverk är det som måste följas såsom GDPR? Där det är 72 timmar som ni har på Er att informera Datainspektionen om personuppgiftsincidenter.

Rensa upp och återställ

Först och främst rekommenderar jag alltid att installera om och börja om från början. Men det är sällan så lätt i en komplex IT-miljö där det finns hundratals servrar och kanske tusentals användare och klienter.

Återställning handlar oftast om att rensa upp innehåll i databaser, se över användare och patcha eventuella system om sårbara produkter utnyttjas.

Lär av incidenten

Att dra relevanta slutsatser och förbättra på sitt cyberförsvar är något som Er organisation ska göra efter och under en incident. En incident är sällan en enskild isolerad händelse och har det inte hänt innan så kommer det troligtvis att inträffa en incident.

Hur kan ni upptäcka attacker tidigare och förbättra på rutinerna för att återställa verksamheten och minska påverkan i den operativa verksamheten.

Betänk även att en incident kan dra ut på flera dagar, veckor eller månader. Därför är det viktigt att ni har en eller flera som kan rotera huvudansvaret för incidenten vilket bidrar till bättre uthållighet. Därav också det viktiga med att dokumentera allt, så det blir lättare att lämna över och följa upp.

Utbildning

Jag skulle nästan påstå att organisationer som övar, informerar samt utbildar sin personal löpande i att hantera incidenter kommer att bli bättre på att hantera dessa den dagen de uppstår.

Att alla i organisationen känner till hur de ska hantera och identifiera incidenter är av stor vikt. Och om ni känner att det finns brister i dagsläget så tveka inte att ta in hjälp, det finns många företag som hjälper till med alla steg jag har listat i detta blogginlägg.

Har ni inte rutiner på plats i dagsläget så ta en titt på NIST Special Publication 800-61 revision 2 som tar upp mycket av det jag skriver om i detta blogginlägg.

Cybersäkerhetstrender och hot inför 2020

Cybersäkerhetstrender och hot inför 2020

Nästan varje år har jag försökt att skriva om vilka trender inom cybersäkerhet som jag tror vi kommer att se framöver samt andra iakttagelser. Dessa spaningar är givetvis fria att använda inom Er egen organisation och sprida vidare eftersom allt innehåll på kryptera.se är licensierat med Creative Common Attribution 4.0 International (CC BY 4.0).

Password Spraying och Credential stuffing

En återkommande fråga jag får är: ”När tror du att lösenord försvinner?” och hur vi än gör så kommer vi att dras med lösenord och PIN-koder ett bra tag framöver. Detta är så klart något som antagonister också drar till nytta och hittar fler plattformar och protokoll att försöka gissa korrekta användarnamn och lösenord.

Min spaning är att ännu mer plattformar och protokoll kommer att utsättas för forceringsförsök gällande användarnamn och lösenord. Även spår jag att attacker som utnyttjar 2FA kommer att öka bla genom MITM (man-i-mitten).

Zero trust och Assume Breach 

Vi måste bygga våra nätverk och IT-arkitektur på ett sådant sätt så att även om angriparen kan ta sig in till en enskild klientdator så kan hen inte eskalera sina rättigheter eller ta sig vidare utan att detta snabbt upptäcks och utreds. Detta ställer också krav på att Threat Hunting ständigt pågår samt att det finns bra lösningar för Endpoint Detection and Response (EDR).

Det är viktigt att ha en baseline över hur Er miljö ser ut och vilken nätverkstrafik som flödar vart, vilka mjukvaror ska vara installerade osv. För det är då det också är enklare att identifiera avvisande mönster. Förutsätt att angriparen redan är inne i era nätverk och gör det svårare att komma åt affärskritisk information.

Bild över Googles Zero-trust initiativ BeyondCorp:

Zero Trust

Appliance hacking

Under året har vi sett flertalet stängda plattformar (On-Premise) såsom Citrix NetScaler, Pulse Secure, Fortigate (se blogginlägg här). Eftersom härdningen av dessa plattformar många gångar är eftersatt och loggningen är bristfällig så är det även svårt att utföra forensiska undersökningar eller upptäcka intrång.

Samt så står dessa enheter som oftast i en central punkt där många ansluter eller mycket trafik passerar vilket gör detta till en guldgruva för antagonister. Förutom att läsa av och modifiera trafik som går genom enheten så kan det även finnas möjlighet att angripa klienter som ansluter.

Inom detta område så räknar jag även in Supply Chain Cyber Security, för allt som ansluts och kopplas in i era system bör kontrolleras, avgränsas eller isoleras. Betänk även att firmware/mjukvaru-uppdateringar kan påverka Er miljö positivt eller negativt gällande säkerheten.

Threat sharing

Denna spaning är nog mer en förhoppning från min sida. Nämligen att fler organisationer blir bättre på att dela med sig av IOC:er och information om intrång. Mer transparens och system för att möjliggöra automatisk och snabb delning av hotinformation, såsom MISP eller TheHive.

Om du jobbar inom en specifik bransch så skulle jag påstå att det är av stor vikt att ni delar med Er av hotinformation inom just Er bransch.

Inom rubriken Threat Sharing så vore det även tjänstefel om jag inte nämnde MITRE:s ATT&CK-ramverk som löpande utvecklas och gör det lättare att dela med sig av sådant som inte är rent tekniska IOC:er såsom Tactics, Techniques and Procedures (TTPs). Vilket kan förevisas med David J Biancos Pyramid of Pain:

Ett medskick till Er organisation är att undersöka hur ATT&CK går att använda i Era säkerhetsprodukter såsom antivirus-mjukvara.

Övriga bubblare på listan

Ett ständigt återkommande problem är alla uppkopplade prylar (Internet of Things) där dagligen nya sårbarheter uppdagas. Detta kommer troligtvis inte att minska i takt med att fler saker blir uppkopplade, samt att fler fordon etc blir uppkopplade. Och kommer 2020 vara året då vi kommer att få se fler säkerhetsprodukter med Artificiell intelligens (AI)?

Några tidigare års trendspaningar inom cybersäkerhet och kryptering hittar du här:

NSA varnar för ny Windows-sårbarhet

NSA varnar för ny sårbarhet i Windows

TL;DR Windows CryptoAPI Spoofing-sårbarhet

Uppdatering: Nu finns det en PoC ute, se nedan bild (källa)

Uppdatering 2: Attacken fungerar även mot Chrome.

NSA gick precis ut och varnade för en ny krypto-relaterad sårbarhet som drabbar samtliga installationer av Windows 10 samt  Windows Server 2016/2019. Även påverkade är tredjepartsprogram som använder vissa kryptofunktioner i Windows.

Även skriver NSA att angripare med en god förmåga kommer snabbt att förstå hur dessa sårbarheter kan utnyttjas samt kommer att försöka utnyttja dessa nya sårbarheter.

Exempel där denna bristfälliga signaturvalidering förekommer är:

  • HTTPS-anslutningar
  • Signerade filer och signerad E-post
  • Signerade binärer som startas som användare

Och rekommendationen som åtgärd är att snabbt som ögat installera månadens patchar från Microsoft som släpptes idag. Denna sårbarhet har fått CVE enligt: CVE-2020-0601.

För att upptäcka intrångsförsök eller utnyttjande av bristerna som åtgärdas så kan verktyget certutil eller openssl användas rekommenderar NSA, specifikt på följande sätt:

certutil –asn <certificate_filename> 
openssl asn1parse –inform DER –in <certificate_filename> –i –dump 

Eller 

openssl x509 –inform DER –in <certificate_filename> –text 

Håll då koll på avvikande elliptiska kurvor skriver NSA:

Review the results for elliptic curve objects with suspicious properties. Certificates with named elliptic curves, manifested by explicit curve OID values, can be ruled benign. For example, the curve OID value for standard curve nistP384 is 1.3.132.0.34. Certificates with explicitly-defined parameters (e.g., prime, a, b, base, order, and cofactor) which fully-match those of a standard curve can similarly be ruled benign.

Certificates containing explicitly-defined elliptic curve parameters which only partially match a standard curve are suspicious, especially if they include the public key for a trusted certificate, and may represent bona fide exploitation attempts. 

Kom ihåg att du även kan läsa ut certifikat från PCAP och nätverkstrafik och sedan granska dem enligt ovan.

Mycket bra att NSA har rapporterat denna brist/brister till Microsoft så en patch kunde släppas. Inga aktiva försöka att utnyttja denna sårbarhet har identifierats rapporterar även Microsoft och NSA.

Varningen i sin helhet kan du läsa här (PDF)

Nytt säkerhetsdokument från Apple

Apple har släppt dokumentet Apple Platform Security, Fall 2019. Dokumentet är på totalt 157 sidor och beskriver ingående Apples olika initiativ gällande säkerhet.

Dokumentet omfattar följande avsnitt:

  • Hårdvarusäkerhet och biometri. Secure Enclave, AES-motorn, Touch ID och Face ID
  • Systemsäkerhet såsom säker uppstart, slumptal (CPRNG) och uppdateringar
  • Kryptering och skydd av information
  • Säkerhet och ekosystemet runt appar
  • Säkerheten runt Apples tjänster som tillhandahåller funktioner såsom Hitta iPhone osv samt kommunikation hem till moderskeppet.
  • Nätverkssäkerhet
  • Utvecklarsäkerhet
  • Säker hantering av enheter såsom remote wipe
  • Certifieringar såsom ISO, Common Criteria och Commercial Solutions for Classified (CSfC)

En av de saker som jag gillar mest av de olika säkerhetssatsningar som Apple har är deras Secure Enclave som kan ses som en variant på Trusted Platform Module (TPM):

Secure Enclave återfinnes i följande enheter:

  • iPhone 5s (och senare)
  • iPad Air (och senare)
  • Mac-datorer som har Apples T2 Security Chip
  • Apple TV generation 4 (eller senare)
  • Apple Watch Series 1 (eller senare)
  • HomePod

Även intressant är att mikrofonen stängs av i hårdvara när luckan fälls ihop på en Macbook Pro och Macbook Air (som har T2-chippet). Inte ens kerneln, root eller T2-chippet kan påverka denna funktion.

Här kan du ladda hem dokumentet i sin helhet:

Nytt nationellt cybersäkerhetscenter

Under September 2019 gav Regeringen myndigheterna FRA, Försvarsmakten, MSB och Säkerhetspolisen ett uppdrag som gick ut på att dessa myndigheter skulle lämna förslag på hur ett nytt nationellt cybersäkerhetscenter ska utformas.

Nu har svaret skickas till Regeringen och jag har sammanfattat det nedan:

  • Lokaliseringen ska till början vara hos MSB i deras nya lokaler i Solna. Dock med egna konferensrum, reception etc.
  • 20-30 personer kommer att initialt ingå från FRA och MSB men på lång sikt kommer upp till 250 personer att tjänstgöra på cybersäkerhetscentret
  • Försvarsmakten kommer att bidra med samverkansresurer samt analytiker och avser att rekrytera upp 10 personer för detta
  • Centret kommer att vara en naturlig plats för samverkansgrupper såsom Samverkansgruppen för informationssäkerhet (SAMFI).

Och tittar vi närmare på fördelarna med att inrätta ett cybersäkerhetscenter så lyfts följande delar upp:

  • Kortare ledtider från detektion till åtgärd.
  • Bättre analysresultat med ett större utbyte av information.
  • Ökad tydlighet i budskap och rekommendationer.
  • Ökad tillgänglighet till de ingående myndigheterna för såväl privata som offentliga målgrupper.
  • Stärkt privat-offentlig samverkan.
  • Ett ensat nationellt cybersäkerhetsarbete samt harmonisering av föreskrifter och skyddsåtgärder.
  • Effektivare användning av statens resurser.

Övriga myndigheter som är delaktiga i upprättandet av centret är PTS, FMV och Polismyndigheten.

Organisationen kommer att se ut enligt följande på en övergripande nivå:

Här kan du läsa svaret i sin helhet: Svar_pa_uppdrag_infor_inrattandet_av_ett_nationellt_cybersakerhetscenter.pdf

Mina slutsatser

Min egna bedömning är att jag tror att detta är mycket bra och min erfarenhet visar på mycket bra synergieffekter bara genom att vara samlokaliserade på ett och samma ställe. Dock så är det olika myndigheter med olika kulturer och mål som ska komma överens vilket kommer att ta ett tag. Även tror jag det blir svårt att rekrytera till detta center eftersom specialister inom detta område är mycket efterfrågade.

Jag tycker även att det är bra att samverkan med näringslivet tas upp i svaret och att det finns möjlighet att sprida information och samverka mot privata aktörer genom exempelvis olika Forum för informationsdelning (FIDI).

FRA besitter en unik förmåga att upptäcka avancerade cyberattacker och detta center kan troligtvis hjälpa att stärka det Svenska cyberförsvaret.

Ny liten datadiod från Advenica: DD1G

Jag tog ett snack med Jens Bogarve som är produktchef på svenska säkerhetsföretaget Advenica om deras nya lilla datadiod DD1G. Denna nya datadiod ingår i serien SecuriCDS och jag har tidigare bloggat om den större versionen som heter DD1000A. Storleken på denna mindre datadiod är 130x20x150/163 mm.

1. Vad är skillnaden mellan DD1G och de större modellerna som ni säljer exempelvis DD1000A som jag bloggade om tidigare?

Det är samma datadiodsteknik i Advenicas DD1G som DD1000A och DD1000i, prestandan är oförändrad. Skillnaden ligger förutom storleken främst i hur strömförsörjningen hanteras, i D1000A finns det möjlighet att använda separerad kraft medan i DD1G är det redundant kraft.

2. Hur ser efterfrågan ut gällande dessa. Tänkte mig att det finns ett behov av dessa mindre datadioder

Platsbrist är ett problem i flera tillämpningar, en mindre datadiod har varit önskvärt hos flera av våra kunder. Priset har också varit en faktor för våra kunder som nu ser att dom kan utnyttja datadiodens säkerhet där det tidigare inte gått på grund av ekonomiska skäl.

Vi ser också att datadioder behövs i industriellmiljö, till exempel i SCADA-nätverk, därav att vi har tagit fram en modell för DIN-skenemontage. Datadioderna blir mer och mer anpassade för den miljö dom är tänkta att verka i.

3. Kan du säga något om priset eller om hur mycket billigare denna version är jämfört med de större modellerna?

Listpriset för denna enhet är 31 448 SEK (€2995).

4. Förutom själva datadioden, vilka funktioner är det som efterfrågas som dioden ska lösa? Överföring av loggar? Patchar? Video?

Advenica

Överföring av loggar och video är bra exempel på vad Advenicas DD1G kan användas till. Genom att använda någon form av proxy-server kan andra protokoll tillgodoses. DD1G agerar på Ethernet Layer 2 vilket innebär att omgivande system måste vara anpassade för enkelriktad kommunikation, till exempel genom att använda UDP.

Advenicas datadiod DD1000i har inbyggda proxy-servrar för att hantera filöverföring, email, tid och loggar.

5. Vilka branscher är det som börjar få upp ögonen för datadioder, tänker mig att organisationer inom försvarsindustri alltid varit kunder men att dioder kan användas inom många andra branscher såsom sjukvård och kryptovalutor?

Försvarsmakter hos olika länder och myndigheter är fortfarande de största användarna av datadioder. Transport, eldistribution och V/A, men även finansiella och industriella företag, ser numera fördelarna med datadioder ur ett säkerhets och ackrediteringsperspektiv.

Det är ofta branscher som berörs av säkerhetsskyddslagen som behöver bevisa enkelriktningen i informationsflödet och segmenteringen mellan olika nätverk. Största fördelen med att använda en datadiod är att den inte går att konfigurera fel så att information läcker i fel riktning, därmed blir ackrediteringsarbetet betydligt enklare.

Produktblad finner du här samt mer information på Advenicas hemsida.

Faktaruta datadiod

En datadiod säkerställer att data enbart kan skickas i ena riktningen. Detta behövs när information ska skickas mellan nätverk i olika säkerhetszoner eller säkerhetsklasser.

Skiss från en presentation som FRA höll för några år sedan:

WEASEL – Ny bakdörr från Facebook

Facebook har släppt ett intressant nytt implantat (bakdörr) vid namn WEASEL. Mjukvaran är skriven i Python3 och utnyttjar DNS samt AAAA-records för att skicka och ta emot beacons. Den behöver inte heller några externa beroenden och kan således köras under de flesta operativsystem.

Ett implantat är en typ av mjukvara som används av angripare för att utföra olika uppgifter och kommunicera in och ut ur nätverk. WEASELs klientdel har inga direkta inbyggda funktioner förutom att sköta kommunikationskanalen, självradering och intervall för kommunikation. Vill du ha mer funktioner så får du själv bygga till det eftersom WEASEL stödjer exekvering (eval) av Python3-kod.

Fokus vid utvecklingen av WEASEL har varit på att försöka försvåra IT-forensiska undersökningar och därför finns ej stöd för persistens. Mjukvaran stödjer inte heller att flertalet operatörer jobbar mot samma instans.

För kryptering av data över DNS så används AES-128 i CTR mode samt Diffie-Hellman för nycklar. Oklart hur stödet för Windows ser ut men går säkert att åstadkomma med Pyinstaller.

Här hittar du WEASEL på Github:

Jag har tyvärr ej testat WEASEL ännu men har det på min todo-lista. Om du gör det eller redan testat så lämna gärna en kommentar om dina erfarenheter.

Bild på vessla av Keven Law – originally posted to Flickr as On the lookout…, CC BY-SA 2.0

Två intressanta sårbarheter

VPN-tunnel

De senaste dagarna så har det publicerats två intressanta sårbarheter som jag tänkte skriva några rader om, den första är en ”VPN bugg” som påverkar många olika typer av VPN-anslutningar och den andra handlar om en miss i operativsystemet OpenBSD som medger att flertalet autentiseringsmekanismer går att kringgå.

OpenBSD

Denna sårbarhet har CVE 2019-19521 och upptäcktes av säkerhetsföretaget Qualys. Även så finns det ett antal relaterade sårbarheter enligt följande:

  • CVE-2019-19520: Local privilege escalation via xlock
  • CVE-2019-19522: Local privilege escalation via S/Key and YubiKey
  • CVE-2019-19519: Local privilege escalation via su

Men den allvarligaste medger att du över nätverket (remote) kan kringgå autentiseringen i flertalet program såsom smtpd, ldapd och radiusd.

Det är nämligen så att programmet login_passwd anropas vid autentisering. Och om informationen som skickas vidare till login_passwd innehåller -schallenge som argument så returneras lyckad inloggning, se följande exempel:

$ printf '\0-schallenge\0whatever' | openssl base64
AC1zY2hhbGxlbmdlAHdoYXRldmVy

$ openssl s_client -connect 192.168.56.121:25 -starttls smtp
...
EHLO client.example.com
...
AUTH PLAIN AC1zY2hhbGxlbmdlAHdoYXRldmVy
235 2.0.0 Authentication succeeded

Här kan du se mer information om dessa sårbarheter: authentication-vulnerabilities-openbsd.txt

VPN

Denna sårbarhet går under CVE 2019-14899 och medger att en angripare kan injicera data i en VPN-tunnel eller lista ut vilken IP som blivit tilldelad inne i en tunnel. Denna sårbarhet påverkar flertalet Linux OS, FreeeBSD, OpenBSD, Android och macOS.

Kortfattat kan man säga många operativsystem som etablerar VPN-tunnlar inte bryr sig om vilket gränssnitt som data kommer in på. Så om du har ett tunnel-gränssnitt och data helt plötsligt kommer in på ett annat gränssnitt så funkar det lika bra.

Och Colm MacCárthaigh som jobbar på Amazon meddelar att Amazon Linux inte påverkas men att attacken kan bli ännu mer allvarlig om DNS kan påverkas inne i VPN-tunneln:

Hijacking traffic via DNS is usually much more powerful than payload injection; for example an attacker can observe all connections but choose to target only connections that do not use TLS. This is more flexible and helps evade detection.

Mer omfattande information hittar du i följande PDF samt följande två intressanta patchar till OpenBSD:

Test av nya Kali Linux 2019.4

Det har precis släppts en ny version av Kali Linux som går under namnet 2019.4 och är således den fjärde upplagan i år.

Jag testade att uppgradera min Vagrant-installation genom att köra:

vagrant box update

Och sedan köra en vagrant destroy samt vagrant up så lirade allt. Givetvis går det även att uppgradera genom att köra apt dist-upgrade.

Jag stöter dock på en hel del strul: Första gången jag startar webbläsaren så krashar den virtuella maskinen. Samt när skärmsläckaren går igång så låser sig hela VM:en, vet inte om detta är relaterat till VirtualBox.

Nyheter i Kali Linux 2019.4 inkluderar följande:

  • Ny skrivbordshanterare: Xfce
  • Nytt GTK3-tema
  • Nytt läge för “Kali Undercover”
  • Nytt dokumentationssystem som använder git
  • Public Packaging – getting your tools into Kali
  • Kali NetHunter KeX – Fullständig Kali desktop på Android-baserade enheter
  • BTRFS-filsystem (b-tree) under setup
  • Stöd för PowerShell
  • Kernel är uppgraderad till Linux 5.3.9
  • Samt mängder av uppdateringar och buggfixar

Att man gått bort från Gnome till fördel för Xfce beror bl.a på prestandaförbättringar och att Xfce nu kan köras på flertalet plattformar som Kali stödjer såsom ARM.

Skärmdump från nya fönsterhanteraren Xfce:

Inloggningsfönstret:

Stöd för nytt ”Undercover mode” som gör att du som vill använda Kali på mer publika miljöer inte ska sticka ut allt för mycket:

Kali Linux Undercover Mode

Gillar det du läser? Stöd mig gärna via Patreon, alla bidrag hjälper.

Jag testade även att installera Microsoft PowerShell version 6.2.2 genom att köra:

apt install powershell

Och sedan testade jag att ladda hem en fil efter att ha startat ett PowerShell Shell med pwsh:

Intressant incident

Oskar Sjöberg delade en intressant write-up om en incident i Facebook-gruppen Kodapor. Jag frågade om lov och fick delge den här nedan:

En kort liten write-up om en incident i en av våra kunders miljöer som jag hoppas kan vecka diskussion och/eller eftertanke.

Det hela börjar med att en av våra utvecklare reagerar på ett Javaskriptfel i sin utvecklingsmiljö i en äldre webbläsare som vi väldigt sällan testar. Skriptfelet ser ut att ha att göra något med att hämta GPS-positionering att göra. WTF. Vi har väl inte någon sådan funktion i vår kodbas?

Efter lite letande kommer vi fram till att koden dessutom ligger i en <script>-tag, i en SVG fil och är inte i närheten av att likna något av koden vi skriver. Kryptiska identifierare, koden ser ut att försöka injicera sig själv in i andra dokument. Oj. Den koden ligger i produktion också. Gulp. Något är väldigt skumt.

Har vi blivit utsatta för en attack? Snabbt konstaterar vi att SVG filen i fråga har koden i sig incheckad i vårt repo sedan en tid tillbaka. Hur i h…? Någon minut senare kan vi konstatera att en utvecklare har checkat in filen med scriptet i. Snabbt söka igenom alla SVG filer med <script>-taggar. Skönt, det var bara den. Snabbt ut med ny version av systemet med fixad SVG-fil.

Hur fick vi in den koden i en av våra SVG-filer? Jag söker på nätet och hittar en issue på Github som klagar på att verktyget SVGOMG (online verktyg för optimering av SVG filer) smittar ner SVG med liknande kod som den vi har sett. SVGOMG används mycket riktigt av utvecklaren. Issuen är dock stängd med en kommentar om att problemet ligger i ExpressVPN.

Jag frågar utvecklaren om han har ExpressVPN installerat, det har han. Det verkar alltså som att VPN tjänsten ExpressVPNs Chrome-extension patchar DOMen med Javascriptkod som injicerar sig själv. Eftersom SVGOMG jobbar helt i browsern med att optimera SVG så injiceras även koden i det optimerade resultatet.

Jag kan inte enkelt avgöra om ExpressVPNs beteende är ondskefullt eller om det är en defekt i deras mjukvara. För mig är det här verkligen en ögonöppnare över hur relativt lätt det går att smyga in obetrodd kod i någon annans produktionsmiljö via något så oskyldigt som lite grafik.

Jag bifogar länken till koden som i mångt och mycket liknar koden som dök upp i vår produktionsmiljö.