Windows "Ejecutar como" sin conocer la contraseña

13

Estamos instalando un sistema de medios digitales en la estación de radio de la universidad en la que trabajo. Estamos tratando de darles a los programadores (lectura; DJs, no codificadores) acceso a la música, sin permitirles copiar nada de eso en sus unidades flash o transferirlo a través de Internet.

Estamos ejecutando en sistemas Windows (Windows XP para las máquinas cliente y Windows Server 2008 para el servidor de medios). Mi idea es esta

  • Cree un usuario (ProgramUser) que no tenga ningún acceso a los medios digitales.
  • Cree un usuario (MediaUser) que tenga acceso de solo lectura a los medios digitales del que los programadores no sepan nada y no conozcan la contraseña.
  • Haga que los usuarios inicien sesión en Windows como ProgramUser, sin darles acceso a los medios.
  • Ejecute nuestra aplicación de reproducción ( Traktor ) como MediaUser, lo que permite al programador reproducir medios pero no copiarlos ni modificarlos.

Esta parece ser la solución perfecta, pero hay un problema. Si la aplicación de reproducción o la máquina falla, el programador es la única persona que podrá hacer que vuelva a funcionar en un tiempo razonable (somos una estación de radio FM de 15 kW, por lo que el tiempo de inactividad es un gran problema). De ahí mi dilema ...

¿Cómo puedo darle al programador la capacidad de iniciar nuestra aplicación de reproducción como un usuario al que no conoce la contraseña?

Peter Mortensen
fuente

Respuestas:

32

sudo.bat

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

Sorprendentemente, no volverá a solicitar contraseña incluso después de reiniciar o falla de energía

jonny
fuente
2
+1 para la respuesta correcta. Dios mío es eso un agujero de seguridad
Dave Cheney
en serio, ¿cómo se sabe que esto no es un agujero de seguridad? ¿Por qué está abierto?
Marm0t
2
Estoy bastante seguro de que esto solo funciona si la contraseña de la cuenta se ha guardado en el Administrador de credenciales, por lo que no es realmente un agujero de seguridad como lo es en OSX o en cualquier otro sistema donde las credenciales se pueden guardar y reutilizar.
Mark Henderson
Aún necesita saber la contraseña la primera vez, y esto dejará de funcionar si cambia.
ivan_pozdeev
1

... sin permitirles copiar nada de eso en sus unidades flash o transferirlo a través de Internet

Desactive las unidades flash USB, el acceso a Internet, etc. en estas máquinas.

Duncan Smart
fuente
0

Hay un par de maneras en las que puedo pensar de manera informal para evitar este problema. Primero (y más difícil) sería escribir un pequeño servicio de Windows que inicie Traktor. Por lo tanto, el ProgramUser puede solicitar al servicio una nueva instancia de Traktor, y el servicio se ejecuta como MediaUser, por lo que Traktor se inicia como MediaUser.

Otra posibilidad, y mucho más fácil, es tener un acceso directo de inicio configurado que inicie Traktor en cada inicio de sesión: los accesos directos de Windows le permiten establecer las credenciales del usuario apropiado en las propiedades de acceso directo. Si la computadora falla, los programadores solo necesitan iniciar sesión, ¡y tienen un nuevo Traktor ejecutándose como MediaUser!

¡Esperemos que una de estas soluciones funcione para usted!

Miguel
fuente
Yo y el otro administrador somos ingenieros de software, así que esto no será un problema. También ejecutamos otro servicio que monitorea nuestra mesa de mezclas para la entrada GPIO, por lo que es algo que ya estamos haciendo. Esta es una excelente idea, gracias!
0

Puede crear un programa que inicie el proceso de MediaUser para el DJ. Esto se puede hacer para que se ejecute como ProgramUser.

La contraseña / credenciales para MediaUser necesitaría compilarse en el programa, de modo que conociera la contraseña, pero el usuario final nunca necesitaría estar al tanto de esto. Simplemente tendrían un botón o programa que diga "Reiniciar Tracktor", y puede hacer todo el trabajo.

Aquí hay un ejemplo de C # del proceso. El único cambio sería codificar las credenciales para que el DJ no las vea.

Reed Copsey
fuente
Esto es básicamente lo que iba a sugerir, pero con la advertencia de que es seguridad a través de la oscuridad. Si los usuarios finales pueden encontrar y ejecutar una copia de procmon o procexp, podrán obtener la contraseña sin problemas.
Ryan Bolger
@ Ryan: ¿Cómo se obtiene la contraseña de procmon o procexp en esta situación? Puede obtener el nombre de usuario con el que se ejecuta un proceso, pero no pensé que pudiera obtener las credenciales. Entiendo que rev. diseñar el ejecutable con la contraseña codificada lo haría, pero aparte de eso, ¿cómo obtendría esta información?
0

Echa un vistazo a Steel RunAs. Lo he usado para varios scripts en mi carrera de SysAdmin cuando no había otras alternativas posibles. Definitivamente es útil. Genera un archivo ejecutable, en el que cifra las credenciales almacenadas. Enlace

Nick Jacques
fuente
0

La situación ideal sería que modifiques Traktor para que se ejecute como un servicio, con una GUI separada. Esto le brinda las mejores opciones de seguridad: Traktor se ejecutará como el usuario con las credenciales correctas, y nadie necesita saber cuáles son, o necesita ingresar la contraseña para reiniciarla. De hecho, puede hacer que se reinicie si se bloquea en el complemento de servicios.

Su GUI para conducir Traktor se escribe como su propia aplicación que el usuario ejecuta como ella misma, envía mensajes al servicio de Traktor (a través de TCP / IP, RPC, memoria compartida o cualquier otra forma de IPC) para que haga lo que el El usuario quiere. Si hizo que la GUI funcionara utilizando un protocolo de red cruzada (por ejemplo, TCP / IP), el usuario puede iniciar sesión en su estación de trabajo y el servicio traktor puede ejecutarse en un servidor más confiable, posiblemente bloqueado para evitar reinicios "accidentales". Si eres bueno, podrías escribir una aplicación web para manejar Traktor (es decir, el servidor web enviaría los mensajes al servicio) y tu usuario podría ejecutar la estación desde casa.

El servicio traktor se iniciaría con el servidor, sin necesidad de iniciar sesión.

Peter Mortensen
fuente
Idea interesante, pero Traktor es muy propietaria y realmente no tiene una API. Los únicos puntos de integración son MIDI, Send Keys y VST Plugins. Aunque la idea de Traktor como un motor de reproducción basado en servicios con una interfaz de usuario personalizada es atractiva, ya que buscamos una interfaz de usuario personalizada más robusta que maneje cosas como gráficos y creación de listas de reproducción.