Impedisce all'utente non fidato di eseguire bytecode Java

2

Supponiamo che gli utenti di Windows abbiano un'esigenza legittima di eseguire determinate applicazioni Java. È possibile impedire agli utenti di introdurre ed eseguire il loro proprio bytecode JVM?

Ho trovato solo metodi per eseguire codice java non affidabile in una sandbox, ad es.

java -Djava.security.manager=COM.abc.MySecMgr SomeApp

Tuttavia, un utente non fidato può semplicemente specificare il proprio gestore di sicurezza o file di criteri.

java -Djava.security.manager -Djava.security.policy=pURL SomeApp

È possibile dare agli utenti l'accesso ad alcune applicazioni preinstallate basate su Java, ma impedire loro di introdurre ed eseguire altre applicazioni Java?

    
posta 11.11.2016 - 04:25
fonte

1 risposta

2

Un modo per eseguire ciò che vuoi che usi un utente delegato. Ciò funziona meglio con le attività che non hanno una GUI ma potrebbe funzionare anche con le attività della GUI (indipendentemente dal fatto che funzioni o meno dipende da troppi dettagli da descrivere qui: è necessario sperimentare)

È necessario impedire agli utenti di Windows di eseguire qualsiasi applicazione Java (ad esempio attraverso una modifica alle autorizzazioni sul file system in cui si trova JRE).

Quindi crei un utente diverso che ha il diritto necessario per eseguire l'applicazione e scrivere un piccolo script che avvia l'applicazione. Lo script deve inoltre essere protetto dalla modifica (almeno) dall'utente normale.

Infine, si crea un'attività pianificata per l'esecuzione dello script (facoltativamente, è possibile eseguire la riga di comando di JRE whol da tale attività pianificata ma è meno regolabile) e impostarla per l'esecuzione come utente delegato. È necessario fornire all'utente normale un modo per avviare l'attività: è possibile spiegare come farlo dall'utilità di pianificazione stessa o, come preferisco, impostarlo per l'esecuzione quando un evento specifico viene visualizzato nel registro pari e utilizzare l'eventcreate comando in un file batch per aggiungere quell'evento.

Un altro modo è usare Citrix o RemoteApp su una macchina diversa (con un'applicazione senza cuciture). Dovrai bloccare la sessione parecchio per impedire all'utente di eseguire una riga di comando.

Infine, su Windows 10/2016, potresti provare a utilizzare un contenitore di finestra mobile. Per le attività automatizzate, funzionerà perfettamente. Per le applicazioni GUI, non sono sicuro che funzioni: so che è possibile su Linux ma non l'ho provato su Windows.

    
risposta data 11.11.2016 - 10:10
fonte

Leggi altre domande sui tag