Mit der soeben erschienenen Beta-Version 2.0.0b1 des ISPProtect Malware Scanners schlagen wir ein neues Kapitel auf: die Unterstützung von mehreren CPU-Kernen beim Scan.

Auf Servern mit vielen Dateien, die in einem Durchlauf gescannt werden sollen, kann der Malware-Scan durchaus mehrere Stunden dauern. Server dieser Größenordnung sind jedoch in der Regel mit mehreren CPU-Kernen ausgestattet. Bislang konnte ISPProtect hieraus keinen Nutzen ziehen. Durch die Verwendung von ClamAV (clamscan, Level 1) und PHP (Heuristik und Regelsets, Level 2) war die Verarbeitung der Dateien auf einen CPU-Kern beschränkt.

Ab der neuen Generation des Scanners führen wir einen weiteren Parameter für Scans ein: --threads=x.

Wird beim Start des Scans ein Thread-Wert von 2 oder höher eingegeben, wechselt ISPProtect in Level 1 auf die Verwendung des ClamAV-Daemons (clamd) mit dem entsprechenden Client (clamdscan). Dieser kann mehrere Dateien parallel scannen. Weiterhin setzen wir in Level 2 auf die Verwendung von Swoole-Prozessen, die uns auch in PHP eine parallele Verarbeitung von mehreren Dateien erlauben.

In Benchmarks wurde hier bei der Verwendung eines Quad-Core-Servers und --threads=4 eine Verringerung der Scan-Dauer um knapp 50% (Level 1) beziehungsweise knapp 66% (Level 2) erreicht. Bei der Verwendung von mehr Kernen oder dem Scannen von mehr Dateien lässt sich dieses Ergebnis sogar noch deutlich verbessern. Zu beachten ist natürlich, dass besonders in Level 2 des Scans die verwendeten Kerne zu (nahezu) 100% ausgelastet werden. Dies sollte bedacht werden, wenn der Server schon im Normalbetrieb unter Last steht. Es empfiehlt sich die Anzahl der Threads maximal auf die Anzahl der CPU-Kerne zu setzen, in der Regel jedoch eher auf die Hälfte der Kerne, um den normalen Betrieb nicht zu beeinträchtigen.

Installation

Haben Sie ISPProtect bereits installiert, müssen Sie explizit ein Update auf die Beta-Version vornehmen. Hierzu nutzen Sie den Befehl
ispp_scan --update --channel=beta

Möchten Sie zu einem späteren Zeitpunkt wieder auf die Stable-Version wechseln, können Sie dies mit:
ispp_scan --update --force-yes

Haben Sie ISPProtect noch nicht installiert, nutzen Sie die normale Installation und führen anschließend das Update auf die Beta-Version wie zuvor beschrieben aus:
mkdir -p /usr/local/ispprotect
chown -R root:root /usr/local/ispprotect
chmod -R 750 /usr/local/ispprotect
cd /usr/local/ispprotect
wget https://www.ispprotect.com/download/ispp_scan.tar.gz
tar xzf ispp_scan.tar.gz
rm -f ispp_scan.tar.gz
ln -s /usr/local/ispprotect/ispp_scan /usr/local/bin/ispp_scan

Voraussetzungen

Für die Nutzung der neuen Version ohne den --threads Parameter sind keine anderen Voraussetzungen notwendig als bisher. Möchten Sie die Mehr-CPU-Unterstützung verwenden, benötigen Sie die Swoole-Bibliothek für Ihre PHP-Version sowie den ClamAV-Daemon inkl. Client.

Unter Debian können Sie diese wie folgt installieren (Debian 11, PHP 7.4):
apt-get update
apt-get install clamav-daemon clamdscan php7.4-swoole

Ggf. ist es anschließend noch notwendig das Modul mit phpenmod swoole zu aktivieren.

Wir hoffen, dass wir mit dieser neuen Version dazu beitragen, Ihre Server noch ein Stück sicherer zu machen und schnelleres Eingreifen im Fall von gehackten Webseiten möglich zu machen.

Beta Version 2.0.0b1 – Thread-Unterstützung für Malware-Scans