Door Sander van Voorst
Nieuwsredacteur
Feedback
• 08-11-2017 06:00
Inleiding
Als je in de afgelopen weken een site hebt bezocht en je afvroeg waarom jouw cpu ineens overuren draaide terwijl je alleen aan het browsen was, zou het kunnen dat de processor op de achtergrond cryptovaluta aan het genereren was. Dit vrij recente verschijnsel, waarbij de cpu's van websitebezoekers worden ingezet voor mining van cryptovaluta, heeft van sommige beveiligingsbedrijven de naam cryptojacking gekregen. Deze praktijk is inmiddels ook populair onder malwaremakers en andere partijen die uit zijn op snelle winst en er niet voor terugdeinzen om bijvoorbeeld legitieme sites van de nodige code te voorzien.
Een van de eerste partijen die de techniek zelf inzetten, was The Pirate Bay. Naar eigen zeggen ging het om een test om te kijken of het gebruik van de JavaScript-code een vervanging kon zijn voor het tonen van advertenties. Daarmee wierp de site meteen een belangrijk argument op in de discussie rond het onderwerp. Zo is het mogelijk om de code uit te voeren zonder medeweten van de bezoeker van een site, wat de nodige vragen oproept over legaliteit en wenselijkheid.
Los daarvan kan de techniek een alternatieve bron van inkomsten voor websites vormen. Kortom, er spelen genoeg vragen rond dit onderwerp. Bijvoorbeeld waar dit fenomeen vandaan komt, of het nieuw is en waarom het juist nu de kop opsteekt.

Cryptominingmalware is niet nieuw
Kijken we naar het inzetten van zogenaamde cryptominers door internetcriminelen, dan is dat geen nieuw verschijnsel. Dan hebben we het over malware die het systeem van het slachtoffer gebruikt als miner voor een bepaalde cryptovaluta. Volgens statistieken van Kaspersky begon dit in 2011 enige omvang aan te nemen. Dat is niet zo gek, omdat de bitcoin in 2009 werd geïntroduceerd en omdat twee jaar later de eerste grote piek in de prijsontwikkeling waar te nemen was. Dat maakte de cryptovaluta interessant voor malware-auteurs, bovendien was de moeilijkheidsgraad van het minen destijds nog betrekkelijk laag.
In de loop van de jaren is het aantal cryptominers gestaag toegenomen en volgens Kaspersky werden in 2016 ongeveer 1,8 miljoen van zijn klanten aangevallen met deze vorm van malware voor verschillende cryptovaluta. Daarbij maken criminelen gebruik van botnets die bestaan uit geïnfecteerde systemen. Een enkel systeem levert weinig op, maar de inkomsten van een heel botnet met duizenden bots kunnen snel oplopen, afhankelijk van de gekozen cryptovaluta.
Statistieken van Kaspersky. Grafiek toont het aantal klanten die met cryptominers in aanraking kwamen.
Zo had een van de Mirai-botnetvarianten eerder dit jaar gedurende een korte periode een bitcoinminer aan boord. Een snelle berekening van onderzoeker Robert Graham, uitgaande van een veel te groot aantal apparaten in het botnet, liet toen zien dat dit absoluut niet winstgevend kon zijn. Dit had ermee te maken dat de moeilijkheidsgraad van de bitcoin veel te hoog is om met de cpu van bijvoorbeeld een digitale videorecorder ook maar enige winst te maken. Gezien de korte duur van de aanwezigheid van de miningmodule, kwamen de criminelen er waarschijnlijk snel achter dat het een verloren zaak was.
Anderen pakten het slimmer aan en kozen er bijvoorbeeld voor om nas-apparaten te infecteren met malware die zich richtte op de mining van de cpu-vriendelijke cryptocurrency Monero. Dat lijkt al op een aanpak die meer succes kan hebben. Mobiele telefoons blijven evenmin verstoken van de nodige miningmalware. Zo ontdekte het Japanse beveiligingsbedrijf Trend Micro eind oktober een nieuwe variant van cpuminer, dat de processor van mobiele apparaten gebruikt om valuta als Magicoin en Feathercoin te delven.
Mobiele telefoons blijven
evenmin verstoken van
de nodige miningmalware
Dat internetcriminelen niet stilzitten en de nieuwste technieken toepassen, blijkt uit de opkomt van de zogenaamde Adylkuzz-malware. Die verscheen nadat de WannaCry-ransomware zich snel over de wereld had verspreid met behulp van de NSA-exploit EternalBlue. Als dat met ransomware kan, moet dat ook met andere malware kunnen, zo moeten de Adylkuzz-makers hebben gedacht. Ze gebruikten eveneens de code van EternalBlue om hun malware te verspreiden en waren daarmee vrij succesvol. Door sommige beveiligingsbedrijven is deze malware naderhand ook wel ‘groter dan WannaCry’ genoemd. Interessant detail is dat deze campagne al opdook voordat WannaCry de smb-poort van geïnfecteerde systemen dichtte om infectie via dezelfde weg door andere malware te voorkomen. Ook bij deze variant is te zien dat Monero de gekozen cryptovaluta is. Beveiligingsbedrijf Proofpoint identificeerde in mei verschillende adressen die inzicht gaven in de opbrengsten van de campagne, die op 24 april begon. Daarop waren bedragen tussen de 7000 en 22.000 dollar te vinden, waardoor de campagne redelijk succesvol lijkt.
Een nieuwe speler
Alle hiervoor genoemde varianten hebben met elkaar gemeen dat het gaat om malware die pas zijn werk kan doen als het is gelukt om een systeem van een slachtoffer te infecteren, bijvoorbeeld via kwaadaardige e-mailbijlagen, apps in de Play Store of een openstaande smb-poort op een ongepatcht systeem. Dat is een groot nadeel voor de crimineel, omdat het in de meeste gevallen vereist dat het slachtoffer een handeling uitvoert. Bovendien moeten criminelen hun slachtoffers op de een of andere manier weten te bereiken. Wat als er een andere manier is om dit te doen en toch andermans cpu te gebruiken?
Medio september verscheen er een dienst met de naam Coinhive. Deze kwam in eerste instantie groot in het nieuws toen The Pirate Bay bekendmaakte een ‘test’ uit te voeren met een Monero-miner op basis van JavaScript. Kort gezegd gebruikte de populaire torrentsite twintig tot dertig procent van de cpu-capaciteit van zijn bezoekers om Monero te genereren. Hiervoor maakte de site gebruik van het Coinhive-script, dat draait in de browser van bezoekers. Dat gebeurde in eerste instantie zonder dat dit expliciet werd vermeld. Het was alleen te merken doordat de cpu-activiteit omhoogging en het systeem wellicht iets trager reageerde.
De TPB-post
Als dit mogelijk is, lijkt het onnodige moeite om zelf malware die dezelfde functie uitvoert, te ontwikkelen en te verspreiden. Het enige voordeel van malware zou zijn dat deze constant kan draaien zolang het geïnfecteerde systeem aanstaat. Bovendien staat de code van Coinhive online en is het zojuist genoemde nadeel te compenseren door een site waarop gebruikers lange tijd doorbrengen, van die code te voorzien. Een voorbeeld van een dergelijke site is een streamingdienst, waar kijkers gemakkelijk een paar uur achter elkaar series bingen. Zo kan de code op de achtergrond blijven draaien. Het is dan ook niet verwonderlijk dat Coinhive-code kortstondig te vinden was op Showtime-sites van de Amerikaanse zender CBS. Het is onduidelijk wie de code daar heeft geplaatst, maar het incident geeft aan dat de mogelijkheden van de code al snel duidelijk werden. Hetzelfde gebeurde deze week op een Amerikaanse MMA-streamingsite, merkte een Reddit-gebruiker op.
Coinhive
Het idee om in de browser cryptovaluta te delven is niet nieuw, zo getuigen threads uit 2011 waarin deze toepassing wordt besproken voor bitcoins. Een tool van een aantal MIT-studenten die deze functie uitvoerde, droeg de naam Tidbit. Toch is het idee nooit op grote schaal van de grond gekomen, tot de release van Coinhive, die leidde tot een sterke toename van het aantal sites dat de techniek gebruikt. De dienst staat gebruikers toe om een aantal regels JavaScript-code in hun site op te nemen. Site-eigenaren zijn daarbij zelf verantwoordelijk of en op welke manier ze dit aan hun bezoekers communiceren. Door middel van een api kunnen eigenaren bijhouden hoeveel hashes door een bepaald account zijn opgelost. De dienst betaalt zijn gebruikers zeventig procent van de opbrengsten uit.
Coinhive leidde tot een sterke toename van het aantal sites dat de techniek gebruikt
De dienst motiveert de keuze voor de cryptovaluta Monero met het argument dat de achterliggende hash function het gebruik van een gpu ontmoedigt en daardoor geschikter is voor een cpu. Monero maakt gebruik van het zogenaamde CryptoNight-proof-of-work-algoritme, dat bedoeld is om inefficiënt te zijn voor gpu’s, fpga’s en asics. Daardoor zou Monero zich lenen voor mining in de browser, via JavaScript, wat uiteraard wel een prestatievermindering met zich meebrengt. Volgens Coinhive presteert zijn dienst op ongeveer 65 procent van een native miner. Met een belasting van 60 procent haalt een Intel Xeon E3-1225 uit 2011 een hashrate van ongeveer dertig hashes per seconde. Dat werpt natuurlijk de vraag op in hoeverre het gebruik van de dienst rendabel en energie-efficiënt is.
Torrentfreak deed een poging om de opbrengsten van The Pirate Bay in kaart te brengen en kwam uit op een maandelijks bedrag van 12.000 dollar met een bezoekersaantal van 315 miljoen en een bezoeksduur van dertig seconden. Dat bedrag gaat er bovendien vanuit dat er geen throttling plaatsvindt. Zonder dat de inkomsten uit advertenties van TPB bekend zijn, lijkt dit een aanzienlijk bedrag. De opbrengsten zijn verder afhankelijk van de waarde van Monero. Die is in de afgelopen jaren gestaag toegenomen. Er was een grote piek in augustus, toen de valuta werd opgenomen in de handel van de grote exchange Bithumb. Momenteel levert 1 xmr, zoals Monero wordt aangeduid, ongeveer 85 euro op.
Monero-prijs door de jaren heen, volgens World Coin Index
Is het draaien van een miningscript legaal?
Het gebruiken van de cpu van bezoekers brengt juridische en ethische vragen met zich mee. Laten we vooropstellen dat een aantal interessante gebruiksscenario's denkbaar is, zoals de vervanging van advertenties of als een soort captcha. Die scenario's zijn volledig afhankelijk van een transparante en eerlijke implementatie.
Het gebruiken van de cpu van een bezoeker van een site is niet zonder gevolgen voor die bezoeker. Zo wordt er veel van de processor gevergd en neemt het verbruik toe, wat elektriciteitskosten met zich meebrengt. Beveiligingsbedrijf Trustwave nam de proef op de som en liet een standaard desktopcomputer een dag lang Monero delven op een site die was voorzien van de standaard Coinhive-miner. Het verbruik nam toe met ongeveer 1,2kWh ten opzichte van het normale verbruik, wat niet veel is. Toch is het zonder toestemming inzetten van een JavaScript-coinminer bezwaarlijk, omdat de bezoeker geen keuze wordt gelaten.
Website-eigenaren kunnen in principe zelf de toegangseisen voor hun website bepalen
Dan is er nog het juridische aspect, wat ook terugkwam in een blogpost van ict-jurist Arnoud Engelfriet. Hij stelt dat website-eigenaren in principe zelf de toegangseisen voor hun website kunnen bepalen. Dus als ze daar een coinminer voor willen gebruiken, dan is dat toegestaan. De Nederlandse Telecommunicatiewet, waarin de 'cookiewet' is verankerd, eist echter dat toestemming wordt gevraagd als 'informatie wordt opgeslagen op of toegang wordt verkregen tot randapparatuur van een gebruiker'. Daarover moet ook de nodige informatie worden verstrekt. Dit heeft geleid tot de huidige 'cookiemuren', maar het is ook door te trekken naar het uitvoeren van het Coinhive-script, dat aan de kant van de gebruiker wordt uitgevoerd. Er zijn uitzonderingen, bijvoorbeeld als de opslag of toegang nodig is om een bepaalde dienst te leveren of als anders geen communicatie mogelijk is. Die lijken hier echter niet van toepassing. Het wetsartikel in kwestie was oorspronkelijk bedoeld om spyware en dergelijke software tegen te gaan en kan in dit geval bescherming bieden.
Dat het Coinhive-script voor gebruikers negatieve effecten heeft, concludeerden naderhand ook adblockers en beveiligingsbedrijven. Zo schreef Malwarebytes dat het de Coinhive-code gelijkstelt met drive-by-downloads, waarbij bezoekers van een site ongevraagd een bestand downloaden. Inmiddels blokkeren veel van deze partijen Coinhive en zijn er bovendien speciale browserextensies te vinden die hetzelfde effect hebben. Het team achter de coinminer realiseerde zich wellicht iets te laat dat het niet standaard inbouwen van een opt-in-mogelijkheid een verkeerde beslissing was, die ertoe leidde dat sites hun bezoekers niet over de aanwezigheid van de code informeerden.
Daarom kwam het team korte tijd na de introductie van Coinhive met een alternatief onder de naam AuthedMine. De techniek erachter is dezelfde, behalve dat er nu om toestemming wordt gevraagd. Geeft de gebruiker eenmaal zijn toestemming voor het draaien van de code, dan blijft die 24 uur geldig. Het team claimt dat het niet mogelijk is om de opt-in te omzeilen. In de blogpost vroeg het adblockers en beveiligingsbedrijven om deze variant niet te blokkeren, maar tegen die tijd waren er al voldoende met Coinhive vergelijkbare projecten ontstaan.
Populariteit en na-apers
Tweakers vroeg aan verschillende beveiligingsbedrijven of ze informatie hebben over de groei van cryptominers in de afgelopen weken. ESET stuurde een grafiek die het moment laat zien waarop de techniek aan populariteit won. Juraj Jánošík, software-engineer bij ESET: "Coinminers voor de browser waren vanaf het begin van augustus op onze telemetrie te zien. Een enorme toename was een maand later te zien, aan het einde van september." Het verschijnsel deed zich volgens het bedrijf voornamelijk voor op bepaalde soorten websites. "Deze trend was te zien op websites die daarvóór agressief gebruikmaakten van advertenties om inkomsten binnen te halen en die daarnaast nu ook JavaScript-coinminers inzetten om meer winst te maken. Daar moeten we aan toevoegen dat coinminers ook op bepaalde legitieme sites zijn opgedoken."
Grafiek van ESET. The Pirate Bay maakte het nieuws over zijn Coinhive-test rond 18 september bekend.
Drie weken nadat Coinhive live was gegaan, publiceerde AdGuard een blogpost met eigen cijfers over het verschijnsel. Daarin schreef het bedrijf dat inmiddels 220 sites in de top 100.000 van Alexa coinminingscripts hadden geïmplementeerd. Daaronder waren voornamelijk streamingsites, gevolgd door filesharingsites en pornosites. Ook bij deze trend bleven malwaremakers niet achter en implementeerden ze de code op verschillende manieren. Bijvoorbeeld in een ‘tech support scam’-campagne, waarbij slachtoffers een webpagina met een waarschuwing te zien krijgen en de miningcode ondertussen op de achtergrond draait. Het hacken van een site gaf criminelen nu een aanvullende manier om daar winst uit te halen, namelijk door de site van het script te voorzien. Dit gebeurde onder meer met WordPress- en Magento-sites. Daarnaast verschenen de nodige WordPress-plug-ins voor Coinhive en werd de code gespot in een populaire Chrome-extensie.
Los van deze toepassingen verschenen ook de nodige klonen, die dezelfde functionaliteit bieden en waarbij de makers eveneens hopen op een deel van de opbrengsten. Inmiddels zijn er diverse varianten te vinden, onder verschillende namen, zoals JSEcoin, Crypto-Loot, CoinHave en MineMyTraffic. Malwareonderzoekers van Microsoft troffen varianten aan onder de namen CoinBlind en CoinNebula.
Tot slot
In de afgelopen weken heeft het verschijnsel van coinminers in de browser zich snel verspreid, nadat The Pirate Bay gebruikmaakte van code van Coinhive. Hoewel het niet om een geheel nieuw verschijnsel gaat, heeft de techniek snel aan populariteit gewonnen. Daarbij blijven kwaadaardige of ethisch twijfelachtige toepassingen niet uit. Dat is niet verwonderlijk, omdat de code eenvoudig te implementeren is, er geen grote investering nodig is en de opbrengsten aanzienlijk kunnen zijn bij een groot aantal sitebezoekers. Hoewel Coinhive zijn dienst in eerste instantie zonder opt-in aanbood, kwam het team daar later op terug. Wellicht iets te laat, aangezien het oorspronkelijke project zich al snel had verspreid, wat ertoe leidde dat adblockers en beveiligingsbedrijven de code gingen blokkeren.
Toch is ook legitiem gebruik van de techniek mogelijk. Te denken valt aan een vervanging van onderbrekende advertenties op een streamingsite, waarbij bezoekers van tevoren worden ingelicht en zelf kunnen bepalen welke hashrate ze willen bieden. Dat neemt niet weg dat sommigen bezwaar kunnen hebben tegen deze manier van inkomsten genereren, hun cpu liever niet ter beschikking stellen of hun browser geen onbekende JavaScript-code willen laten uitvoeren. Veel heeft dus te maken met de manier van implementatie. Doordat de techniek sinds kort aan populariteit wint, bestaan er nog mogelijkheden voor ontwikkelingen.
Het is onwaarschijnlijk dat we snel van de toepassing in malware af zullen zijn, laat Dave Maasland van ESET weten. "We verwachten in de toekomst een forse toename in coinminingmalware. Met de enorme toename aan populariteit van cryptocurrencies hebben cybercriminelen wederom de kracht van de crowd ontdekt. Voor gebruikers is het niet alleen vervelend, maar dit soort type malware kan zich later uitbreiden met meer functionaliteit, die extra schadelijk is voor de gebruiker."