ClamAV
Plugin-Download (erfordert Anmeldung)
Mit dem kostenlosen ClamAV-Plugin für Xima® Formcycle besteht die Möglichkeit, hochgeladene Dateien auf Viren zu scannen. Hierfür stellt dieses Plugin eine Verbindung zu einem ClamAV-Daemon Service via TCP her.
Funktionalität
- Sofortiger Virenscan
- Jede Datei wird direkt nach Ihrem Upload gescannt.
Der verwendete ClamAV-Daemon Service kann weder durch dieses Plugin konfiguriert noch gestartet werden.
Installation
Die Installation des Plugins ist über die dafür vorgesehene Verwaltungsoberfläche von Plugins durchzuführen. Hierbei muss lediglich die entsprechende Jar-Datei eingespielt werden.
Konfiguration Plugin
Nach dem Speichern wird automatisch ein Ping-Test durchgeführt. Falls dieser fehlschlägt wird eine entsprechende Meldung angezeigt. In diesem Fall werden alle Uploads im Backend oder im Formular als fehlerhaft markiert - das Plugin sollte erst einmal deaktiviert werden und eine funktionierende Verbindung aufgebaut werden.
Folgende Konfigurationsparameter gibt es:
- host (Erforderlich)
- Standardwert: 127.0.0.1. Gibt die zu verwendende IP-Adresse des ClamAV-Daemon Service an. Der Standardwert ist 127.0.0.1 und verwendet damit einen lokalen ClamAV-Daemon Service.
- port (Erforderlich)
- Standardwert: 3310. Gibt den zu verwendenden Port des ClamAV-Daemon Service an. Der Standardwert sollte nur geändert werden, falls dieser Port nicht zu Verfügung steht
- os (Optional)
- Standardwert: JVM_PLATFORM. Betriebssystem, auf dem der ClamAV-Daemon-Dienst läuft. Dieser Wert ist nur relevant, wenn das Betriebssystem von formcycle und das des ClamAV-Daemon-Dienstes unterschiedlich sind. Für Linux oder MacOS geben Sie UNIX ein, für Windows WINDOWS. Wenn beide auf dem gleichen Betriebssystem laufen, können Sie diesen Wert leer lassen oder JVM_PLATFORM verwenden.
Konfiguration ClamAV
Im folgenden Abschnitt wird auf Installation und Konfiguration von ClamAV auf einem UNIX-System eingegangen. Unser empfohlenes Szenario ist Xima® Formcycle und den ClamAV-Daemon Service auf dem selben Server zu installieren.
Installation
Um ClamAV auf einem Server zu installieren, sollten folgende Befehle auf dem Server eingegeben werden.
ClamAV ist das Programm, welches Dateien auf Viren scannen kann und wird für die Verwendung von ClamAV-Daemon benötigt.
- Aktualisieren der package list:
- sudo apt-get update
- Installiere ClamAV und ClamAV-Daemon:
- sudo apt-get install clamav clamav-daemon -y
Aktualisieren der Virensignatur-Datenbank
freshclam wird mit ClamAV automatisch installiert und wird zum aktualisieren der Virensignatur Datenbank genutzt.
- Beenden des automatischen freshclam Prozess:
- sudo systemctl stop clamav-freshclam
- Manuelles aktualisieren der Virensignatur Datenbank:
- sudo freshclam
Konfiguration ClamAV-Daemon
ClamAV-Daemon ist der auf dem Server im Hintergrund laufende Prozess, welcher zum Virusscan angesprochen wird. Das geschieht via TCP und muss entprechend konfiguriert werden.
Dafür soll die Konfigurationsdatei unter: /etc/clamav/clamd.conf angepasst werden.
- Öffnen der Konfigurationsdatei:
- sudo nano /etc/clamav/clamd.conf
Mit den Pfeiltasten kann an das Ende der Datei navigiert werden.
- Hinzufügen von TCPAddr 127.0.0.1
- Hinzufügen von TCPSocket 3310
- ClamAV-Daemon root Rechte geben
- dafür muss in dieser Datei der Eintrag User clamav in User root geändert werden.
Nun kann mit Strg + X gespeichert und beendet werden. Mit Y und der Enter-Taste bestätigen.
Starten der ClamAV-Daemon Service
Nun kann der Service gestartet werden.
- Starten des ClamAV-Daemon Service:
- sudo systemctl start clamav-daemon.service
Prüfen der Verfügbarkeit des Service
Damit dieses Plugin den ClamAV-Daemon Service ansprechen kann, muss der Service an der richtigen Stelle zuhören - in diesem Fall unter 127.0.0.1:3310. Das kann im Terminal der Servers überprüft werden.
- Mithilfe von netstat kann der TCP Socket vom ClamAV-Daemon Service untersucht werden.
- sudo netstat -anp | grep -E "(clam)"
Falls keine Zeile beginnend mit tcp zu sehen ist oder eine abweichende host:port Kombination als 127.0.0.1:3310 zu erkennen ist, muss die Konfiguration erneut geprüft werden.
Beispielkonfiguration
Ein beispielhafte Konfiguration mit den oben genannten Standardwerten:
Verwendung
Sobald eine Virensignatur erkannt wurde, ist folgende Meldung zu sehen:
Testdatei
Eine gängige Methode zur Überprüfung von Virenscannern ist die eicar.com Datei.
An beliebiger Stelle kann diese Tastdatei hochgeladen werden und nach erfolgreicher Konfiguration ist die oben dargestellte Meldung zu sehen.
Logging
ClamAV erstellt logs, welche unter /var/log/clamav/clamav.log zu finden sind.
- Nach dem hochladen der eicar.com Testdatei ist zum Beispiel folgender Eintrag in clamav.log zu sehen:
- Wed May 25 10:10:21 2022 -> instream(127.0.0.1@32984): Win.Test.EICAR_HDB-1(44d88612fea8a8f36de82e1278abb02f:68) FOUND
Xima® Formcycle logs sind hierfür unter /formcycle-data/formcycle7/logs zu finden.
- Nach dem hochladen der eicar.com Testdatei ist zum Beispiel folgender Eintrag in formcycle-errors-log zu sehen:
- [WARN] [25-05-22 10:10:21,192] [ajp-nio-127.0.0.1-8009-exec-43] (MalwareScanner.java:211) - Scanner <fc.plugin.malware.scanner.clamAV.ClamAntiVirusFileScanner@7b2a4953> detected malware signature for file </home/fc/tomcat9/tmp/xima-temp/formcycle7/xfc-malware-scan/stream-scan12705251110052849842/data2383296604287452271>: {stream=[Win.Test.EICAR_HDB-1]}
- [ERROR] [25-05-22 10:10:21,207] [ajp-nio-127.0.0.1-8009-exec-43] (VirusScannerService.java:71) - Detected a virus
Versionshistorie
Version 1.0.6
- Change: Virenscan über ClamAV ist nun auch für Windows oder JVM Plattformen möglich
- Fix: Fehler bei der Fehlerbehandlung behoben
Version 1.0.5
- Verbesserte Fehlermeldung im Log, wenn Clam-AV nicht angesprochen werden konnte
Version 1.0.4
- Fix: Ein Fehler beim Virenscan auf dem Frontend-Server wurde behoben.
Version 1.0.3
- Change: Das Plugin wird auch auf den Frontend-Server übertragen, wenn ein solcher verfügbar ist. Somit kann auch auf Frontend-Server nach Viren gesucht werden.
Version 1.0.2
- Entfernen: Eigenschaft für Pfad-Scanning, nur noch InputStream
Version 1.0.1
- Fix: Überspringen der Überprüfung, wenn das Betriebssystem nicht UNIX ist, anstatt die Datei als Virus zu erkennen
Version 1.0.0
- Initialer Release