Windows "Esegui come" senza conoscere la password


13

Stiamo installando un sistema multimediale digitale presso la stazione radio del college in cui lavoro. Stiamo provando a dare ai programmatori (lettura; DJ, non programmatori) l'accesso alla musica, senza consentire loro di copiarli sui loro flash drive o trasferirli su Internet.

Siamo in esecuzione su sistemi Windows (Windows XP per i computer client e Windows Server 2008 per il media server). La mia idea è questa

  • Creare un utente (ProgramUser) che non ha alcun accesso ai media digitali.
  • Creare un utente (MediaUser) che abbia accesso in sola lettura ai media digitali di cui i programmatori non sanno nulla e non conoscono la password.
  • Chiedi agli utenti di accedere a Windows come ProgramUser, senza fornire loro alcun accesso al supporto.
  • Esegui la nostra applicazione di riproduzione ( Traktor ) come MediaUser, consentendo al programmatore di riprodurre file multimediali ma non di copiarli o modificarli.

Questa sembra la soluzione perfetta, ma c'è un gotcha. Se l'applicazione di riproduzione o la macchina si arresta in modo anomalo, il programmatore è l'unica persona che sarà in grado di farlo funzionare di nuovo in un ragionevole lasso di tempo (siamo una stazione radio FM da 15 kW, quindi i tempi di fermo sono un grosso problema). Da qui il mio dilemma ...

Come posso dare al programmatore la possibilità di avviare la nostra applicazione di riproduzione come utente a cui non conoscono la password?

Risposte:


32

sudo.bat

@echo off
runas /user:Administrator /savecred %1

sorprendentemente non chiederà più la password anche dopo il riavvio o l'interruzione dell'alimentazione


2
+1 per la risposta corretta. Il mio dio è che una falla nella sicurezza
Dave Cheney,

seriamente come non è noto che questo sia un buco nella sicurezza? Perché è aperto ?!
Marm0t

2
Sono abbastanza sicuro che funziona solo se la password per l'account è stata salvata in Credentials Manager, quindi non è davvero una falla di sicurezza come non lo è su OSX o su qualsiasi altro sistema in cui le credenziali possono essere salvate e riutilizzate.
Mark Henderson

È ancora necessario conoscere la password la prima volta e questo smetterà di funzionare se cambia.
ivan_pozdeev,

1

... senza consentire loro di copiarne nessuna sulle loro unità flash o trasferirla su Internet

Disabilita le unità flash USB, l'accesso a Internet, ecc. Su queste macchine.


0

Ci sono un paio di modi in cui riesco a pensare fuori mano per aggirare questo problema. Il primo (e più difficile) sarebbe scrivere un piccolo servizio Windows che avvii Traktor. Pertanto, ProgramUser può richiedere al servizio una nuova istanza di Traktor e il servizio è in esecuzione come MediaUser, quindi Traktor viene avviato come MediaUser.

Un'altra possibilità, e molto più semplice, è avere un collegamento di avvio impostato che avvii Traktor ad ogni accesso: i collegamenti di Windows consentono di impostare le credenziali dell'utente appropriato nelle proprietà del collegamento. Se il computer si arresta in modo anomalo, i programmatori devono solo accedere e hanno un nuovo Traktor in esecuzione come MediaUser!

Spero che una di queste soluzioni funzioni per te!


Io e l'altro amministratore siamo ingegneri del software, quindi questo non sarà un problema. Eseguiamo anche un altro servizio che monitora la nostra scheda di missaggio per l'ingresso GPIO, quindi è qualcosa che stiamo già facendo. Questa è un'ottima idea, grazie!

0

È possibile creare un programma che avvia il processo di MediaUser per il DJ. Questo può essere fatto in modo che venga eseguito come ProgramUser.

La password / credenziali per MediaUser dovrebbe essere compilata nel programma, in modo che conoscesse la password, ma l'utente finale non avrebbe mai bisogno di esserne consapevole. Avrebbero solo un pulsante o un programma che dice "Riavvia Tracktor" e può fare tutto il lavoro.

Ecco un esempio C # del processo. L'unica modifica sarebbe codificare a fondo le credenziali in modo che il DJ non le veda.


Questo è fondamentalmente ciò che stavo per suggerire, ma con l'avvertenza che è sicurezza attraverso l'oscurità. Se gli utenti finali riescono a trovare ed eseguire una copia di procmon o procexp, saranno in grado di ottenere la password senza problemi.
Ryan Bolger,

@Ryan: Come si ottiene la password da procmon o procexp in questa situazione? Puoi ottenere il nome utente con cui è in esecuzione un processo, ma non pensavo che potresti ottenere le credenziali. Capisco che il rev. progettare l'eseguibile con la password hardcoded lo farebbe, ma a parte questo, come otterresti queste informazioni?

0

Dai un'occhiata a Steel RunAs. L'ho usato per diversi script nella mia carriera in SysAdmin quando non erano plausibili altre alternative. È decisamente utile. Genera un file eseguibile, in cui crittografa le credenziali archiviate. collegamento


0

La situazione ideale sarebbe quella di modificare Traktor per l'esecuzione come servizio, con una GUI separata. Questo ti offre le migliori opzioni di sicurezza: Traktor sarebbe quindi in esecuzione come utente con le credenziali corrette e nessuno deve sapere quali sono o deve digitare la password per riavviarla. In effetti, puoi farlo riavviare automaticamente se si blocca nello snapin dei servizi.

La tua GUI per guidare Traktor viene quindi scritta come propria applicazione che l'utente esegue come se stessa, invia messaggi al servizio Traktor (tramite TCP / IP, RPC, memoria condivisa o qualsiasi altra forma di IPC) per fare ciò che il l'utente vuole. Se hai fatto funzionare la GUI usando un protocollo cross-network (ad esempio TCP / IP), l'utente può accedere alla sua workstation e il servizio traktor può essere eseguito su un server più affidabile, eventualmente bloccato per evitare riavvii "accidentali". Se sei bravo, potresti invece scrivere un'applicazione Web per guidare Traktor (ovvero, il server web invierebbe i messaggi al servizio) e il tuo utente potrebbe eseguire la stazione da casa!

Il servizio traktor verrebbe avviato con il server, senza la necessità di accedere.


Idea interessante, ma Traktor è molto proprietario e in realtà non ha un'API. Gli unici punti di integrazione sono MIDI, Send Keys e Plugin VST. Sebbene l'idea di Traktor come motore di riproduzione basato su servizi con un'interfaccia utente personalizzata sia interessante mentre esaminiamo un'interfaccia utente personalizzata più solida che gestisce cose come la creazione di grafici e playlist.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.