Protipirátská ochrana LAMP aplikace

Vetroplax

Protipirátská ochrana LAMP aplikace
« kdy: 15. 10. 2014, 10:59:11 »
Dobry den,
rad by som vas poprosil o radu, resp. nasmerovanie na cestu k spravnemu rieseniu:

Prevadzkujeme malu aplikaciu (debian, apache, php, mariadb), ako externy dodavatel pre istu spolocnost.
Pre tuto spolocnost je to business-critical, my dodavame applikaciu, support, analyzy a dalsie sluzby a veci s pridanou hodnotou okolo tohto. Hoci vztahy su korektne, s aktualnym vedenim, nastali iste zmeny, kde vnimame riziko, ze nasu aplikaciu, nainstalovanu na ich serveroch, si jednoducho odkopiruju a zacnu prevadzkovat sami. Riziko je realne, je to krajina balkanskeho typu, kde sa veselo pirati...
Nejde tu o peniaze (nie primarne, je to minoritny klient), resp. nepredpokladame, ze sa to podari (na business vrstve urcite nebudu schopni dlhodobo maintainovat, na technologickej asi ano), ale o ten princip "ukradnutia".

Navrh riesenia:
aplikacia (db, php kody) budu/su na zasifrovanych particiach, mountovane manualne pri boote, pricom heslo sa aktualne zadava manualne - toto existuje, principialne "MUST".

Chceme sprevadzkovat "validacny" server na nasej strane, na ktory by sa aplikacia (u klienta) pri kazdom boote A pri nejakych urcitych nahodnych intervaloch kontrolovala, ci dana instalacia je validna, optimalne i dokedy je validna.
ak validacia zlyha (i v pripade, ze nebude konektivita na validacny server), vyhlasi piratsky mod a vykona prislusne akcie.

Otazka:
ako/aky postavit "validacny" server, a ako by mohla prebiehat efektivna validacia?
preferujeme existujuce riesenia, overene praxou.

Dakujem za podnety.
Vetroplax
« Poslední změna: 15. 10. 2014, 11:03:04 od Petr Krčmář »


tdvorak

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #1 kdy: 15. 10. 2014, 11:10:53 »
A co bude bránit "pirátovi" prostě onu validační funkci ze software odstranit? Je to PHP, předpokládám tedy, že mají zdrojové kódy u sebe (když píšete že budou aplikaci schopni nadále udržovat).

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #2 kdy: 15. 10. 2014, 11:17:11 »
Jednoducho povedane to, co vrazis do vytvorenia "ochrany" su vyhodene peniaze. Nech sa akokolvek snazite, tak vzdy sa najde sposob, ako to obist.
Prvy krok - sifrovana particia je ok, pokial nemaju root heslo, alebo nejaky pristup na server.
Jedine, co by ako/tak mohlo pomoct je osetrit si to v zmluve, ina realna moznost nie je.

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #3 kdy: 15. 10. 2014, 11:26:15 »
Zapomen. Bud muzes spolehat na slusnost a pravo nebo to provozovat jako servis. Takhle to "zabezpecit" poradne nejde.

Vetroplax

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #4 kdy: 15. 10. 2014, 11:27:45 »
nebrani, samozrejme nic, aby to nakoniec obisli.
okrem miernej obfuskacie predmetneho kodu z nasj strany a najma casu potrebneho na danu analyzu a upravu z ich strany.
ja mi jasne, ze dana architektura neposkytne 100% ochranu, ide najma o stazenie tejto moznosti, resp. aby klient ani neskusal pomysliet na "piratenie".
cele to ma mat najma odstrasujuci efekt, kedze pre nich je to misson-critical, i denny vypadok sluzby je celkom drahy (vyrazne drahsi ako poplatky pre nas...)


Kolemjdoucí

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #5 kdy: 15. 10. 2014, 11:56:10 »
aplikacia (db, php kody) budu/su na zasifrovanych particiach, mountovane manualne pri boote, pricom heslo sa aktualne zadava manualne pri boote

Svatá prostoto :-) Dřív nebo později na serveru spustí patřičně upravené sshd a mají hesla komplet.

rad by som vas poprosil o radu, resp. nasmerovanie na cestu k spravnemu rieseniu:

Provozovat vlastní server nebo virtuální server, třeba tady v ČR a zákazníkovi to prodat jako službu. Když je to LAMP, tak by to neměl být problém.

Lol Phirae

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #6 kdy: 15. 10. 2014, 11:57:13 »
 ;D ;D ;D

aaa

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #7 kdy: 15. 10. 2014, 12:18:35 »
Jedine co ma trochu smysl je obfuskace kodu nejakym udelatkem, vsechno ostatni se da pomerne rychle obejit.

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #8 kdy: 15. 10. 2014, 12:21:18 »
"kompiluj" to pres Zend Guard, IonCube apod.
Děkuji za možnost editace příspěvku.

McFly

  • *****
  • 633
    • Zobrazit profil
    • E-mail
Re:Protipirátská ochrana LAMP aplikace
« Odpověď #9 kdy: 15. 10. 2014, 12:28:10 »
Zend Guard i IonCube už mají k dispozici dekompilátory obfuskovaného kódu. Osobně užívám bcompiler, ale funguje jen do verze PHP 5.3.x.

Miramel

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #10 kdy: 15. 10. 2014, 12:31:50 »
Ano, obfuskace kódu je dobrý začátek, ale licenční server bych tam nedával.
Lepší řešení:
Include soubor s licencí, což je číslo, obfuskovaný kód si číslo přeloží a získá z toho datum, pokud je datum o šest měsíců vyšší, jsi v pohodě.

Include: proměnná
Proměnná v kódu
Sůl uvedená někde jinde.

Spojí obě proměnné a vynásobíš to solí -> pustíš to do funkce, která je buď ok nebo ne.
Důležité je, aby se to nezaseklo na stejném místě.
Lepší je v případě nesouladu licence vyvolávat chybu pokaždé na jiném místě kódu.
To ve spojení se zmatením kódu by mělo vyvolat stav, že nebude snadné to změnit.
Jde o to, aby se chyba projevila tam, kde nebude samotná validační funkce, aby nestačilo rozmotat jen tu validační funkci.
Mohlo by postačit, aby nefungovalo zadávání nových údajů.

Kód půjde snadno ukrást a přenést, ale rozmotat to bude oříšek možná větší, než haxnout licenční server.

A vy si přihodíte jednoduchou funkci, která změní kód tak, aby byla licence dalších šest měsíců platná.

Miramel

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #11 kdy: 15. 10. 2014, 12:38:49 »
Zend Guard i IonCube už mají k dispozici dekompilátory obfuskovaného kódu. Osobně užívám bcompiler, ale funguje jen do verze PHP 5.3.x.

Když se mnou navrhované řešení udělá dobře, tak ti dekompilovaný kód bude stejně k ničemu.
Vyřešení licence by vyžadovalo důkladné seznámení se s licenční funkcí.

Jinak licenční server je v tomhle případě ptákovina, protože snadno zjistím, která funkce se připojí na licenční server a upravím jí.
Já naopak chci funkci udávající "oprávněnost" použití co nejvíc zahrabat do kódu.
A bude se hodit i implementace GET: www.firmatvruce.cz/oznameniovyprsenilicence.php

Vetroplax

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #12 kdy: 15. 10. 2014, 12:51:14 »
dakujem za odpovede,
najma hinty od Miramela vyzeraju prakticky implementovatelne (v nasom kontexte krajiny klienta, kde vcera bude az zajtra  :o ), asi pojdeme tymto smerom.

Dakujem samozrejme i ostatnym, i ked ich odpovede boli skor urcene pre civilizovany svet (posvatnost obch.zmluvy, prevadzkovat ako servis....), co ale v tomto pripade zial absolutne nie je tento pripad.

Dam potom feedback, do konca tyzdna, co-ako sme naimplementovali, aby sa mohla otazka uzatvorit.

este raz vdaka.
V.

JSH

Re:Protipirátská ochrana LAMP aplikace
« Odpověď #13 kdy: 15. 10. 2014, 13:12:47 »
Dovolím si připojit pár myšlenek k navrhované protipirátské úpravě :

1) Pokud to neumíte, pak i nezkušený pirát tu ochranu prolomí za zlomek času, který vzal její vývoj. Zkušený pirát to zmákne s prstem v nose během obědové pauzy. (ochrany se neanalyzují, ale NOPují)
2) Protipirátská ochrana sere pouze legální uživatele. Sere je obzvlášť, pokud nefunguje. Například pokud ji napsal někdo, kdo to neumí.
3) Přidat do něčeho dodatečně protipirátskou ochranu je jednoznačné obvinění. U software na zakázku je jasný i obviněný.

PCnity

  • *****
  • 706
    • Zobrazit profil
    • E-mail
Re:Protipirátská ochrana LAMP aplikace
« Odpověď #14 kdy: 15. 10. 2014, 14:01:30 »
zbytocne vyhodeny cas, pripadne peniaze.
Ak to ma byt tajne, prejdite na SaaS model.