Publicerad
Kryptogrävare på många webbplatser via tredjepart-script
Under söndagen den 11 februari orsakade ett utbytt Javascript från tillgänglighetstjänsten Browsealoud att besökare till flera tusen olika sajter ovetandes körde en kryptogrävare i sin webbläsare.
Vad har hänt
Browsealoud, från företaget TalkHelp, är en tjänst som läser upp text publicerad på en webbplats. Företaget har enligt uppgifter i media blivit utsatta för ett dataintrång under vilket ett ofarligt script ersatts med ett script som bryter kryptovalutan Monero. Tjänsten är nu nedstängd medan företaget undersöker vad som hänt.
En webbplats som använder tjänsten Browsealoud instruerar en besökares webbläsare att läsa in ett Javascript från domänen browsealoud.com. Detta är normalt ett ofarligt script som tillhandahåller kod för att läsa upp texten på webbplatsen för besökaren. Angriparna har dock lyckats ersätta detta script med ett annat. I det nya scriptet har en document.write-instruktion har lagts till vilken inkluderar en CoinHive-kryptogrävare i alla sidor där scriptet laddas. När en besökares webbläsare läser in det illasinnade scriptet och kör koden så upptäcker webbläsaren vanligen inte att scriptet är utbytt.
Råd
Webbplatser som använder tredjepart-script kan skydda sina besökare mot att ladda oönskade script genom att med SRI låta besökarens webbläsare verifiera att rätt script körs. Vanligen är sättet som en webbplats instruerar en webbläsare att hämta och köra ett tredjeparts-script villkorslöst:
<script src="//www.browsealoud.com/plus/scripts/ba.js" type="text/javascript"></script>
För att istället få besökarens webbläsare att verifiera att rätt script (eller ’style’) hämtas och körs kan webbplatsen istället ange att en integritetskontroll ska utföras innan scriptet körs:
<script src="//www.browsealoud.com/plus/scripts/ba.js" integrity="sha256-Abhisa/nS9WMne/YX+dqiFINl+JiE15MCWvASJvVtIk=" crossorigin="anonymous"></script>
Om checksumman på det nedladdade scriptet inte stämmer med den som är angiven på webbplatsen så kommer det att ignoreras av webbläsaren. SRI möjliggörs genom att ett nytt direktiv har lagts till i Content Security Policy. Det nya direktivet, require-sri-for script style stöds i de senaste versionerna av samtliga moderna webbläsare.
Ytterligare läsning
The Register var bland de första att rapportera om händelsen:
https://www.theregister.co.uk/2018/02/11/browsealoud_compromised_coinhive/
Scott Helme har skrivit mycket om SRI och CSP:
https://scotthelme.co.uk/protect-site-from-cyrptojacking-csp-sri/
https://scotthelme.co.uk/enforcing-the-use-of-sri/
W3C om SRI
https://w3c.github.io/webappsec-subresource-integrity/#opt-in-require-sri-for
Vi hanterar mediafrågor via MSB:s presstjänst
E-post: kommunikation@msb.se
Telefon: 070-321 88 74