Dovremmo proteggere il codice sorgente dell'applicazione web da eventuali furti da parte degli host web attraverso l'offuscamento?

44

Vale la pena di offuscare un codice sorgente di un'app web java in modo che l'host web non possa utilizzare il codice in modo errato o rubare la propria attività? Se sì, come dovrebbe essere affrontato? Come dovremmo offuscare?

Siamo una nuova start-up che lancia un prodotto sul mercato. Come possiamo proteggere il codice sorgente del nostro prodotto / applicazione web?

    
posta Rajat Gupta 05.08.2013 - 16:20
fonte

15 risposte

84

Un provider di hosting malevolo può fare molto di più che semplicemente rubare il tuo codice. Possono modificarlo per introdurre backdoor, possono rubare i dati dei tuoi clienti e rovinare tutto il tuo business. La fiducia deve esistere tra te e l'host.

Informazioni sul codice sorgente. Se l'utente malintenzionato sta tentando di accedere al codice sorgente, avrà accesso al codice sorgente, nascosto o no, compilato o interpretato.

è un valore nel mascherare il tuo codice, in quanto probabilmente lo renderai solo un po 'più difficile da ottenere da un occasionale aggressore opportunista. Ma se il tuo host è fuori per prenderti, ti prenderanno.

La soluzione? La legge. Firma un contratto con loro e accetta una qualche forma di NDA .

    
risposta data 05.08.2013 - 16:30
fonte
38

Bene, questo richiede tre commenti:

  • Non puoi proteggere i segreti con l'offuscamento del codice. Non davvero . L'offuscamento del codice in qualche modo funziona contro gli attaccanti non motivati, ma non è strong. Se c'è un valore commerciale nel superarlo, allora succederà.

  • Se non ti fidi del tuo servizio di hosting, cerca un altro servizio di hosting. Se la segretezza del tuo codice è importante e vale più di qualche centinaio di dollari, allora dovresti usare il tuo hardware: noleggi spazio in una baia isolata, con lucchetti e guardie, e usi la tua macchina.

  • Il tuo codice esiste come codice compilato (byte) sui server, ma anche come codice sorgente nei sistemi di sviluppo e nelle teste dei tuoi sviluppatori. Non può essere quel segreto. Come si suol dire, un milione di dollari è sempre sufficiente per svelare i segreti, anche se solo corrompendo uno degli individui a cui è stato reso noto.

    (In quest'ultimo caso, questo potrebbe essere il tuo piano: potresti voler vedere un concorrente più grande semplicemente comprarti.)

La protezione contro il reverse engineering e il furto della proprietà intellettuale è normalmente assicurata con mezzi legali, non tecnici.

    
risposta data 05.08.2013 - 16:28
fonte
29

No, non ne vale la pena. Nessuno vuole rubare il tuo codice. Milioni di milioni di prodotti SaaS sono stati lanciati da privati e aziende che utilizzano hosting di terze parti di qualche tipo o altro, e quasi nessuno di loro si è trovato in competizione con se stessi dopo aver rubato il codice per i propri prodotti dai propri ospiti. p>

Quindi dovresti offuscare il tuo codice? Certo, se ti fa sentire meglio. Nessun danno fatto. Stai proteggendo il tuo IP da una minaccia valida? No, non proprio. È una specie di versione dello sviluppatore web di un cappello di lamina di metallo.

Qualunque cosa tu faccia, non sprecare un sacco di tempo ed energie a pensarci. Prendi una decisione di offuscare o meno, e poi passa a preoccuparti di mitigare le minacce reali.

    
risposta data 05.08.2013 - 16:29
fonte
18

In definitiva sei l'unico che può fare quella valutazione del rischio. Se dormirai meglio, offuscando il codice, provaci.

Personalmente non mi preoccuperei. I servizi di web hosting stimabili sono nel business del web hosting e non nel business del furto del codice sorgente. Se rubano il tuo codice, devono ancora installarlo, vendere il servizio, trovare clienti e combattere la causa che ti viene presentata contro di loro. È troppo sforzo per loro con troppi rischi per una ricompensa troppo bassa.

    
risposta data 05.08.2013 - 16:09
fonte
11

L'offuscamento è inefficace contro un determinato attaccante, lo rende solo leggermente più difficile. Se hai un motivo particolare per diffidare del tuo provider di hosting, prendine un altro.

Se vuoi solo essere sicuro, ottieni un accordo di non divulgazione e altre assicurazioni legali che ti consentano di inseguire il tuo ospite se abusano di cose.

Se ancora non ti fidi di loro anche con quelle assicurazioni legali, prendi server dedicati che puoi controllare e crittografare in modo che il provider di hosting non possa accedere ai dati a meno che non si compromettano con il server operativo.

Se sei preoccupato per qualcuno che ha accesso fisico ai tuoi server, imposta il tuo data center o bloccalo fisicamente in un recinto in una struttura collocata con il monitoraggio della proprietà fisica.

Utilizzare semplicemente una NDA dovrebbe comunque essere sufficiente con qualsiasi provider di hosting affidabile.

    
risposta data 05.08.2013 - 17:00
fonte
9

Non mi preoccuperei.

Due motivi:

Le lingue interpretate in runtime non possono essere completamente protette in questo modo. Per oscurarlo completamente, dovresti anche offuscarlo dal runtime, quindi non ci sarebbe modo di eseguirlo. L'offuscamento rende il compito leggermente più fastidioso. Può anche rendere il debugging e l'implementazione più dispendiosi in termini di tempo per il tuo personale.

Pochissime applicazioni contengono davvero il tipo di codice segreto in cui le persone sono davvero in difficoltà per rubare. È molto più facile solo ottenere una lista di funzionalità e alcuni appaltatori e dire "creare qualcosa di simile" piuttosto che copiare funzione per funzione con le applicazioni più comuni.

    
risposta data 05.08.2013 - 17:23
fonte
5

Dovresti prendere delle precauzioni per proteggerti, ma non per i motivi o la minaccia che stai immaginando.

Innanzitutto, se non ti fidi del tuo provider di hosting, ottieni un nuovo provider di hosting . Non c'è più bisogno di dirlo a riguardo.

In secondo luogo, anche se pensi che la proprietà intellettuale nell'applicazione web che hai creato sia preziosa, è probabile che tu sia l'unico. Vorresti rubare il sito web del tuo concorrente? Probabilmente no; non ne varrebbe la pena. Di norma, le persone non sono interessate a rubare il tuo sito. In genere il costo di personalizzare il sito di qualcun altro per adattarlo alle tue esigenze si avvicina o supera il costo di creazione da solo.

Infine, dovresti essere preoccupato per gli aggressori che recuperano il tuo codice e che lo usano per attaccarti. Password salvate, database utenti, errori di programmazione e vulnerabilità - il tuo codice probabilmente presenta un obiettivo succoso per gli aggressori malvagi . Questo è particolarmente vero se il tuo codice è scritto male o il tuo servizio è popolare.

L'offuscamento del codice non è una soluzione e non sarebbe di aiuto in ogni caso. Ma buone pratiche di sicurezza, incluso il principio del minimo privilegio, dovrebbero aiutarti. Separa il tuo accesso in modo che un singolo sistema o componente compromettente non offra al tuo aggressore l'intera app in un unico piccolo pacchetto. Più sono indipendenti e disconnessi gli elementi della tua attività, meno un intruso può impigliarsi in un solo tentativo.

    
risposta data 06.08.2013 - 03:58
fonte
5

Ho molte applicazioni Web ospitate online. Qualche codice è prezioso sì. Tuttavia, non ne ho offuscato nessuno in quanto anche se viene rubato, nessun altro può mantenerlo. Alla fine si tireranno fuori i capelli. L'ho provato con qualcuno che voleva male il mio software. Non è stato in grado di installarlo, comprenderlo o ricavarne nulla, quindi come sarebbe in grado di trovare clienti e venderli come menzionato sopra.

Il valore è nei dati e nel supporto che offri e tieni il cliente felice.

Tutte le mie applicazioni desktop potrebbero essere decompilate in un modo o nell'altro. Penso che VB6 fosse l'unico che non poteva essere decompilato. Nessuno può mantenerli perché uso codice complicato e nomi di variabili complicati.

    
risposta data 06.08.2013 - 09:42
fonte
4

Non vi è alcun merito di sicurezza nel tentativo di offuscare qualsiasi codice lato client. Un attaccante sufficientemente determinato vuole ignorare qualsiasi metodo di offuscamento che passi a loro.

Se il codice è davvero importante, mantienilo dal lato business. Prendi in considerazione qualsiasi codice sul lato client pubblico e disponibile per tutti.

    
risposta data 05.08.2013 - 16:22
fonte
4

Quando non ti fidi del tuo hoster per non rubare i tuoi dati, dovresti cercare un hoster o un host più affidabile.

Non ti stai solo affidando il codice del programma, ma affiderai anche tutti i tuoi dati e i dati di tutti i tuoi utenti. Quando si presume che il proprio hoster sia abbastanza malizioso da rubare la programmazione, sono anche abbastanza maliziosi da rubare i dati dell'utente e venderli al miglior offerente. Dati che probabilmente hai promesso di proteggere in base a una politica sulla privacy.

Quando arrivi alla conclusione che non ti fidi di nessun hoster ma che ospitare te stesso è troppo costoso, hai la possibilità di acquistare il tuo server fisico e lasciare che qualcun altro lo ospiti, ma 1. crittografare completamente il suo filesystem in modo che non è possibile clonare i dischi rigidi durante la manutenzione e 2. assicurarsi che tutte le comunicazioni di rete siano crittografate in modo che non possano sniffare il traffico.

    
risposta data 05.08.2013 - 17:28
fonte
4

Il mondo è sottosopra, il valore reale di solito non è nel codice dell'applicazione. È nei dati del cliente che il codice viene utilizzato per raccogliere / modificare. In molte applicazioni Web il codice è protetto e i dati si trovano in testo semplice spesso senza alcuna protezione semplice. Questo è uno dei problemi che PCI DSS, HIPAA e altri standard di sicurezza dei dati devono affrontare.

Partendo dal presupposto che il tuo provider di hosting è malevolo, ottenere l'accesso ai dati dei clienti distruggerà la tua azienda molto più rapidamente rispetto a ottenere il tuo codice.

Oltre alla questione della sicurezza attraverso l'oscurità, l'offuscamento del codice può anche introdurre problemi di sicurezza e dovrà essere controllato allo stesso livello o ad un livello più alto della tua normale base di codice.

    
risposta data 06.08.2013 - 02:36
fonte
3

L'offuscamento non nasconde o modifica il tuo codice, lo modifica solo in un altro formato in cui può elaborarlo,

Es: se vuoi offuscare il nome della tua classe MyHomePage my be changed in M4Page Allo stesso modo un metodo di addWidgets () sarà chiamato in altri, e il nome della funzione potrebbe anche essere cambiato, non la Funzionalità Quindi se desidero chiamare il metodo dal tuo codice offuscato posso facilmente implementarlo ...

    
risposta data 06.08.2013 - 11:30
fonte
3

No.

Chiaramente: hai intenzione di investire del tempo in una cosiddetta sicurezza attraverso l'oscurità tecnologia.

Non è una buona idea!

Per proteggere la tua idea contro le licenze di terze parti, potresti pubblicarle con una licenza pubblica come GNU GPL , creative commons  o altri.

    
risposta data 06.08.2013 - 18:49
fonte
3

Non puoi offuscare il codice o i dati sufficienti per renderli sicuri. Se tu fossi in grado, il tuo codice e i tuoi dati sarebbero inutilizzabili anche per te.

La sicurezza attraverso l'oscurità funziona solo finché il segreto della tua offuscazione rimane intatto. I segreti non rimangono mai segreti. Questa è la base per la maggior parte dei sistemi di diritti digitali, e fino ad oggi tutti sono stati incrinati.

Su una nota più tecnica, se stai usando un linguaggio interpretato (Perl, PHP) o un linguaggio interpretato dal bytecode (Java), considera di usare gli strumenti di compilazione nativi inclusi per loro. Molti linguaggi di così alto livello includono uno strumento per generare una versione C / C ++ degli script o compilare nativamente per l'hardware. Avere una versione compilata in modo nativo elimina la necessità di mantenere l'albero dei sorgenti sui server remoti e offre anche un notevole incremento delle prestazioni.

    
risposta data 07.08.2013 - 09:39
fonte
0

La sicurezza dell'oscurità non è male se non è solo la cosa su cui ti affidi. Usare l'offuscamento per proteggere il tuo codice non funzionerà, ma usare l'offuscamento con altre licenze non è male.

    
risposta data 07.08.2013 - 16:22
fonte