Zabránění kopírování obsahu WWW

Snow

Re:Zabránění kopírování obsahu WWW
« Odpověď #120 kdy: 30. 09. 2015, 18:56:30 »
To vytahnout strojove pujde velmi tezko.
Jak mě zabráníš abych si odesílal požadavky na server svépomocí a ne tvím javascriptem? Stačí mě prostudovat jak to máš v javascriptu řešené a implementovat to u sebe, a nebo na to kašlat a použít phantomJS a pod...

Dobre obfuskovany javascript Vam da pekne zabrat. Jestli jste nekdy reverse engineeringoval nejaky spustitelny kod tak neni nic horsiho nez automatem mnohonasobne obfuskovane instrukce ...

Treba trivialni obfuskator ve stylu ktery mezi aritmeticke instrukce haze "jmp locX" (kde locX je nahorne umistene a je tam pokracovani puvodniho kodu) a tim defacto tvori sileneho pavouka misto pekne linearniho kodu ... z toho se zblaznite. Napsat  takovy tool je prace treba na 3 hodiny i s parsovanim nejakeho ELF formatu, ale za 3 hodky to rozhodne nereverznete (podari-li se to analyzou kodu vubec).

Kdyz to je takhle jednoduchy algoritmus, da se na to napsat deobfuskator, ale v praxi je to vzdy slozitejsi, takze to vetsinou nejde. Takze bud' jen prevzit cely kod "as is" do vlastniho programu nebo se poohlednout po lepsim zdroji kodu jinde.
Ano nepopírám že to bude oříšek, ale půjde to, nehledě na to že přesně si můžu přinejhorším stránku vyfotit a prohnat ocrkem :-)


DoNotStealThisWebsite:)

Re:Zabránění kopírování obsahu WWW
« Odpověď #121 kdy: 30. 09. 2015, 18:59:14 »
Existuje jedna moznost - teoreticka.

Nejhorsi na vykradani webu je vyhledavani relevantnich URL.

Kdyz bude cely web fungovat principielne jako Google, kde bude v podstate jeden search box ktery AJAXem bude kontrolovat, co uzivatel zadal (nebude mu napovidat) a pak vygeneruje jednorazovou url pro kazdy dokument, tak toto se bude blbe vykradat.

Diky za podnetne reakce. Plan podobneho typu mam. Jednak ve velmi dlouhych URL (mimo adresare, vse bude flat) budou ulozene ruzne udaje, jednak sifrovane pro WWW server, ale take pro vlastni javascript.

Za druhe cely web bude hodne "kosaty", takze kdyz se to vezme nejakym wget-like nastrojem, vyjde z toho obrovske mnozstvi dat, vetsi nez uzivatel bude potrebovat (ovsem nijak jej to nebude omezovat pri normalni praci). Prirovname-li to k nesifrovanemu systemu ulic v nejake online mape, mohla by URL byt ve tvaru /ulice1-ulice2/ (uzivatel kliknul z ulice1 na ulice2). Takze misto n stranek pro n dat jich je n*(n-1), levely jde zanorovat libovolne hluboko.  Uzivatel to nijak nepozna, tedy kdyz to nebude sosat cele - misto gigabajtu dat bude mit terabajty/petabajty.

A posledni veci s timto spojenou je, ze pri detekci sosani cloveka zavedeme do nejake nekoncici smycky nesmyslu + lehce poskodime data.

Jak tu nekdo zminoval ten llvm, to je zbytecny overkill. V planu je udelat uplne jednoduchy obfuskator a randomizator JS kodu. Vlastni nastroj na toto bude trivialni, pouze bude nutne pri kodovani javascriptu dodrzet nejake omezujici podminky.

Predstavte si, ze jediny kod mimo randomizovane funkce bude nastaveni nejakeho eventu (onLoad), zbytek uz poresi ruzne obfuskovane a zprehazene funkce. Ano, spustit to samozrejme pujde, ale vysledkem budou opet ruzne nahodne pojmenovane promenne dostupne pres ruzne nahodne pojmenovane fce. Pro uzivatele to bude transparentni a procesor to prilis nezatizi, vydolovat z toho neco vic nez co je videt ve strance bude ale dle meho nazoru dost obtizne (nebude pevny bod za ktery se chytit).

Na vsechno tohle bych se na zacatek vykaslal - co z toho?

Jednou mi kdosi chytry rekl - "Jakmile to umi browser zobrazit, tak to z toho dostanu, i kdybych to mel vyfotit fotakem a prohnat OCRkem".

Cili jediny problem je, kde sehnat spravne URL.

A kdyz system bude v podstate vyhledavac finalnich stranek, kde se celym tim silenstvim spis obali ten input box ajaxove volajci pismeno po pismenu server, ktery kontroluje, jestli se to tam nenapastilo, jestli uzivatel pise s preklepy, jestli toto a tamto ... tak je to hodne muziky za malo prace ;-)

A nevedel bych, jak to vykrast.

Bohuzel udelat google-like vyhledavac v nasem pripade neni ucelne, protoze data ktera hledat aby clovek mel vse podstatne se daji ziskat - a hlavne lide na to nejsou zvykli, potrebuji klikaci "strom". Dle meho nazoru rozkosatenim toho stromu vic nez vyzaduje funkcionalita webu preneseme problem na "ziskat vsechna podstatna URL ze vsech co jsou mi nabizena". Tedy ziskat je vsechny je technicky mozne, ale vzejde z toho tolik dat, ze to nikdo nebude chtit torrentit.

Driv jsem psal, ze pristup bude placeny, takze detekovat stahovace nebude problem, jednoduse po stazeni tisicovky stranek budeme vedet, ze dotycny to nepouziva "beznym" zpusobem. Je jedno, zda to bude delat PhantomJS, nejakym Indem, studentem, ...

DoNotStealThisWebsite:)

Re:Zabránění kopírování obsahu WWW
« Odpověď #122 kdy: 30. 09. 2015, 19:05:19 »
Ano nepopírám že to bude oříšek, ale půjde to, nehledě na to že přesně si můžu přinejhorším stránku vyfotit a prohnat ocrkem :-)

Pujde to pokazde, kdyz uz se to dostane na monitor, jak uz tu nekdo spravne psal. Jenze uzitecnost te jedne stranky je vcelku nanic, potrebujete je mit vsechny nebo alespon podstatnou cast. Mym cilem neni zabranit tomu aby si nekdo zkopiroval jednu stranku (od toho tam bude fce. save as PDF), stejne tak mi bude jedno kdyz si jich ulozi 10, ... 20. Co nechci aby nekde byla kopie cele te sluzby. Cenna neni jedna konkretni stranka, ale tisice URL spravne organizovanych.

DoNotStealThisWebsite:)

Re:Zabránění kopírování obsahu WWW
« Odpověď #123 kdy: 30. 09. 2015, 19:08:11 »
Zatim pro me neexistovalo nic, co by se nedalo stahnout. Jakmile to totiz umi zobrazit browser, tak mam nastroje, ktere mi browser simuluji - a lidske chovani od strojoveho se bude poznavat tezko ;-)

Mohu se zeptat co jste v minulosti ripoval a bylo to na ripnuti velmi slozite?

A jak ta data byla pouzita, bylo-li to komercni (a ne jen udelat nejakou warez kopii) ? Neumim si totiz moc predstavit jak by nekdo treba udelal kopii nejake databaze a komercne to potom provozoval (zaloba ze strany vlastnika/vykonavatele prav).

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Zabránění kopírování obsahu WWW
« Odpověď #124 kdy: 30. 09. 2015, 19:10:54 »
Driv jsem psal, ze pristup bude placeny, takze detekovat stahovace nebude problem, jednoduse po stazeni tisicovky stranek budeme vedet, ze dotycny to nepouziva "beznym" zpusobem. Je jedno, zda to bude delat PhantomJS, nejakym Indem, studentem, ...

Pokud jsou data ale dost stala (to jste myslim psal), tak to akorat rozlozi na delsi dobu (tydny, mesice). Dalsi veci je cena - pokud bude predplatne stat par slupek (coz jste myslim take psal, ale uple jisty si nejsem), tak se akorat slozi vic lidi (treba par desitek z nejakeho tematicky zamereneho fora) a pososaj to z vice uctu. Tohle staci, aby se stalo jednou a pak jsou vsechny ochrany na nic, kdyz se to bude valet na kazdem verejnem torrent trackeru.

K te problematice "vykradeni" mapy v JavaScriptu (v mem pripade velmi trivialni) pomoci simulace uzivatele - zkusil jsem si to a nebylo to vubec slozite - par desitek radek kodu.


H4Xor

Re:Zabránění kopírování obsahu WWW
« Odpověď #125 kdy: 30. 09. 2015, 19:28:59 »
Vykradal jsem hlavne maily - pouzivalo se to pro spam.

Ale z tech dob vim, ze cokoli proti me pouzivali - parfemy.cz + firmy.cz + X dalsich, tak me to jen vic pobavilo.

H4Xor

Re:Zabránění kopírování obsahu WWW
« Odpověď #126 kdy: 30. 09. 2015, 19:29:39 »
Driv jsem psal, ze pristup bude placeny, takze detekovat stahovace nebude problem, jednoduse po stazeni tisicovky stranek budeme vedet, ze dotycny to nepouziva "beznym" zpusobem. Je jedno, zda to bude delat PhantomJS, nejakym Indem, studentem, ...

Pokud jsou data ale dost stala (to jste myslim psal), tak to akorat rozlozi na delsi dobu (tydny, mesice). Dalsi veci je cena - pokud bude predplatne stat par slupek (coz jste myslim take psal, ale uple jisty si nejsem), tak se akorat slozi vic lidi (treba par desitek z nejakeho tematicky zamereneho fora) a pososaj to z vice uctu. Tohle staci, aby se stalo jednou a pak jsou vsechny ochrany na nic, kdyz se to bude valet na kazdem verejnem torrent trackeru.



K te problematice "vykradeni" mapy v JavaScriptu (v mem pripade velmi trivialni) pomoci simulace uzivatele - zkusil jsem si to a nebylo to vubec slozite - par desitek radek kodu.

Nice one!

DoNotStealThisWebsite:)

Re:Zabránění kopírování obsahu WWW
« Odpověď #127 kdy: 30. 09. 2015, 19:33:19 »
K te problematice "vykradeni" mapy v JavaScriptu (v mem pripade velmi trivialni) pomoci simulace uzivatele - zkusil jsem si to a nebylo to vubec slozite - par desitek radek kodu.

Pekny clanek! Jak tam pisete nejake detaily, je to dost nepresne (vlastne vubec), ale vychazi to z toho, ze sem nechci napsat o co presne jde. Mapu byste zrejme uspesne stahnul - ale opet bych to umel zkomplikovat pastmi, treba do stredozemniho more strcit par mist, ktera by dalsi data "otocila" ze zapadu na vychod a opacne. Automat by na ne najel a je konecna ... moje naklady tak 20 minut prace pridelat to do kodu.

V nasem pripade si nemyslim, ze by nekdo mel chut' organizovane stahovat po dlouhe mesice data, aby ziskal offline neinteraktivni verzi (treba te mapy). A jeste za to platit.

Kazdopadne diky, predvedenim prakticke ukazky utoku (jinak delaneho nez bych to programoval sam) jste mne privedl na jednu docela dobrou myslenku.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Zabránění kopírování obsahu WWW
« Odpověď #128 kdy: 30. 09. 2015, 19:38:02 »
A takovych blbosti se da vymyslet milion... ale kdyz to nekdo nechape...

DoNotStealThisWebsite:)

Re:Zabránění kopírování obsahu WWW
« Odpověď #129 kdy: 30. 09. 2015, 19:39:09 »
Vykradal jsem hlavne maily - pouzivalo se to pro spam.

Ale z tech dob vim, ze cokoli proti me pouzivali - parfemy.cz + firmy.cz + X dalsich, tak me to jen vic pobavilo.

ad firmy.cz ... Seznam zjevne potrebuje aby to chodilo vsude i bez JS, takze si toho moc dovolit nemuzou. V podstate jen detekovat stahovani a pak blokovat. Na to staci(lo) mit hromadu IP adres ze kterych se to postahovalo, ale i to jak jsem psal stacilo aby to nektere subjekty vzdaly.

ad vykradani e-mailu: nerozumim.

H4Xor

Re:Zabránění kopírování obsahu WWW
« Odpověď #130 kdy: 30. 09. 2015, 19:42:42 »
Emailove adresy + data aby se dalo posilat "nevyzadanou" postu.

Odkudkoli.

Rikam - jak to zobrazi browser, tak se to stahnout da. Cim vic "pasti" tim horsi pro uzivatele.

Ale to uz uvidite sam.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Zabránění kopírování obsahu WWW
« Odpověď #131 kdy: 30. 09. 2015, 19:44:20 »
Samozrejme tanto "utok" je velmi snadno detekovatelny, mym cilem bylo si zkusit tu simulaci prohlizece a uzivatelskeho vstupu. V realu by se na to muselo tak, aby to mnohem vice pripominalo chovani cloveka - pseudonahodne prozkoumavani mapy z asi predem definovanych bodu (z navigace, z vyhledavani nebo tak podobne), zpozdeni tahu a mezi tahy, ruzne body uchopeni a pusteni, opravdovy tah mysi (nyni se mys proste "teleportuje" se stisklym tlacitkem).

Vidim, ze do "ochrany" planujete investovat. Hlavne dbejte na tu privetivost pro platici uzivatele, jak tu uz tolikrat zaznelo. Neni opravdu nic smutnejsi, nez videt zajimavy produkt umrit (a tedy prijit o budouci vyvoj ci dalsi dil) jen kvuli prehnane a ve vysledku marne snaze o "ochranu dusevniho vlastnictvi".

bumbo

Re:Zabránění kopírování obsahu WWW
« Odpověď #132 kdy: 30. 09. 2015, 20:09:54 »
Pokud ty data maji nejakou cenu, tak se vzdy najde nekdo kdo najde cestu jak to ziskat, at uz logickou cestou nebo brute-force. Pokud cenu nemaji, tak je ochrana zbytecna, ztrata penez i zisku, udelate lepe pokud date tak nizkou cenu, aby nemelo cenu to prekonavat. howgh.

mo

Re:Zabránění kopírování obsahu WWW
« Odpověď #133 kdy: 30. 09. 2015, 20:47:32 »
to je to iste ako ked robis screenshot, ale mas len obrazok dat a nie data samotne a ked  je tam dobre dynamicky porieseny watermark tak to nedas prec...
https://hacks.mozilla.org/2014/03/introducing-the-canvas-debugger-in-firefox-developer-tools/

A co ti brani tam pridat freetype a mat inmemory enkryptovane stringy? Eventy od mysky a klavesnice spracovavat v tom c++ kode a browser robi len velmi zakladne veci... Zobrazenie bitmapy a preposlanie zakladnych eventov dnu... Proste bezi polonativna appka, vid unreal engine v js alebo nedavno co boli humnle bundle hry v prehliadaci. Phantomjs ti nespravi nic ine ako hocijaka skriptovacia utilita na pohyn a klikanie mysi, lebo ine nema dostupne. Nehovorim, ze je to nemozne ale musis robit ocr, musis robit rozpoznavanie obrazu a to uz su podstatne komplikovanejsie veci ako bezmy ripper robi

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Zabránění kopírování obsahu WWW
« Odpověď #134 kdy: 30. 09. 2015, 20:50:22 »
Mně z toho začíná být špatně.... přehledný strom zamotaný do nepochopitelných smyček... Už asi tuším, kdo tvoří weby pro státní správu... Když tam bude přehlednej strom, není se v čem motat. Strom rozbalit, stránky postahovat, nazdar. Jestli se podaří tohle dotáhnout do úspěšného konce, bude to rozhodně mnohem lepší produkt, než jakákoliv databáze, kterou to bude chránit a vyděláš na to miliardy. Nicméně myslím všichni ví, jak to skončí...