Windows „Uruchom jako” bez znajomości hasła

13

Instalujemy system multimediów cyfrowych w studenckiej stacji radiowej, w której pracuję. Staramy się zapewnić programistom (czytać; DJ-owi, a nie programistom) dostęp do muzyki, nie pozwalając im kopiować żadnego z nich na dyski flash ani przenosić ich przez Internet.

Pracujemy w systemach Windows (Windows XP dla komputerów klienckich i Windows Server 2008 dla serwera multimediów). Mój pomysł jest taki.

  • Utwórz użytkownika (ProgramUser), który w ogóle nie ma dostępu do multimediów cyfrowych.
  • Utwórz użytkownika (MediaUser), który ma dostęp tylko do odczytu do multimediów cyfrowych, o których programiści nic nie wiedzą i nie znają hasła.
  • Poproś użytkowników, aby zalogowali się do systemu Windows jako ProgramUser, nie dając im wcale dostępu do multimediów.
  • Uruchom naszą aplikację do odtwarzania ( Traktor ) jako MediaUser, pozwalając programiście odtwarzać multimedia, ale nie kopiować ani nie modyfikować.

To wydaje się być idealnym rozwiązaniem, ale jest jedna gotcha. Jeśli aplikacja do odtwarzania lub maszyna ulegnie awarii, programista jest jedyną osobą, która będzie mogła uruchomić ją ponownie w rozsądnym czasie (jesteśmy stacją radiową FM o mocy 15 kW, więc przestoje to poważna sprawa). Stąd mój dylemat ...

Jak mogę dać programiście możliwość uruchomienia naszej aplikacji do odtwarzania jako użytkownik, dla którego nie zna hasła?

Peter Mortensen
źródło

Odpowiedzi:

32

sudo.bat

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

co zaskakujące, nie zapyta ponownie o hasło, nawet po ponownym uruchomieniu lub awarii zasilania

jonny
źródło
2
+1 za poprawną odpowiedź. Mój bóg to dziura w zabezpieczeniach
Dave Cheney
na poważnie, dlaczego nie jest to luka bezpieczeństwa? Dlaczego to jest otwarte ?!
Marm0t,
2
Jestem całkiem pewien, że działa to tylko wtedy, gdy hasło do konta zostało zapisane w Menedżerze poświadczeń, więc nie jest to tak naprawdę luka bezpieczeństwa, jak w OSX lub innym systemie, w którym poświadczenia można zapisać i ponownie użyć.
Mark Henderson
Nadal musisz znać hasło za pierwszym razem, a jeśli przestanie działać, przestanie działać.
ivan_pozdeev
1

... nie pozwalając im na kopiowanie żadnego z nich na dyski flash lub przesyłanie ich przez Internet

Wyłącz dyski flash USB, dostęp do Internetu itp. Na tych komputerach.

Duncan Smart
źródło
0

Jest kilka sposobów, które mogę wymyślić z ręki, aby obejść ten problem. Pierwszym (i trudniejszym) byłoby napisanie małej usługi Windows, która uruchamia Traktor. W związku z tym ProgramUser może poprosić usługę o nową instancję Traktor, a usługa działa jako MediaUser, więc Traktor jest uruchamiany jako MediaUser.

Inną możliwością, o wiele łatwiejszą, jest skonfigurowanie skrótu uruchamiania, który uruchamia Traktor przy każdym logowaniu - skróty Windows pozwalają ustawić poświadczenia odpowiedniego użytkownika we właściwościach skrótu. Jeśli komputer kiedykolwiek się zawiesi, programiści muszą się tylko zalogować, a nowy Traktor działa jako MediaUser!

Mam nadzieję, że jedno z tych rozwiązań będzie dla Ciebie działać!

Mikrofon
źródło
Ja i inni administratorzy jesteśmy inżynierami oprogramowania, więc to nie będzie problem. Prowadzimy również inną usługę, która monitoruje naszą tablicę miksującą pod kątem wejścia GPIO, więc już to robimy. To świetny pomysł, dziękuję!
0

Możesz stworzyć program, który uruchamia proces MediaUser dla DJ-a. Można to zrobić, aby działał jako ProgramUser.

Hasło / dane uwierzytelniające dla MediaUser musiałyby zostać wkompilowane w program, aby znało hasło, ale użytkownik końcowy nigdy nie musiałby być tego świadomy. Po prostu mieliby przycisk lub program z napisem „Zrestartuj Tracktor” i może wykonać całą pracę.

Oto przykład tego procesu w języku C #. Jedyną zmianą byłoby zakodowanie na sztywno poświadczeń, aby DJ ich nie widział.

Reed Copsey
źródło
To było w zasadzie to, co zamierzałem zasugerować, ale z zastrzeżeniem, że jest to bezpieczeństwo poprzez zaciemnienie. Jeśli użytkownicy końcowi będą mogli znaleźć i uruchomić kopię procmon lub procexp, nie będą mogli uzyskać hasła.
Ryan Bolger
@ Ryan: Jak zdobyć hasło z procmon lub procexp w tej sytuacji? Możesz uzyskać nazwę użytkownika, pod którym działa proces, ale nie sądziłem, że możesz uzyskać poświadczenia. Rozumiem, że rev. Zrobiłoby to inżynieria pliku wykonywalnego z zakodowanym hasłem, ale poza tym, w jaki sposób uzyskałbyś te informacje?
0

Spójrz na Steel RunAs. Używałem go w kilku skryptach w mojej karierze SysAdmin, gdy żadna inna alternatywa nie była możliwa. To zdecydowanie przydatne. Generuje plik wykonywalny, w którym szyfruje przechowywane poświadczenia. Połączenie

Nick Jacques
źródło
0

Idealną sytuacją byłoby zmodyfikowanie Traktora jako usługi z osobnym GUI. Daje to najlepsze opcje bezpieczeństwa - Traktor działałby wtedy jako użytkownik z prawidłowymi poświadczeniami i nikt nie musi wiedzieć, co to jest, ani nie musi wpisywać hasła, aby je ponownie uruchomić. W rzeczywistości można go uruchomić ponownie, jeśli ulegnie awarii w przystawce usług.

Twój GUI do kierowania Traktorem jest następnie zapisywany jako własna aplikacja, którą użytkownik uruchamia jako ona sama, wysyła wiadomości do usługi Traktor (przez TCP / IP, RPC, pamięć współdzieloną lub dowolną inną formę IPC), aby zrobić to, co robi użytkownik chce. Jeśli GUI działa z wykorzystaniem protokołu międzysieciowego (na przykład TCP / IP), użytkownik może zalogować się do swojej stacji roboczej, a usługa traktor może działać na bardziej niezawodnym serwerze, prawdopodobnie zablokowanym, aby zapobiec „przypadkowemu” ponownemu uruchomieniu. Jeśli jesteś dobry, możesz zamiast tego napisać aplikację internetową do kierowania Traktorem (to znaczy, że serwer WWW wyśle ​​wiadomości do serwisu), a użytkownik może uruchomić stację z domu!

Usługa traktor zostałaby uruchomiona na serwerze bez konieczności logowania.

Peter Mortensen
źródło
Ciekawy pomysł, ale Traktor jest bardzo zastrzeżony i tak naprawdę nie ma API. Jedynymi punktami integracji są MIDI, Send Keys i VST Plugins. Chociaż pomysł Traktora jako opartego na serwisowaniu silnika odtwarzania z niestandardowym interfejsem użytkownika jest atrakcyjny, gdy przyglądamy się bardziej niezawodnym niestandardowym interfejsom użytkownika obsługującym takie rzeczy, jak tworzenie wykresów i tworzenie list odtwarzania.