Hlavní navigace

Ochrana proti nechtěné těžbě kryptoměn pomocí DNS

Jan Vondráček

Kryptoměny, které jsou moderním trendem, je třeba někde těžit. Pro uživatele je ale obvykle nepřijatelné, když se náklady na těžbu přenášejí na ně a na jejich počítač. Co si s tím počneme?

Doba čtení: 3 minuty

Sdílet

Původně uživatelé těžili kryptoměny na svých počítačích pomocí specializovaných programů, ale to se stalo dost nákladné na elektrickou energii a hardware, a tak se to přestávalo vyplácet.

Asi před dvěma lety byla realizována myšlenka jejich těžby pomocí javaskriptu spuštěného z webové stránky ve webovém prohlížeči. To s sebou přineslo možnost distribuované těžby, která přesahuje možnosti běžného těžaře, a zároveň snadnou možnost zločincům, jak se obohacovat.

Těžba v prohlížečích

Vznikly webové stránky, které distribuují těžařské javaskripty a zprostředkovávají ukládání vytěžených prostředků do kryptoměnových peněženek. Tyto skripty jsou pak s různými motivacemi a způsoby vkládány do webových stránek. Vytěžená kryptoměna se neukládá do peněženky člověka, co kryptoměnu vytěžil, ale toho, co těžarský skript do stránek vložil.

Což může být majitel stránek, aby tímto způsobem sponzoroval provoz namísto zobrazovaní reklamy. Ale daleko častěji je to útočník, který tyto stránky zneužívá bez vědomí majitele. Tento způsob černé těžby je totiž mnohem méně nápadný než instalace těžařského červa na počítač, a je zcela platformově nezávislý. Funguje na mobilu, tabletu i na PC. A dále ho lze maskovat otevíráním minimalizovaných oken nebo tabů na pozadí.

Co s tím?

Způsob jak znemožnit těžbu kryptoměn ve webových prohlížečích uživatelů, je rozbít propojení webové stránky a těžařského serveru. Regulérní webová stránka načte svůj obsah a jako její součást se stáhnou z adres těžařského serveru i těžařské skripty. Pokud ale zabráníme browseru, aby tyto těžařské části stahoval, stránka se zobrazí bez poškození a k těžbě nedojde.

Jako ochrana vzniklo rozšíření NoCoin, později převedené na filtr do Adblocku se stejným jménem (stránky filtru NoCoin). Tento filtr pracuje na principu filtrace URI. Zablokované URI si browser, při načítání stránky, vůbec nevyžádá. Adblock NoCoin jako způsob ochrany ovšem nelze použít u všech prohlížečů či uživatelů, někteří uživatelé instalaci nezvládnou.

Napadlo mě tedy udělat něco univerzálnějšího než je instalace filtru. Inspiroval jsem se službou, kterou poskytuje CESNET na blokování nepovolených hazardních webů (článek o této službě na Root.cz), spojil ji s filtrem NoCoin a vznikl RPZ filtr pro rekurzivní DNS resolver. Když už ten filtr máme, proč ho neposkytnout všem? Spustil jsem, za pomoci Univerzity Pardubice a fondu rozvoje CESNET, filtr jako veřejně dostupnou službu.

Použití filtru v DNS resolveru Bind

Pokud používáte jako rekurzivní resolver Bind, je konfigurace velmi snadná. Do konfigurace named.conf přidejte zónu filtru a tu přidejte do RPZ pravidel:

MIF20 tip google

options {
  ...
  response-policy {
    zone "nocoin.upce.cz";
    };
};

zone "nocoin.upce.cz" {
        type slave;
        masters { 2001:718:603:e195:113:124:0:29; 195.113.124.29; };
        file "nocoin.upce.cz";
        };

Filtrované domény jsou pak resolverem hlášeny jako neexistující a v logu resolveru uvidíte podobné záznamy:

2020-01-29 06:49:37 named[553]: client @0x7f4f778791f0 10.0.0.1#30232 (smartoffer.site): rpz QNAME NXDOMAIN rewrite smartoffer.site via smartoffer.site.nocoin.upce.cz

Obsah filtru si můžete prohlédnout příkazem:

# dig @dns-nocoin.upce.cz axfr nocoin.upce.cz

Jak moc je těžba rozšířená?

Univerzita Pardubice patří k menším univerzitám, s průměrným počtem 1000 klientů připojených k wifi síti eduroam. Když jsem filtr nasazoval, nepočítal jsem s velkými hodnotami blokací, ale výsledky mě docela ohromily.


Graf blokací

Počty blokací kopírují počty připojených klientů k síti. Jasně je vidět začátek akademického roku (40. týden), přednáškové období, zkouškové období (47. týden), vánoční prázdniny atd. Z grafu je dobře patrné, že těžba kryptoměn ve webových prohlížečích je velmi rozšířená a má cenu se jejím řešením zabývat.

Při analýze blokací se mi potvrdilo, že těžba kryptoměn nerozlišuje mezi mobilními zařízením a PC, snaží se těžit na všem. Nepodařilo se mi bohužel najít zařízení infikované těžařským malware, abych zjistil zda tato ochrana nefunguje také proti newebové těžbě.

Je blokace etická?

No a dostáváme se k závěrečné otázce a podnětem pro velké debaty. Je to filozofická otázka s nejasným závěrem. Je to trochu jako s ohněm, který je dobrým sluhou, ale špatným pánem. Uvedu výčet myšlenek do debaty:

  • samotné prohlížeče blokují podvodné stránky
  • prohlížeče obsahují blokátory jak reklam, tak těžby kryptoměn
  • je to náhrada za reklamu (četl jsem o jednom webu, který tak za dva měsíce provozu vydělal asi 11 Kč)
  • ušetří to více energie, než když někdo zapomene přes noc zhasnout na WC?
  • proč šetřit hw uživatelů?
  • zase nějaké omezování proti svobodě internetu
  • RPZ v DNS je varianta firewallu

V pokračování vás blíže seznámím s technickým provedením sestavení filtru, abyste si jej mohli zprovoznit sami.