000
09.12.2020, 08:43 Uhr
ReinTob
|
Hallo zusammen,
ich versuche mittels fanotify einen OnAccess Virus Scanner zu bauen. Dem fanotify Aufruf initialisere Ich mit fanotify_init(FAN_CLASS_CONTENT | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS, O_LARGEFILE | O_RDONLY); und den Filesystem Mark setzte ich auf fanotify_mark(fan_desc, FAN_MARK_ADD | FAN_MARK_MOUNT,FAN_OPEN_PERM | FAN_ACCESS_PERM | FAN_OPEN_EXEC_PERM | FAN_EVENT_ON_CHILD | FAN_CLOSE_WRITE, AT_FDCWD, "/home"); Nutzen möchte ich hier die FAN_DENY und FAN_ALLOW Funktion. Das heißt, wenn eine Datei geöffnet wird, möchte Ich diese mittels Socket API an den Virus Scanner ClamAV senden. Das Problem ist, das im prinzip die zu scanende Datei erst von z.B. cat oder vi oder einer andere Applikation geöfnet wird, daraufhin fanotify meldet das sich die Datei im Zugriff befindet und aber auch der ClamAV dies Datei öffnen möchte. Solange noch kein FAN_ALLOW oder FAN_DENY gesetzt wurde, bleibt die Datei im blockiermodus, sodass überhaupt keine Anwendung die Datei öffnen kann. Ich würde gerne beim ersten zugriff auf eine Datei den zugriff erstmal blockieren, daraufhin die Datei scannen und wenn ein Virus gefunden wurde, die Datei blockieren und wenn kein Virus gefunden wurde den Zugriff erlauben.
Hat jemand schon Erfahrungen mit dieser Konstelation mit fanotify ? Kann mir jemand weiterhelfen ?
Danke und Gruß Tobias Reineck |