ShareFile Antivirus Scan von On-Premise Storage Zones

Bei Storage Zone Controller Installationen für On-Premise Storage Zones werden automatisch Antivirus Scan Integrationen mit installiert. Dabei steht der AV-Scan über ICAP Protokoll, sowie die eigene Scan-Funktion über SFAntiVirus.exe zur Verfügung. Im ersten Schritt schauen wir uns SFAntiVirus.exe und dessen Konfiguration an.

Antivirus Scan mit SFAntiVirus.exe

Der hauptsächliche Zweck von SFAntivirus ist es, in der ShareFile Control Plane einen potenziellen Virus anzuzeigen. In der Web-Application von Sharefile werden daher infizierte Dateien mit einem roten Warnsymbol markiert und Benutzer erhalten eine Warnmeldung, wenn sie versuchen die Datei herunterzuladen oder weiter zu verteilen.

Dazu wird bei der Installation des Storage Zone Controllers das Tool SFAntiVirus mitinstalliert, standardmäßig in den Ordner C:\inetpub\wwwroot\Citrix\StorageCenter\Tools\SFAntiVirus\. Um das Tool zu nutzen, muss es konfiguriert und registriert werden, damit der ShareFile Control Plane die Funktion bekannt gemacht wird.

Wichtig! SFAntiVirus ist kein eigentlicher Antivirus-Scanner, sondern nutzt die Command Line Tools eines vorhanden AV-Produkts wie McAfee, Windows Defender, etc. um die AV-Scan dorthin auszulagern. Dateien, die transferiert werden, werden so über ShareFile in eine Queue geschoben und erst nach dem Offload-Scan endgültig gespeichert.

SFAntiVirus Voraussetzungen

Damit SFAntiVirus funktioniert darf auf dem Storage Zone Controller die Storage Zone Encryption nicht aktiv sein.

SFAntiVirus Konfiguration

Nach der Installation des Storage Zone Controllers liegt bereits eine Beispielkonfiguration für die Nutzung von McAfee Command Line Scanner vor. Allerdings muss diese Konfiguration trotzdem noch erweitert werden, auch wenn McAfee genutzt wird. Die notwendigen Parameter sind im XML-Tag <appSettings> der Konfigurationsdatei und im folgenden Beispiel markiert.

Hinweis:
Der McAfee Command Line Scanner ist ein eigenständiges Programm und hat keinen eigenen Mechanismus für die Aktualisierung der AV-Pattern. Daher müssen diese manuell aus dem Internet geladen werden oder es muss der McAfee VirusScan Enterprise Client installiert sein, dessen AV-Pattern (avvclient.dat, avvnames.dat und avvscan.dat) per Scheduled Task ins Verzeichnis des Command Line Scanners kopiert werden.

...
  <appSettings>
    <add key="ShareFileUrl" value="https://<Subdomain>.sharefile.<com|eu>" />
    <add key="QueueSdkUrl" value="http://localhost/rest/queue.aspx" />
    <add key="ZoneName" value="<Storage-Zone-Name>" />
    <add key="StorageLocation" value="\\<Fileserver>\<Fileshare>" /> 
    <add key="CommandFile" value="<Pfad-zu-McAfee-CLI-Scan>\scan.exe"/>
    <add key="CommandOptions" value="/ALL /ANALYZE /MIME /NOMEM /NORENAME /SECURE "/>
    <add key="ScannerCodesForFileClean" value="0, 19"/>
    <add key="ScannerCodesForFileInfected" value="12, 13"/>
    <add key="ScannerCodesForFileNotScanned" value="2,6,8,15,20,21,102"/>
    <add key="ScanFileTimeout" value="1"/>
    <add key="EnableLogging" value="1"/>
    <add key="LogLocation" value="/"/>
  </appSettings>
...

Command Line Codes für scan.exehttps://kc.mcafee.com/corporate/index?page=content&id=KB52229

Damit ein Zugriff über die Queue auf dem Storage Zone Controller überhaupt möglich ist, muss zusätzlich noch die Datei <codeAppSettingsRelease.config im StorageCenter Web-Root Ordner angepasst werden und der Wert für QueueSDKRestricted von 1 auf 0 geändert werden.

...
    <add key="QueueSDKRestricted" value="0"/>
...

Nachdem die Konfigurationsdatei angepasst ist, muss die SFAntiVirus-Funktion über eine PowerShell registriert werden. Ab 4.2 muss die Registrierung im Kontext des Users NetworkService erforderlich. Im folgenden Beispiel wird daher eine PowerShell in dessen Kontext gestartet.

PsExec.exe -i -u "NT AUTHORITY\NetworkService" C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

In der so geöffneten PowerShell wechselt man ins SFAntiVirus Verzeichnis und registriert den Service.

.\SFAntiVirus.exe -register <Domain>\<SF-Admin> <SF-Admin-Password>

Um die Upload-Queue regelmäßig abzuarbeiten und zu scannen, ist ein Scheduled Task erforderlich, der SFAntiVirus regelmäßig startet. Hier ein Beispiel-Skript unter PowerShell v4 – SFAntiVirus soll beim Systemstart minütlich ausgeführt werden:

$taskname = "ShareFile Antivirus"
$description = "ShareFile Antivirus Scan"
$user = "<Domain>\<SF-Admin>"
$password = "<SF-Admin-Password>"
$execute = "C:\inetpub\wwwroot\Citrix\StorageCenter\Tools\SFAntiVirus\SFAntiVirus.exe"
$workdir = "C:\inetpub\wwwroot\Citrix\StorageCenter\Tools\SFAntiVirus"
$repetitionintervall = (New-TimeSpan -Minutes 1)
$repetitionduration = ([timeSpan]::maxvalue)
$action = New-ScheduledTaskAction -Execute $execute -WorkingDirectory $workdir
$trigger = New-ScheduledTaskTrigger -AtStartup -RepetitionInterval $repetitioninterval -RepetitionDuration $repetitionduration
$task = NewScheduledTask -Action $action -Trigger $trigger -Settings (New-ScheduledTaskSettingsSet)
$task | Register-ScheduledTask -TaskName $taskname -User $user -Password $password -RunLevel Highest -Description $description -Force
Enable-ScheduledTask $taskname

Änderungen ab ShareFile Controller 4.2

Logging
Bis ShareFile Controller Version 4.2 muss die Log-Location in der obigen Konfigurationsdatei mit angegeben werden in Form eines Ordners. Ab Version 4.2 gibt es für die Log-Konifguration eine eigene Datei log4.net.config in der die Log-Location, sowie andere Log-Parameter, granularer eingestellt werden können.

Registrierung
Wie oben bereits geschrieben erfolgt die Service Registrierung ab Version 4.2 nicht länger mit LocalSystem, sondern mit NetworkService. Daher ist der zusätzliche Schritt mit PSExec erforderlich.

Quellen:
https://docs.citrix.com/en-us/storagezones-controller/3-1/sf-manage-storagezone-controller/sf-cfg-antivirus-scans.html
https://docs.citrix.com/en-us/storagezones-controller/4-0/sf-manage-storagezone-controller/sf-cfg-antivirus-scans.html
https://docs.citrix.com/en-us/storagezones-controller/5-0/manage-storagezone-controllers/antivirus-scans.html

Update: <appSettings> für Windows Defender Command Line Scanner auf Windows Server 2016

...
  <appSettings>
    <add key="ShareFileUrl" value="https://<Subdomain>.sharefile.<com|eu>" />
    <add key="QueueSdkUrl" value="http://localhost/rest/queue.aspx" />
    <add key="ZoneName" value="<Storage-Zone-Name>" />
    <add key="StorageLocation" value="\\<Fileserver>\<Fileshare>" />    
    <add key="CommandFile" value="C:\Program Files\Windows Defender\mpcmdrun.exe" />
    <add key="CommandOptions" value="-Scan -ScanType 3 -File" />
    <add key="ScannerCodesForFileClean" value="0" />
    <add key="ScannerCodesForFileInfected" value="2" />
    <add key="ScannerCodesForFileNotScanned" value="" />
    <add key="ScanFileTimeout" value="5" />
    <add key="EnableLogging" value="1" />
    <add key="LogLocation" value="/"/>
  </appSettings>
...

Command Line Codes für mpcmdrun.exehttps://technet.microsoft.com/itpro/windows/keep-secure/run-cmd-scan-windows-defender-for-windows-10

Update: <appSettings> für Kaspersky Security 10 for Windows Server

...
  <appSettings>
    <add key="ShareFileUrl" value="https://<Subdomain>.sharefile.<com|eu>" />
    <add key="QueueSdkUrl" value="http://localhost/rest/queue.aspx" />
    <add key="ZoneName" value="<Storage-Zone-Name>" />
    <add key="StorageLocation" value="\\<Fileserver>\<Fileshare>" /> 
    <add key="CommandFile" value="C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security 10 for Windows Server\kavshell.exe"/>
    <add key="CommandOptions" value="SCAN /FA /AI:DISINFDEL /AS:QUARANTINE " />
    <add key="ScannerCodesForFileClean" value="0" />
    <add key="ScannerCodesForFileInfected" value="-80, -81, -84" />
    <add key="ScannerCodesForFileNotScanned" value="-2,-3,-4,-5,-6,-82,-83,-85,-99,-301" />
    <add key="ScanFileTimeout" value="2" />
    <add key="EnableLogging" value="1" />
    <add key="LogLocation" value="/"/>
  </appSettings>
...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.