Come posso indurire un sistema contro azioni dannose dall'interno?

1

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.

    
posta cybermonkey 22.09.2016 - 17:50
fonte

1 risposta

1

Ci sono potenzialmente informazioni degne dei libri su questo argomento; non è un piccolo argomento. Ti darò un brain-dump di idee per iniziare.

Assicurati che Windows Update funzioni e applichi gli aggiornamenti.

Assicurati che il tuo firewall sia acceso e configurato correttamente. Non vuoi esporre SMB e RDP su Internet; considera la possibilità di avere una porta RDP accessibile solo da indirizzi fissi.

Rimuovi tutto il software che non stai effettivamente utilizzando. Questo include driver proprietari che puoi tranquillamente scambiare per quelli generici Microsoft; spesso questi sono pieni di buchi di sicurezza.

Se stai utilizzando un ecosistema di applicazioni abbastanza omogeneo, ti consiglio di esaminare le soluzioni SRP (Software Restriction Policy) e sandboxing.

Puoi anche installare EMET per ottenere una protezione generale contro gli exploit. Assicurati di configurarlo effettivamente.

Assicurati che la tua politica di sicurezza locale sia configurata per indurire contro gli attacchi tra utenti (in particolare rafforzando i DACL predefiniti degli oggetti di sistema).

Assicurarsi che le directory dispongano di controlli di accesso appropriati. In sostanza, si desidera rimuovere tutti i casi di autorizzazioni di directory che consentono ai gruppi Everyone o Authenticated Users di avere accesso in scrittura.

Configura il controllo sulla creazione dei processi, in modo da avere un miglior monitoraggio di ciò che gli utenti sono fino a quando. Applica il controllo dei file (crea, scrivi) alle directory condivise e ai percorsi di sistema critici come C:\Windows . Tentativi di accesso di controllo e successi, in particolare su RDP.

Avvia il livello di applicazione del controllo dell'account utente fino al massimo. Ci sono un sacco di bypass su UAC, e non vuoi essere ingannato nell'eseguire qualcosa che un utente ha caricato e che finisce per essere impacciato inaspettatamente. La maggior parte dei bypass richiede il livello di applicazione UAC come predefinito.

Assicurati che la variabile di ambiente %PATH% di sistema non includa alcun percorso scrivibile dagli utenti.

Assicurati che gli utenti non abbiano accesso RDP. Ci sono diversi modi per indurire questo.

Segui una guida per bloccare le workstation. Nell'improbabile eventualità che qualcuno faccia entri nel server (es. RDP in) vuoi che i loro account utente siano il più niti possibile, senza accesso al prompt dei comandi, all'editor di registro, al task manager, all'elenco dei servizi , ecc. - questo può anche essere risolto in parte con SRP.

Se possibile, sposta i registri FTP e i registri eventi di sistema (inclusi i log di controllo) dall'intero sistema, in tempo reale. Vuoi avere dei backup se qualcuno in qualche modo ottiene un amministratore locale e cancella tutti i log.

Considera un sistema di rilevamento delle intrusioni basato su host (HIDS) come OSSEC .

Guarda le esercitazioni per l'escalation dei privilegi di Windows e implementa misure di difesa per proteggersi dagli imbrogli che usano.

    
risposta data 22.09.2016 - 23:18
fonte

Leggi altre domande sui tag