Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Verzeichnis auf Kopieraktionen mit "Verursacher" überwachen? (https://www.delphipraxis.net/142017-verzeichnis-auf-kopieraktionen-mit-verursacher-ueberwachen.html)

CG2003 20. Okt 2009 22:18


Verzeichnis auf Kopieraktionen mit "Verursacher" ü
 
Hallo,

ist es möglich, ein oder mehrere Verzeichnis(se) eines Win Servers 2003 auf Kopieraktionen hin zu überwachen?
Ich stelle mir das so vor:

Benutzer "HansXY" kopiert die Datei "MyFile.dll" von Ordner "C:\Dateien" nach "X:\Dateien".

Nun möchte ich es realisieren, dass mein kleines Delphi-Programm deartige Aktionen erkennt und z.B. folgendes in ein z.B. TMemo schreibt:

"01.01.1999 - 11:11 Uhr: Benutzer "HansXY" - Datei "MyFile.dll" - Quellordner C:\Dateien - Zielordner: X:\Dateien"



wie überwache ich deartige Vorgänge?
Hatte mit der Suche nicht viel Erfolg gehabt, da dort zwar die Ordner überwacht wurden, aber Kopiervorgänge sowie der Benutzername nicht aufgeführt waren.

himitsu 20. Okt 2009 22:29

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Dafür wirst du wohl einige APIs hooken müssen (welche man vorwiegend zum Kopieren nutzt)

MSDN-Library durchsuchenReadDirectoryChangesW/Hier im Forum suchenReadDirectoryChangesW und Co. würden dir zumindestens zeigen wo gerade etwas geändert wird,

den Benutzer ... da einfach den eingeloggten User auslesen


Wenn z.B. über den Explorer kopiert wird
Strg+C & Strg+V
oder via Drag&Drop
da würde bei Beginn des Vorgangs (dieser muß dann aber nicht ausgeführt werden) einige Einträge in der Zwischenablage erscheinen, welche man überwachen könnte.
(aber wie gesagt, hierfür reicht schon der Vorsatz aus, ob dann wirklich kopiert/verschoben wurde, das bekommt man damit nicht raus)

Luckie 20. Okt 2009 23:00

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Zitat:

Zitat von himitsu
den Benutzer ... da einfach den eingeloggten User auslesen

Und was hat er dann davon? Damit weiß er imme rnoch nicht wer die dateien kopiert.

Gegenfrage: Warum willst du das wissen?

himitsu 20. Okt 2009 23:03

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Zitat:

Zitat von Luckie
Und was hat er dann davon? Damit weiß er imme rnoch nicht wer die dateien kopiert.

ups, stümmt ja :wall:

Welchen Besitzer bekommt eine Datei eigentlich, wenn sie via Netzwerk erstellt wird?

CG2003 21. Okt 2009 09:38

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Also, Szenario ist folgendes:

Unser (ich muss zugeben, veraltetes) Warenwirtschaftssystem ist eine alte DOS-Anwendung welches dateibasiert (keine Datenbanken!) arbeitet.
Sämtliche User arbeiten mit dieser über eine Ordnerfreigabe auf unserem Server.

Nun möchte ich diese Freigabe respektive den Ordner, in dem die Anwendung und die Daten liegen überwachen, ob nicht evtl. jemand sich die Kundendaten auf einen USB-Stick kopiert.

"Mehr" will ich eigentlich nicht ;)

Luckie 21. Okt 2009 10:15

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Dann nimm den Benutzern die Rechte zum Kopieren, so dass sie nur lesen können.

CG2003 21. Okt 2009 10:26

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Wo kann ich denn festlegen, dass Benutzer NUR aus DEM EINEN Ordner nichts kopieren dürfen?
Wenn ich das in der Gruppenrichtlinie festlege, gilt das doch für das gesamte Dateisystem oder?

Luckie 21. Okt 2009 10:29

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Keine Ahnung, ich bin kein Server-Administrator. Aber ich bin mir sicher, dass das gehen muss, sonst könnte man ja Daten ohne Ende klauen. Aber warum haben die Benutzer überhaupt Zugriff auf die Ordner mit den Datendateien? Es reicht doch, wenn sie das Frontend bedienen können.

Sharky 21. Okt 2009 10:43

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Zitat:

Zitat von Luckie
Keine Ahnung, ich bin kein Server-Administrator. Aber ich bin mir sicher, dass das gehen muss, sonst könnte man ja Daten ohne Ende klauen.

Mir wäre keine Lösung bekannt. Ausser ein Benutzer hat in keinem anderen Ordner schreibrecht :stupid:
Zitat:

Aber warum haben die Benutzer überhaupt Zugriff auf die Ordner mit den Datendateien? Es reicht doch, wenn sie das Frontend bedienen können.
Zitat:

Zitat von CG2003
... welches dateibasiert (keine Datenbanken!) arbeitet. ...


Luckie 21. Okt 2009 10:52

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
[quote="Sharky"]
Zitat:

Zitat von Luckie
Zitat:

Aber warum haben die Benutzer überhaupt Zugriff auf die Ordner mit den Datendateien? Es reicht doch, wenn sie das Frontend bedienen können.
Zitat:

Zitat von CG2003
... welches dateibasiert (keine Datenbanken!) arbeitet. ...


Ja und? Es reicht doch, wenn das Frontend Zugriff auf die Dateien hat. MySQL legt ja letztendlich auch alles nur in Dateien ab und der Benutzer hat kein Zugriff auf die Dateien.

SubData 21. Okt 2009 10:55

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Wenn der Benutzer die Anwendung starten kann, die die Dateien liest, dann kann er so gesehen auch selbst die Dateien lesen.
Der Sicherheitskontext ist identisch, sofern die Anwendung nicht unter anderem Benutzer ausgeführt wird.
Und es gibt eben kein Datenbankfrontend in dem Sinne, sondern nur eine Anwendung, die diese Dateien liest.

So hab ich das jedenfalls verstanden...

CG2003 21. Okt 2009 11:09

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Zitat:

Zitat von SubData
Wenn der Benutzer die Anwendung starten kann, die die Dateien liest, dann kann er so gesehen auch selbst die Dateien lesen.
Der Sicherheitskontext ist identisch, sofern die Anwendung nicht unter anderem Benutzer ausgeführt wird.
Und es gibt eben kein Datenbankfrontend in dem Sinne, sondern nur eine Anwendung, die diese Dateien liest.

So hab ich das jedenfalls verstanden...

Ja das ist soweit korrekt...

Also gibt's keine Möglichkeit?

Luckie 21. Okt 2009 11:11

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Zitat:

Zitat von SubData
Wenn der Benutzer die Anwendung starten kann, die die Dateien liest, dann kann er so gesehen auch selbst die Dateien lesen.
Der Sicherheitskontext ist identisch, sofern die Anwendung nicht unter anderem Benutzer ausgeführt wird.
Und es gibt eben kein Datenbankfrontend in dem Sinne, sondern nur eine Anwendung, die diese Dateien liest.

Das ist doof. ;)

Aber logged der Server so was von sich aus nicht mit?

CG2003 21. Okt 2009 11:42

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Naja, es gibt ja die lokale Überwachungsrichtlinie. Dort listet er mir auch auf, wenn jemand in einem Ordner "liest". Nur, heisst "Lesen" ja nicht unbedingt Kopieren von Dateien sondern auch, wenn das Programm eine Datei liest.
Des weiteren ist das im Sicherheitsprotokoll der Ereignisanzeige auch ziemlich wüst dargestellt...

Luckie 21. Okt 2009 11:49

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Zitat:

Zitat von CG2003
Des weiteren ist das im Sicherheitsprotokoll der Ereignisanzeige auch ziemlich wüst dargestellt...

Aber es ist anscheinend zumindest vorhanden. Es ist bestimmt einfacher sich damit auseinanderzusetzen als zu versuchen eine eigene Lösung zu basteln.

SubData 21. Okt 2009 11:56

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Es gibt noch eine recht schmutzige Lösung.
Starte die Anwendung unter einem anderen Benutzerkontext.
Wenn Dateien in diesem Kontext gelesen werden, dann ignorierst du die Protokolleinträge.
Wenn der Benutzer die Dateien unter seinem Kontext liest, dann stimmt was nicht ;-)

Valle 21. Okt 2009 12:02

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Hallo,

unterscheidet denn Windows wirklich zwischen Lese- und Kopierrecht? Und Linux gibt es nur lesen, schreiben und ausführen. Wer etwas lesen kann, und woanders auch schreiben kann, der hat auch automatisch das Kopierrecht. Das kann unter Windows auch nicht anders sein. Vielleicht verbietet der Windows-Explorer ein Kopieren bei fehlendem Kopierrecht, aber dann kann man sich immernoch selbst ein Programm schreiben, welches dies tut. Wenn die Dateien nicht binär sind tut's auch ein einfacher Texteditor. Mit anderen Worten: Es ist nicht möglich den Benutzern ein Kopieren der Daten zu verbieten. Solange die Anwendung komplette Leserechte auf die Daten hat, gibt es keine Möglichkeit sowas zu verbieten.

Alternativen wären ein Wechsel dieses Programms auf eine richtige Datenbank, das Ausführen des Programms unter einem anderen Benutzer oder der schon genannte Entzug aller Schreibrechte der Benutzer. Allerdings kann man sich selbst dann noch Zettel und Stift nehmen und die Daten nach belieben abschreiben. *g*

Edit:// @SubData: Was ist so schmutzug daran? In der Unix-Welt ist das Gang und Gebe. :gruebel:

Liebe Grüße,
Valle

franktron 21. Okt 2009 12:29

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Das Kopieren kann man nicht verhindern und man kann das auch am Server nicht herauskriegen ob einer was Lesen oder was Kopieren will (ist für den Server das gleiche)

Du kannst aber mit Lokalen Richtleinen verhindern das ein User eine USB Stick am PC Nutzen kann

SubData 21. Okt 2009 12:53

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Zitat:

Zitat von Valle

Edit:// @SubData: Was ist so schmutzug daran? In der Unix-Welt ist das Gang und Gebe. :gruebel:

Schmutzig mag vielleicht nicht die richtige Bezeichnung sein, aber sauber ist die Lösung auch nicht,
denn sobald der Benutzer manuell auf die Dateien zugreift und dafür die Anmeldeinformationen der
Anwendung verwendet, wird die Protokollierung umgangen. Sicher, dass muss man wissen, aber
ich würde es eher als Security through obscurity bezeichnen...


Edith sacht: 1.000 Beiträge \o/ ;-)

himitsu 21. Okt 2009 13:29

Re: Verzeichnis auf Kopieraktionen mit "Verursacher&
 
Zitat:

Zitat von SubData
Es gibt noch eine recht schmutzige Lösung.

Dann kann man aber auch gleich dem "angemeldeten" Benutzer die Rechte nehmen, bzw. nur dem Benutzer-Account der Anwendung zugriff gewähren.

PS: wer Leserechte hat, der kann auch Kopieren
Kopieren = hier lesen und da schreiben

jetzt könnte man auch beim Schreiben den Riegel vorschieben
und es den Benutzern nicht erlauben, daß sie die Dateien irgendwo hinkopieren können, wo sie sie mitnehmen kann ... also es dürfen keine Externen Datenträger angeschlossen werden und auch eMail und Co. ist nicht erlaubt (bzw. eMail nur ohne Dateianhänge)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz