Come proteggere il codice sorgente che risiede sul server web virtualbox che inizia all'avvio?

2

Ho installato CentOS 6 su un disco virtualbox da 3 GB. Ospita un server Web che si avvia automaticamente all'avvio del sistema operativo. Nessun accesso utente richiesto. Quando si avvia, viene assegnato un IP e la macchina host può connettersi al server.

L'idea è di consegnarla a qualcuno su un'unità flash, lasciare che installino virtualbox sul proprio computer ed esegua l'immagine per avviare il server.

Il software del server è scritto in una lingua interpretata e il codice sorgente risiede anche sull'immagine. Il problema è che non vogliamo che qualcuno si introduca nel disco e ottenga il codice sorgente che è chiaramente in agguato.

Dal momento che vogliamo che l'httpd inizi all'avvio senza fornire a nessuno alcuna password, non possiamo crittografare il disco. La crittografia del disco porta anche a complicazioni dal momento che httpd dovrà avviarsi dopo aver montato il volume criptato ecc.

Considerando questi vincoli, quali sono le opzioni per proteggere il codice sorgente all'interno dell'unità virtuale?

    
posta pwned 03.05.2013 - 12:35
fonte

2 risposte

4

Macchina virtuale, ma CPU reale. Indipendentemente da come decidi di vederlo, il codice per il tuo server gira ancora sulla macchina del presunto aggressore. Allo stesso modo, la crittografia del disco di qualsiasi tipo non sarebbe di aiuto, anche se tu stesso hai digitato personalmente la password al momento del boot: ad un certo punto, i dati sono ancora decifrati, sulla macchina dell'attaccante.

Le macchine virtuali non offrono alcuna protezione contro questo tipo di ispezione. VM protegge il sistema operativo host dal guest, non viceversa.

Questa è una di queste situazioni in cui "go Cloud" è un buon consiglio. Non dare una chiavetta USB; invece, ospita il codice su un server da qualche parte. In questo modo, puoi mantenere il controllo della posizione dei dati e chi lo legge.

    
risposta data 03.05.2013 - 13:18
fonte
2

Se dai a qualcuno un codice da eseguire sul proprio computer, c'è sempre la possibilità che facciano qualcosa che non volevi o che non ti aspetti. Se hai dato loro il codice sorgente, lo hai reso più facile per loro. Se devi assolutamente dare alla gente il codice effettivo e non vuoi che giochino con esso, ecco due possibilità tratte dal mondo reale delle vendite del software:

  • Aumenta il rischio. Fai in modo che l'utente finale accetti alcune assurdità che impediscono loro di copiare, decodificare o ridistribuire il codice.

  • Aumenta la complessità. Offusca il codice tramite compressione, crittografia, rimozione di simboli, spaghettificazione e altre sciocchezze.

Alla fine, se dai il codice alle persone, potrebbero fare qualcosa che non ti piace. Questa è la natura dei computer.

    
risposta data 03.05.2013 - 16:24
fonte

Leggi altre domande sui tag