it-swarm.dev

Dovremmo proteggere il codice sorgente dell'applicazione Web dall'essere rubato dagli host web attraverso l'offuscamento?

Vale la pena offuscare un Java Java in modo che l'host web non possa fare un uso errato del codice o addirittura rubare la tua attività? In tal caso, come dovrebbe essere gestito? noi offusciamo?

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

44
Rajat Gupta

Un provider di hosting dannoso 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 l'intera azienda. La fiducia deve esistere tra te e l'host.

Informazioni sul codice sorgente. Se l'attaccante sta tentando di accedere al tuo codice sorgente, lo faranno ottiene l'accesso al tuo codice sorgente, offuscato o meno, compilato o interpretato.

C'è è un valore nell'offuscare il tuo codice, nel senso che probabilmente lo renderai solo un po 'più difficile da ottenere dall'attaccante opportunista occasionale. Ma se il tuo Host è pronto a prenderti, loro ti prenderanno.

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

84
Adi

Bene, questo richiede tre commenti:

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

  • 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 un po 'di spazio isolato, con lucchetti e protezioni, e esegui la tua macchina al suo interno.

  • Il tuo codice esiste come codice compilato (byte) sui server, ma anche come codice sorgente nei tuoi sistemi di sviluppo e nelle testate dei tuoi sviluppatori. Non può essere quello segreto. Come si suol dire, un milione di dollari è sempre sufficiente per svelare i segreti, anche solo corrompendo una delle persone che gli sono state rese private.

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

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

38
Tom Leek

No, non ne vale la pena. Nessuno vuole rubare il tuo codice. Mille milioni SaaS sono stati lanciati da privati ​​e aziende utilizzando hosting di terze parti di una descrizione o di un'altra, e quasi nessuno di loro si è trovato a competere con se stesso dopo aver ottenuto il codice per i loro prodotti rubati dai loro ospiti.

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. È un po 'la versione dello sviluppatore web di un cappello di latta.

Qualunque cosa tu faccia, non perdere molto tempo ed energie a pensarci. Prendi la decisione di offuscare o meno, quindi passa a preoccuparti di mitigare le minacce reali.

29
Xander

Alla fine sei l'unico che può fare quella valutazione del rischio. Se dormi meglio offuscando il tuo codice, provaci.

Personalmente non mi preoccuperei. I servizi di web hosting affidabili sono nel settore dell'hosting web e non nel settore del furto di codice sorgente. Se rubano il tuo codice, dovrebbero comunque installarlo, vendere il servizio, trovare clienti e combattere la causa che avresti presentato contro di loro. È troppo sforzo per loro con troppo rischio per una ricompensa troppo bassa.

18
Dan Pichelman

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

Se vuoi solo essere al sicuro, ottieni un accordo di non divulgazione e altre garanzie legali che ti consentano di cercare l'host se abusano di cose.

Se non ti fidi ancora di loro, anche con quelle garanzie legali, ottieni server dedicati che puoi controllare e crittografare in modo tale che il provider di hosting non possa accedere ai dati a meno che non accedano al server operativo.

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

Semplicemente usando un NDA dovrebbe essere sufficiente con qualsiasi provider di hosting affidabile.

11
AJ Henderson

Non mi preoccuperei.

Due motivi:

Le lingue interpretate in runtime non possono davvero essere completamente protette in questo modo. Per offuscarlo completamente dovresti offuscarlo anche dal runtime, quindi non ci sarebbe modo di eseguirlo. L'offuscamento rende il compito leggermente più fastidioso. Può inoltre rendere il debug e la distribuzione più dispendiosi in termini di tempo per il proprio personale.

Pochissime applicazioni contengono davvero il tipo di codice segreto di salsa che le persone farebbero davvero tanto per rubare. È molto più semplice ottenere un elenco di funzionalità e alcuni appaltatori e dire "crea qualcosa di simile" piuttosto che copiare funzione per funzione con le applicazioni più comuni.

9
Bill

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

Prima di tutto, se non puoi fidarti del tuo provider di hosting, ottieni un nuovo provider di hosting. Non c'è più bisogno di dirlo.

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

Infine, dovresti preoccuparti che gli attaccanti recuperino il tuo codice e lo utilizzino per attaccarti. Password salvate, database degli utenti, errori di programmazione e vulnerabilità - il codice probabilmente rappresenta un obiettivo interessante per gli autori di attacchi dannosi. Ciò è particolarmente vero se il tuo codice è scritto male o il tuo servizio è popolare.

Offuscare il tuo codice non è una soluzione e non aiuterebbe comunque. Ma le buone pratiche di sicurezza, incluso il rispetto del principio del privilegio minimo, dovrebbero aiutarti. Separa il tuo accesso in modo da compromettere un sistema o un componente non fornisce al tuo aggressore l'intera app in un piccolo pacchetto ordinato. Più sono indipendenti e disconnessi gli elementi della tua attività, meno un attaccante può impigliarsi in una sola volta.

5
tylerl

Ho molte applicazioni web ospitate online. Alcuni codici sono preziosi sì. Tuttavia, non l'ho offuscato dal momento che anche se viene rubato, nessun altro può mantenerlo. Alla fine si toglieranno i capelli. L'ho provato con qualcuno che voleva male il mio software. Non è stato in grado di installarlo, comprenderlo né ricavarne nulla, quindi come sarebbe in grado di trovare clienti e venderlo come indicato sopra.

Il valore è nei dati e nel supporto che offri e per soddisfare il cliente.

Tutte le mie applicazioni desktop potrebbero essere decompilate in un modo o nell'altro. Penso che VB6 sia stato l'unico a non poter essere decompilato. Nessuno è riuscito a mantenerli perché uso codifica complicata e nomi variabili variabili.

5
Cyril Joudieh

Non vi è alcun merito di sicurezza nel tentativo di offuscare qualsiasi codice lato client. Un attaccante abbastanza determinato will ignora qualsiasi metodo di offuscamento che gli viene lanciato.

Se il codice è davvero importante, tienilo sul lato aziendale. Considera qualsiasi codice lato client pubblico e disponibile a chiunque.

4
user10211

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

Non stai solo affidando loro il codice del programma, ma anche tutti i tuoi dati e i dati di tutti i tuoi utenti. Quando supponi che il tuo hoster sia abbastanza malizioso da rubare la tua programmazione, è anche abbastanza malizioso da rubare i tuoi dati utente e venderli al miglior offerente. Dati che probabilmente hai promesso di proteggere ai sensi di una politica sulla privacy.

Quando arrivate alla conclusione che non vi fidate di nessun hoster ma l'hosting di voi stessi è troppo costoso, avete la possibilità di acquistare il vostro server fisico e lasciare che qualcun altro lo Host, ma 1. crittografate completamente il suo filesystem in modo che non possano clonare i dischi rigidi durante la manutenzione e 2. assicurarsi che tutte le comunicazioni di rete siano crittografate in modo che non possano fiutare il traffico.

4
Philipp

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 sono spesso in chiaro senza una semplice protezione. 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 è dannoso, ottenere l'accesso ai dati dei clienti distruggerà la tua azienda molto più rapidamente di 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 superiore rispetto alla normale base di codice.

4

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

La sicurezza tramite l'oscurità funziona solo fino a quando il segreto della tua offuscamento 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 violati.

In una nota più tecnica, se si utilizza un linguaggio interpretato (Perl, PHP) o un linguaggio interpretato bytecode (Java), prendere in considerazione l'utilizzo degli strumenti di compilazione nativi inclusi per essi. Molti linguaggi di così alto livello includono uno strumento per produrre una versione C/C++ dei tuoi script o compilare in modo nativo per il tuo hardware. Avere una versione compilata in modo nativo elimina la necessità di mantenere l'albero dei sorgenti sui server remoti e fornisce anche un significativo aumento delle prestazioni.

3
CyberSkull

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

Ad esempio: se si desidera offuscare il nome della classe MyHomePage, il mio verrà modificato in M4Page. Allo stesso modo un metodo di addWidgets () verrà nominato in qualche altro, 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 ...

3
Ravi Chandran

No.

Chiaramente: stai pianificando di investire tempo in un cosiddetto sicurezza attraverso l'oscurità tecnologia.

Non è una buona idea!

Per proteggere la tua idea dalle licenze di terze parti, puoi pubblicarle con tale licenza pubblica come GNU GPL , creative commons o altre.

3
F. Hauri

La sicurezza per oscurità non è male se non è solo una cosa su cui contare. L'uso dell'offuscamento per proteggere il codice non funzionerà, ma l'utilizzo dell'offuscamento con altre licenze non è male.

0
John The Ripper