Non ero sicuro sul titolo, quindi modificalo se ritieni che possa essere migliorato.
Gestisco una rete di gioco multiplayer (il sistema di backend che gestisce account e liste di giocatori e voglio espandere il mio servizio includendo un pannello di controllo basato sul Web. Questo pannello di controllo consentirà agli utenti di noleggiare server di gioco che sono completamente compatibile con la mia rete.
I server di giochi funzioneranno su un server dedicato separato. Ciò significa quindi che gli utenti avranno accesso ai file eseguibili sul proprio server e potranno cambiarli.
Questo presenta l'ovvio problema di file e azioni malevoli eseguibili. Con questo intendo:
- Il gioco supportato dal servizio ha un file
autoexec.cfg
che può essere popolato con la riga di comando di Windows (che può essere eseguita dal server); - Il gioco ha modifiche al server che per lo più richiedono una DLL personalizzata (ancora un altro eseguibile) per funzionare correttamente;
- Una determinata modifica del server richiede anche la modifica del file eseguibile del server di gioco.
Va notato che l'unico accesso che l'utente avrà è tramite il pannello di controllo web e FTP (che sarà la loro directory utente come user1 > server1
). Non avranno accesso al desktop remoto.
Come posso evitare il danno da software dannoso / modifiche del server che gli utenti caricano? Si noti che questo è diverso da un server web poiché la superficie di attacco è più piccola (limitata solo ai server di giochi che girano sulla macchina e che ci sono un massimo di 20 server di gioco per macchina).
Ecco cosa posso pensare, ma c'è qualcos'altro che posso fare?
- Un account utente per ogni utente - consentirà la separazione dei processi del server di gioco per ciascun utente (facile tracciare un processo problematico fino a un utente);
- Limitando la quantità di PID che ogni utente può eseguire - ogni server deve avere solo un PID, quindi logicamente possiamo limitare la quantità di PID alla quantità di server di giochi che l'utente ha. Ovviamente questo non risolve il problema di "sostituzione con copia dannosa";
- Permetti all'utente di accedere solo ai file nella loro cartella;
- Richiedi l'approvazione manuale di tutti gli eseguibili prima che vengano applicati;
- Scansione virus / malware su ogni file caricato dall'utente
Il sistema operativo sarà Windows Server 2008 (o 2012), ogni server di giochi avrà il proprio indirizzo IP, nessun'altra applicazione verrà eseguita sulla macchina.