![]() |
Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Hallo,
auf den Client-PCs in unserem Windows-Netzwerk laufen Delphi-Programme welche verschiedene ODBC-Einträge benötigen. Diese tragen wir bei der Installation der PCs im Bereich "System-DSN" ein, damit sie allen Benutzern zur Verfügung stehen. Wenn mal ein Eintrag fehlt, oder ein neuer dazu kommt, soll das Programm diesen selbstständig per TRegistry oder Import einer *.Reg-Datei eintragen. Die Benutzer sind allerdings nur mit Benutzer- oder Hauptbenutzerrechten angemeldet und dürfen daher nicht auf HKEY_LOCAL_MACHNINE zugreifen. Gibt es eine Möglichkeit (z.B.mit hinterlegtem Admin-Benutzer+Passwort) diese ODBC-Einträge anzulegen? Der Shell-Befehl "RunAs" hat laut Hlife nicht die Möglichkeit ein Passwort zu hinterlegen... |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Ihr könntet einen kleinen Service aufsetzen, welcher dann ja im System-Konto läuft.
Dieser muß nur einmal mit entsprechenden Rechten eingerichtet werden und läuft danach ohne Zutun. Per Pipe, MMF o.Ä. könnte man dem nun die neuen Daten übergeben und er trägt sie dann dort ein. Aber im Service nur die entsprechenden Einträge erlauben, da sonst ein Sicherheitsrisiko bestünde. Ebenso wäre es doch wohl auch nicht so sicher, wenn irgendwo das Adminpasswort "ungeschützt" rumliegen täte, welches dann dein Programm verwenden würde. ![]() |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Du kannst diese Einstellungen via ActiveDirectory (AD) per GroupPolicyObjects (GPO) machen.
Bei einen >=2008er Server (DomainController) sogar besonders einfach. |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
![]() |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
aber dann muss er auch irgendwo die Zugangsdaten hinterlegen, was wieder ein Sicherheitsrisiko bedeutet.
|
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Zitat:
![]() ![]() |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Wieso muss man das System unbedingt verbiegen?
Was spricht gegen User DSN und Registry Import von einer gemeinsamen Netzdatei beim Login? Bekommt man ohne Sicherheitsprobleme und Extras und nur mit Bordmitteln. Man könnte auch gleich mit Datei DSN arbeiten. Remote per Admin gehts dann auch mit Regedit in die jeweiligen HKLM Einträge. Ich kenne es aber so nur interaktiv. |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Erst mal danke für die Antworten,
-Also das Passwort würde ich natürlich nicht im Klartext im Code hinterlegen. Ich würde es kodieren und erst zur Laufzeit dekodieren, wenn es benötigt wird... -Per GroupPolicy wird nicht gehen, da je nach installierter Datenbank-Client-Version der ODBC-Eintrag etwas anders aussehen muss. Das Programm bzw. der Service muss erst die Client-Version ermitteln und dann die entsprechenden Registry-Daten importieren... -Per Remote-Registry kommt nicht in Frage - wir produzieren 24 Stunden / 7 Tage die Woche und ich werde ungern Nachts um 04:00 angerufen um einen ODBC-Eintrag zu machen :wink: -Diese Einträge sind nicht Benutzerspezifisch sondern für alle Benutzer gleichermaßen verbindlich. Prinzipiell ist also System-DSN der richtige Ort - natürlich funktioniert Benutzer-DSN grundsätzlich auch... Werde mir also "CreateProcessAsUser" bzw. "Impersonate" mal ansehen... Danke! |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Wenn Du sowieso schon eine automatische Registrierung der DSN vorgesehen hast, nutze das doch. So viele unterschiedliche Benutzer gibt es ja nicht und im Kontext der Sicherheitsphilosophie ist diese Lösung die Richtige.
Wenn Du das Kennwort im Code hast, egal ob verschlüsselt oder nicht, wird das ein Angreifer ohne große Probleme ausnutzen können. |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Ich bin für den Service. Ist sinnvoll! :wink:
|
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Zitat:
|
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Zitat:
Man müßte schon den Quellcode in die Finger bekommen um die Dekodierung, mit Hilfe des Kodierten Kennworts und der Dekodier-Routine, durchzuführen. Weiterhin würde man nicht das Passwort des Domänen-Administrators verwenden, sondern das des lokalen Administratros des PCs. Sollte der unwarscheinliche Fall auftreten, daß ein Hacker Zugang zu unseren Quellcodes bekommt, aus den über 1000 *.pas Dateien die richtige findet und das Kennwort dekodiert kann er sich maximal an Client-PCs als Admin austoben. Daten liegen bei uns nur auf Servern rum wofür Rechte in der Domäne notwendig wären... Außerdem weiß der Hacker ja gar nicht, wo er suchen muß...da dürfte es einfacher sein eine Sicherheitslücke im Windows zu finden und auszunutzen: z.B. Abbruch des Login-Scripts führt zu lokalen Adminrechten... |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Zitat:
Decompiler Fremdprozess debugen usw. und schon weiß man was man braucht. |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Ich finde, dass ihr hier zwanghaft versucht das Sicherheitssystem von Windows auszuhebeln - was nicht gut ist.
Passwörter hinterlegen ist keine Lösung! Zitat:
Dazu sind doch sicherlich Adminrechte erforderlich! Kann der Installationsprozess nicht die richtigen Werte konfigurieren? Kannst du den Prozess genauer erklären? |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Zitat:
Und wenn etwas fehlt, führt man eine Reperatur-Anwendung aus. (Edit: Der Admin :wink:) :dp: |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
@himitsu:
Bei der Installation der PCs werden verschiedene DB-Clients aufgespielt und hinterher per Hand die ODBC-Einträge erstellt. Da einige Versionen der Clients im Umlauf sind kann ich nicht einfach eine *.reg hinterlegen, da die Inhalte manchmal unterschiedlich sind. Die Einträge werden natürlich unter System-DSN angelegt damit Sie hinterher allen Benutzern zur Verfügung stehen... @generic: Zitat:
Spass beiseite: wir haben über 140 PCs im Werk - eine Handvoll Win2K, die meisten WinXP und mittlerweile auch 10 Window7 Maschinen. Alle paar Tage kommt einer aus dem Leasing raus und ein neuer muß hergerichtet werden. Es kommt leider hin und wieder vor, das mal ein Eintrag vergessen oder fehlerhaft angelegt wird. Sorry - In unserem werk arbeiten noch Menschen! :wink: Manchmal wird die DB-Client Version durch eine neuere ersetzt oder eine weitere hinzugefügt die bis dahin nicht im Einsatz war. Bei jeder Änderung zu allen PCs auf dem Werksgelände latschen und alle Einträge kontrollieren ist nicht praktikabel. Solange keine Notwendigkeit besteht, bleibt (z.B.beim Erscheinen eines neuen DB-Clients) auf den alten Rechnern auch der alte Client drauf. Jedenfalls solange es keine Probleme gibt... Zitat:
weiß ja nicht wie es mit euch ist - ICH LIEBE MEINE NACHTRUHE! Daher besteht der Wunsch, das ein Programm beim Start seine Umgebung prüft und einfache Dinge wie ODBC_Einträge selber anlegt... |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Zitat:
Wieso willst Du Dich damit quälen, System DSN einzutragen? Doch nicht um Speicherplatz zu sparen oder? |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Nein, ich will keinen Speicherplatz sparen...
Mir ist klar, daß das ganze Sicherheitstechnisch nicht optimal ist! Wichtige Stellen in unserem Betrieb arbeiten mit unseren Delphi-Programmen. Ein längerer Ausfall an einer dieser Stellen kann zum Abstellen der davorliegenden Produktionsbereiche führen, was zu finanziellen Verlusten in Form von Produktionsausfall und Strafzahlungen bei verspäteten Lieferungen führt! Registry-Einstellungen für diese Programme haben in Bereichen, welche der Kontrolle des Benutzer unterliegen, nichts zu suchen! Betriebsrelevante Einstellungen gehören imho in Bereiche in denen Benutzer keine Schreibrechte haben! Und es gibt immer Fuckler die auf Nachtschicht an der Workstation herumspielen und meinen man könne den PC doch noch optimieren... Nicht alle Mitarbeiter unserer EDV sind Delphi-Programmierer und gleichermaßen "Sattelfest" mit den nötigen Einstellungen der vielen Programme. Ein fehlender Eintrag ist noch leicht als Fehler zu erkennen aber ein verstellter Parameter kann selbst einen erfahrenen Admin eine lange Suche bescheren... Ich habe selbst schon erlebt, wie eine Maschine für zwei Tage abgestellt wurde weil jemand auf einer Workstation mit englischem Bestriebssystem die Ländereinstellungen von "Englisch" auf "Deutsch" umgestellt hat. Der Bediener hat sich nichts dabei gedacht: Immerhin hat jeder Benutzer das recht seine Oberfläche anzupassen und schließlich ist man ja hier in Deutschland... Dummerweise funktionierte nachher in der Betriebssoftware der Maschine die Konvertierung von Zahlen und Datumsformaten nicht mehr, weil sich das Zeichen für Dezimal- und Tausender-Trennung geändert hatten. Der Programmierer (von einer Fremdfirma) hatte versäumt die Zahl- und Datum-Behandlung Threadsicher zu programmieren damit unabhängig von den Benutzereinstellungen im Bereich Ländereinstellungen immer das gleiche Ergebnis herauskommt (Stichwort StrToDate/FormatSettings). Wir konnten den Grund des Fehlers in der fremden Software nicht ausmachen, und selbst der Programmierer den wir erst am nächsten Tag erreichen konnten brauchte eine ganze Weile. Microsoft's Konzept von Sicherheit und Individuellen Einstellungen steht hier in einem gewissen Konflikt mit der Praxis und der erforderlichen Betriebssicherheit. Hier muß ich der Betriebssicherheit klar den Vorrang geben. :wink: Mal ehrlich: Wer läßt sich Nachts rausklingeln, sucht nach einem Fehler (was halb im Schlaf schon mal deutlich länger dauert) und meldet sich dann auf einem System als Administrator an um Einstellungen vorzunehmen, wenn es auch in weniger als einer Sekunde (mit vertretbarem Risiko) automatisch geht? |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Threadsicher hat absolut nichts mit unabhängig von den Benutzereinstellungen zu tun.
Wenn Zahlen umkodiert werden sollen, welche festen Definitionen unterliegen, dann müssen auch feste Umkodierungsparameter verwendet werden und nicht irgendwelche systemanhängigen Benutzereinstellungen. PS: ![]() Du willst also erreichen, daß Einstellungen im Benutzerkontext von der Anwendung geändert werden können, aber gleichzeitig dem Benutzer dieses verbieten ... geht nicht, da es ja in seinem Kontext erlaubt ist. > Die Anwendung mit Admin-Rechten zu starten wird wohl nicht möglich sein, also entweder die Einstellungen liegen im Zugriffsbereich des Benutzers und der der Benutzer kann es ändern oder es liegt nicht in seinem Zuständigkeitsbereich und Er + das Programm kann es nicht ändern. |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Hab ich was übersehen?
Was spricht denn dagegen, dem Benutzer die Schreibrechte auf HKEY_LOCAL_MACHINE\SOFTWARE\ODBC zu geben? Da kann man sich die ganze Service / Passwort Hampelei ersparen. Gruß K-H |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
@himitsu:
Zitat:
weiß, daß das problematisch ist - jeder Fehler ist irgendwann der erste)... Zitat:
StrToDateTime entnommen: Zitat:
Zitat:
|
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Mir ist eingefallen, dass die Sache mit dem Taskscheduler machbar wäre. Ganz legal und -so hoffe ich- auch mit einer brauchbaren Passwortverschlüsselung.
Man braucht ein lokales oder Domain Konto mit Adminrechten und lässt darunter die Registry Einträge in einem "geplanten Task" ergänzen. Die Dateien können von einem Netzwerkverzeichnis kommen, das ebenfalls nur durch den Admin Account gelesen werden kann (oder zumindest nur durch den geschrieben werden kann) Ich habs unter XP mit einem lokalen "Admininistrator" und einem lokalen "Benutzer" ausprobiert. Registry Import mit Create und Silentschalter Das funktioniert. Wenn Ihr mit Vista oder höher arbeitet gibts vlt Theater mit UAC oder so. Das Ganze kann je nach Definition des Tasks sogar vom minder Berechtigten User manuell ausgeführt werden oder per Cmd Script via SCHTASKS.EXE und Desktopverknüpfung als "ODBC Refresh" angeboten werden. |
AW: Daten in HKEY_LOCAL_MACHINE ohne Adminrechte schreiben
Zitat:
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz