L'immagine della macchina virtuale è una buona protezione per il codice sorgente?

2

Abbiamo sviluppato un'applicazione che viene venduta come servizio online. Dopo un po 'di tempo ci siamo resi conto che alcuni clienti avrebbero avuto bisogno / preferire / richiedere di averlo installato localmente sulla loro intranet. Tuttavia, l'applicazione è stata sviluppata utilizzando il linguaggio di scripting e non vorremmo consentire ai client di accedere al codice sorgente.

La domanda è: quali sono i lati negativi tecnici della distribuzione dell'applicazione come immagine di una macchina virtuale?

    
posta Alexey Kamenskiy 20.01.2014 - 16:22
fonte

2 risposte

3

Penso che quello che stai suggerendo sia una variante di un progetto chiavi in mano .

Dal lato pro, un progetto chiavi in mano:

  • Può rendere più facile per un cliente iniziare subito a lavorare
  • Protegge il cliente da tutte le configurazioni necessarie
  • Può ridurre i costi di supporto perché viene utilizzata un'immagine standard per il progetto

Lato negativo:

  • Ora è necessario mantenere gli aggiornamenti del sistema operativo e degli strumenti di supporto all'interno dell'immagine principale o dorata
  • Avrai sempre i clienti che vogliono la distribuzione di baz invece di foo e bar che già fornisci

Riguardo alla protezione del codice sorgente - Se la maggior parte della proprietà intellettuale della vostra azienda è incapsulata all'interno dei vari script di configurazione, allora questo può essere un approccio decente per proteggere tali informazioni. Si:

  1. copia gli script sul sistema che sarà l'immagine principale
  2. esegui gli script per configurare le cose
  3. rimuovi gli script dal sistema
  4. crea copie dell'immagine master e distribuisci.

Questo è probabilmente vantaggioso solo se c'è un lotto di passi di configurazione che devono essere fatti. Se si tratta di un numero insignificante di passaggi, i clienti diligenti possono capire esattamente che cosa sono stati impostati dagli script. Il punto decisionale per te è se ci sono abbastanza punti di configurazione in modo che il costo delle risorse per ricreare gli script superi il costo finanziario dell'acquisto di un sistema.

Se speri di poter fornire un sistema e quindi di mantenere il controllo degli account di sistema, penso che avrai più difficoltà. Gli exploit di escalation dei privilegi degli utenti si verificano frequentemente su tutti i sistemi operativi, in particolare quando qualcuno ha già accesso al sistema.

In sintesi, prenderei in considerazione la possibilità di fornire un sistema chiavi in mano se è possibile rimuovere tutti gli script di configurazione di cui si è interessati prima della distribuzione.

Ulteriori considerazioni
Probabilmente qualsiasi file binario che hai sarebbe al sicuro da un'indagine casuale. Sulla base dei commenti, non sembra che tu sia preoccupato per le persone con debugger o strumenti di reverse engineering.

Gli schemi del database saranno esposti, e non credo ci sia molto che puoi fare per proteggerli. Se lo schema è significativo per qualcun altro è una questione diversa. Se lo schema è grande, l'offuscamento può essere sorprendentemente efficace nel tenere gli occhi indiscreti fuori da un database.

    
risposta data 20.01.2014 - 17:33
fonte
1

Non è così facile - anche se si tratta di una macchina virtuale, il client avrebbe comunque accesso al suo disco fisso. Non vedo professionisti che lo installano su una VM. La soluzione migliore consiste nel creare un accordo senza diritti di vendita della tua app e di un prezzo "speciale" per quel cliente: significa ABBASTANZA ABBASTANZA per vendere il tuo codice sorgente ...

    
risposta data 20.01.2014 - 16:49
fonte

Leggi altre domande sui tag