Posso proteggere un server su cui sto deliberatamente permettendo l'esecuzione del codice?

2

Contesto: competizione AI. Gli utenti caricano una DLL con una classe che implementa un'interfaccia fornita, quindi il corridore della competizione crea un'istanza di quella classe e invoca vari metodi sull'interfaccia.

Ovviamente, questo significa che sto intenzionalmente permettendo agli utenti di eseguire qualsiasi codice a loro piaccia purché lo avvolgano in un punto di ingresso che assomiglia alla mia interfaccia.

Al momento questa è una cosa aziendale interna, quindi ci fidiamo al 100% di tutti i dipendenti ( nessuna discussione su questo, per favore ), ma sarebbe bello essere in grado di renderlo più pubblico.

È possibile rendere sicuro un sistema come questo? In che modo sandbox posso rendere la dll? È attualmente in esecuzione in Azure. Suppongo che la scatola sia sottoposta a backup da parte di alcune cose di Azure automatizzate? (Non ho impostato la casella di Azure)

A) Posso impedirgli di interagire con qualcos'altro sulla scatola? B) Posso impedire loro di accedere a qualsiasi cosa al di fuori della scatola di Azure? C) Posso impedire loro di accedere ai backup di Azure (ad esempio, se dico che non mi interessa se cestinano la scatola, perché posso ripristinare dal backup, allora è sicuro?)

    
posta Brondahl 10.11.2017 - 17:37
fonte

1 risposta

1

Dato che stai già girando in un ambiente virtuale, il modo più semplice sarebbe dare a ciascun utente un ambiente piccolo e separato con cui lavorare. Se il tuo team operativo è a posto, utilizzeranno modelli e / o script standard per creare e distruggere gli ambienti virtuali in ogni caso, quindi questo dovrebbe essere semplice.

Se stavi usando un server Linux, l'approccio più semplice sarebbe la virtualizzazione tramite Docker.

    
risposta data 12.11.2017 - 14:26
fonte

Leggi altre domande sui tag