Come posso assicurarmi che il mio codice sorgente dell'applicazione web Python sia sicuro?

2

Nota: sono nuovo delle pratiche di sicurezza delle informazioni, quindi sentitevi liberi di indicare qualsiasi cosa potrei fare meglio.

Situazione: sto creando un'applicazione web che esegue un programma Python come parte del back-end. Questo file è closed source e deve essere protetto da chiunque cerchi di accedervi senza autorizzazione.

Qual è il modo migliore per garantire che questo file venga copiato o visto mentre ancora consente all'applicazione Web di inviare dati di input al file e ricevere gli output appropriati dallo stesso file?

Inoltre, vorrei sottolineare che il servizio non ha bisogno di sicurezza "a livello di banca", ovviamente più sicuro è il migliore ma al momento disponiamo solo delle risorse per consentire misure di sicurezza relativamente facile da implementare.

Il mio pensiero originale era installare Python sul server web e usare semplicemente l'interprete per eseguire il file .py. Presumo che questo sia probabilmente piuttosto insicuro, a causa del fatto che il file reale è semplicemente seduto sul server Web per chiunque possa guardarlo?

In secondo luogo, ho pensato di utilizzare un programma ( Nuitka o PyInstaller ) per convertire Python in un eseguibile e poi avere il file binario sul server web. Non sono del tutto sicuro di quanto ciò aumenterebbe la difficoltà di ottenere il codice sorgente ma, cosa più importante, i miei colleghi sono preoccupati che l'utilizzo di un software di terze parti per convertire il codice confidenziale sia un rischio per la sicurezza di per sé. Significa che il software potrebbe potenzialmente fare copie del programma e in definitiva perdere il programma in qualche modo che potrebbe causare danni.

I metodi sopra indicati sono sufficienti o esiste un modo migliore per approcciare la sicurezza del codice sorgente?

    
posta Paul Warnick 02.08.2016 - 18:24
fonte

1 risposta

2

Uno di questi metodi dovrebbe essere sufficiente, supponendo che il server web sia impostato correttamente e non consenta agli utenti di accedere e visualizzare la struttura del file system.

Se si desidera compilare il codice in un file eseguibile e assicurarsi che gli sviluppatori del software di compilazione non possano ricevere il codice restituito a loro, configurare un sistema di sviluppo come virtuale con tutto il software necessario, ma nessuno del tuo codice. Spegni il virtuale, crea una copia / clona con una copia completa del disco rigido virtuale. Avvia la copia, rimuovi la scheda di rete e collegala a un'unità virtuale separata (questa unità dovrebbe trovarsi in una cartella separata e verrà inserito il codice la prima volta che la usi). Esegui tutto il lavoro sul clone, copia il file eseguibile nell'archivio rimovibile (USB, CDROM, ecc.), Quindi posiziona il lavoro finito sul server web. Almeno una volta al mese chiudere ed eliminare il sistema clone (avendo cura di preservare l'unità virtuale separata con il proprio codice), attivare il virtual originale, completare tutti gli aggiornamenti del sistema operativo e delle applicazioni e creare un nuovo clone (seguendo gli stessi passaggi di rimuovendo la scheda di rete e connettendo l'unità virtuale con il tuo codice).

    
risposta data 02.08.2016 - 20:13
fonte

Leggi altre domande sui tag