Quali sono i rischi reali dell'apertura delle porte per i giochi multiplayer?

7

Abbiamo un'applicazione di formazione aziendale multiutente creata utilizzando il motore di gioco Unity e stiamo discutendo le implicazioni sulla sicurezza dell'aggiunta di una regola di Windows Defender Firewall che apre globalmente una porta specifica dell'applicazione per tale applicazione sui sistemi in cui viene eseguita. A causa dell'architettura dell'applicazione, l'insieme dei percorsi eseguibili non è noto al momento dell'installazione, quindi non abbiamo individuato un modo migliore per autorizzare solo la porta richiesta sui soli eseguibili di cui abbiamo bisogno rispetto all'apertura globale della porta richiesta.

L'applicazione viene eseguita con un account non amministratore e viene installata con un programma di installazione che al momento non richiede privilegi elevati. Non fa l'I / O generale del disco, legge solo i propri file di dati e scrive i registri in posizioni codificate. I sistemi in cui viene eseguita l'applicazione non si trovano nel dominio aziendale e non vengono utilizzati per altri scopi (non dovrebbero contenere dati sensibili memorizzati su di essi).

C'è qualche preoccupazione per le implicazioni di sicurezza dell'apertura globale di una porta. Mi sembra che i rischi del mondo reale siano piuttosto bassi. Possiamo scegliere una porta che non viene utilizzata da altre applicazioni o servizi in esecuzione sulla macchina, quindi l'unico vero rischio sarebbe la scoperta di un attacco di escalation di privilegi remoto riuscito sull'applicazione stessa mentre era in esecuzione (un rischio che è in qualche modo inerente a un'applicazione di gioco multiplayer / multiutente). Potrei tuttavia mancare alcune potenziali implicazioni sulla sicurezza. Sono interessato a sentire le opinioni delle persone su quanto sia importante un problema di sicurezza nella pratica.

    
posta mattnewport 01.02.2018 - 18:28
fonte

2 risposte

8

Il rischio di aprire una porta è che l'applicazione di ascolto possa essere sfruttata. Ciò significa che, ad esempio, se viene rilevato un giorno zero di Unity, questi sistemi sono a rischio. Solo sei mesi fa è stato trovato un bug di esecuzione di codice in modalità remota nell'editor Unity ( CVE-2017-12939 ). Nota che questo ha influenzato l'editor, non i giochi creati da esso. Nuovi bug di sicurezza vengono scoperti continuamente, quindi qualsiasi applicazione che ascolta attraverso una porta aperta potrebbe potenzialmente essere attaccata.

Assicurati che la porta sia aperta solo per l'applicazione specifica, per impedire che la porta venga aperta per altre applicazioni che potresti installare in futuro.

Se sei paranoico e vuoi ridurre il rischio, ci sono alcune opzioni.

Hai bisogno di una porta di ascolto?

Se si crea l'applicazione in modo che solo i server siano in ascolto e i client inizino le connessioni, non è necessario aprire una porta (a meno che non si disponga anche di un firewall in uscita su tali client). Ciò ti evita anche il fastidio di dover inoltrare le porte manualmente sui dispositivi NAT nella tua rete.

Crea un account utente privilegiato minimo per l'applicazione

Hai menzionato che l'applicazione richiede solo diritti di sola lettura su alcuni file in una cartella specifica. è possibile creare un nuovo account utente sui sistemi su cui si installa l'applicazione e dargli i privilegi solo per quella cartella. Se si esegue questa operazione, assicurarsi che l'applicazione venga eseguita utilizzando tale account utente. Ciò significa che se un utente malintenzionato sfrutta l'applicazione, avrà più problemi per aumentare i privilegi. Questo richiede molto lavoro extra ed è solo per il vero paranoico.

    
risposta data 07.02.2018 - 09:35
fonte
3

Sono d'accordo con la tua analisi.

Partendo dall'alto, l'apertura di una porta significa che il traffico arbitrario (potenzialmente dannoso) può essere indirizzato al processo in ascolto su quella porta. Stai garantendo che questo gioco sarà l'unica cosa che potrebbe mai essere in ascolto su quella porta.

We can choose a port which is not used by any other applications or services running on the machine

Quindi, l'ambito dell'attacco è l'applicazione di gioco, come si nota:

the only real risk would be someone figuring out a successful remote privilege escalation attack on the application itself while it was running

Quindi la domanda si riduce a: quanto credi che un'applicazione di gioco sia progettata pensando alla sicurezza e gestisca correttamente tutti gli input malformati possibili su quella porta? Personalmente, non mi fiderei molto di ciò. La risposta di @ Snappie lo conferma.

Dato che non ci si fida che l'applicazione sia temprata, dobbiamo considerarla come "potenzialmente compromessa" e sandbox in modo appropriato. Chiediti "se questa scatola fosse totalmente pwned e fosse completamente sotto il controllo di un attaccante, quale danno avrebbe potuto fare?". Sembra che tu stia già pensando nella giusta direzione, quindi, buon lavoro!

The systems the application runs on are not on the corporate domain and are not used for any other purpose (they should not have any sensitive data stored on them).

    
risposta data 09.02.2018 - 22:14
fonte

Leggi altre domande sui tag