Fórum Root.cz
Ostatní => Odkladiště => Téma založeno: coinmiter 15. 02. 2018, 13:57:35
-
Zajímalo by mě, jak pořádně detektovat a zablokovat stránky, které těží coiny (a k tomu skripty které otiskují HW podle GPU). Tedy ne zablokovat samotné stránky, ale zastavit/znemožnit těžení anebo fingerprintgu + upozornění, že stránka se tohle pokouší dělat.
Myslím si, že primitivní postupy jako :
-blokace domén coinhive.com, coinblabla.com a dalších jiných, které vzniknou každým dnem nové
-blokace skriptů s názevm miner.js, fingerprint2.js, fp.js, fp.min.js, min3r.js, 232.js, logo.png a dalších jiných, které stačí primitivně přejmenovat
- blokace skriptů obsahující proměnnou Miner, Min3r, adresa , libovolně přejmenovatelnou atd, nebo přistupujíci k webgl objektu
-další způsob skrytí bude v obfuskaci kódu přes různé closure compilery atd
- naivní rozšíření do chrome zastavující tyto těžiče. Už jen ten postup - přidat si další věc do prohlížeče, aby něco redukovala
-další způsob je přifaření skriptu k jinému skriptu nutnému k běhu stránky (jquery.js, i když to je zrovna blbý příklad, prostě nějaký skript, který je nutný pro běh stránky například načítání PSČ do formuláře)
- další způsob je vnoření skriptu inline a zamíchání s logikou stránky.
Takže v podstatě je spousta způsobů jak skrýt, promíchat těžící skript do stránky, aby ho šlo špatně detekovat, natož zastavit (odnesla by to i funkčnost stránky).
Existuje nějaké sofistikovanější cesta, jak zabránit těmto věcem (těžiče, fingerprint, přístup k schránce)?
- těžiče: jde o běh regulérního JS kódu, občas nějaký websocket či xhr komunikace. Je nějaké chytré řešení na úrovni něčeho jako inspekce běhu JS. Nebo je snad jiné řešení než vypnutí JS?
- fingerprint - přistup k určitým webgl api + nějaký způsob uložení/odeslání výsledku. Tento výsledek může být chytře obfuskován nebo někam uložen a jiná část kódu ho může číst, že není možné poznat, že hodnota byla uloženena /odeslána fingerprint knihovnou. (něco jako praní peněz, přes prostředníky, formuláře, atributy)
- schránka - restrikce k api schránce. Neznám prohlížeč, který by umožňoval práci se schrákou zakázat. Existuje k tomu nějaké api nebo způsob jak to zakázat externě (přes usescript atd a javascriptové přepisování funkcí a zmrazování objektů. Je tohle stoprocentní?)?
-
no blokovat to blokatorem. Noscrip, umatrix....
-
Vypnout JS a výjimkovat jen na prověřených webech, kde je jeho přítomnost žádoucí.
-
Odpověď od (.) jsem přeci popsal v prvních bodech, ale stačí když vykukové změní název scriptu z coinminer.js na coinmiter a chvíli bude trvat než se na to přijde. Pokud si nemyslel, odpověď otazníka (?) ,pomocí ublock vypnout js uplně. A co když prověřený web někde za pár dní hackne.
Proto hledám nějakou uplně jinou cestu než vše odzbrojit vypnutím JS a zároveň "naivním" blacklistováním domén, které každý den vzniknou nové nebo blacklistováním názvů jako miner.js, které stačí přejmenovat.
To druhá půlka seznamu jsou cesty, jak obfuskovat minery a fingerptinty, že akorát nebudou bít do očí svým název či doménu a budou mít neutrální název kjadsl.js, nebo ještěhůř wp/plugins/datetime.js
Proto mě zajímá nějaké pořádné řešení, které třeba bude analyzovat využítí js enginu, thready, a trochu heurestik asi
-
Ale to je v podstatě stejný problém jako s reklamama. Dřív šlo reklamy snadno blokovat, protože se blok kódu jmenoval<reklama>, případně se reklama tahala z url jako reklamy.com, reklamy.navstivenyweb.com, navstivenyweb.com/reklamy a podobně. Dneska se už spousta reklama načítá přímo z www.navstivenyweb.com/sghlkjshjgs/khskfzwteghjdf/ takže to nelze rozumně blacklistovat, protože se url pokaždé změní a načítá se ze stejného umístění jako další obsah.
Stejně tak není problém maskovat miner jako soubor hgiuzisuziufhsiu.js, případně mít miner i užitečný js v jednom souboru.
Jistým řešením by mohlo být sledovat spotřebu systémových prostředků stránkou a podle toho jednat. Například omezit výkon, upozornit uživatele a podobně. To ale může způsobit problémy na stránkách s multimediálním obsahem a podobně.
Je v podstatě až nechutný, kam se vývoj webových technologií dostal a co všechno může web v prohlížeči provádět. Vždyť dneska už je možný v problížeči spustit i celý OS...
-
Vypnout JS a výjimkovat jen na prověřených webech, kde je jeho přítomnost žádoucí.
Jen ze js je potreba nejvic na texh webech kde je zarovem miner. Treba serialove stranky kde si bez js neskrtnes a s nim zas bezi miner.
Ja pozanm miner podle toho ze zacne hucet vetracek notebooku a stranku opoustim.
-
[...] stačí když vykukové změní název scriptu z coinminer.js na coinmiter [...]
kdyz pomoci NoScript povolis vzdy na konkretnim webu vzdy jen chtete js, napr. zobrazeniproduktu.js, tedy NEpovolis coinminer.js, tak jeho prejmenovani na coinmiter samozrejme nic nezmeni, protoze stale budes mit povolene JEN ty js ktere jsi povolil... udelat to ze na nejakem webu vyberes v NoScript "povolit komplet cely web" je pripadne Tvoje blbost ;-)
-
Dneska se už spousta reklama načítá přímo z www.navstivenyweb.com/sghlkjshjgs/khskfzwteghjdf/
Stále ještě to ale není úplně v háji, protože stačí zařídit, aby se na stránku neodeslal konkrétní cookie při dalším načtení. Udělat to lze 2 způsoby na stránce: buď zakázat cookies (konkrétní jména cookies nebo celkově) a nebo vypnout inline scripty ( celkově , ale pak nepujde galerie atd a nebo pokročile jen daný úsek stránky přes ublock (https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#scriptlet-injection) inject, kdy se vybere vhodná "oprava" typu www.novinky.cz,www.extra.cz##script:inject(abort-on-property-write.js,adbDetect), je jich plno (https://github.com/uBlockOrigin/uAssets/blob/master/filters/resources.txt) jako abort-current inline script, fuckadblock defuser, timeout cleaner, v podstatě lze tím emulovat vypínání funkcionalit JS oklikou) Jenže problém všech těhle řešení je, že se pokaždé musí "problémová stránka" přidat do filtrů. Kdyžto chytřejší řešení je globálně zakázat manipulaci s cookies přes JS, nebo zakázat cookies s určitými jmény (a v případě stránky, kterou by to náhodou rozbilo, seleketivně povolit)
mimochodem by to řešilo, kdyby nebylo možné nastavovat cookies javascriptově. Nevíte o něčem takovém? Aby to bylo uživatelsky příjemné, někde v nabídce a né to někam bouchat do konfig. souboru