Pyxsoft Antimalware

How Pyxsoft Antimalware protects a cPanel server: real-time scanning, scheduled scans, signatures from Pyxsoft Labs, heuristics, Auto Clean, quarantine and the WHM dashboard.

Pyxsoft Antimalware finds malware in the accounts of a cPanel server and deals with it on its own: it scans every file the moment it is written, runs a full scan of the server on a schedule, and quarantines, cleans or reports what it finds. Everything is managed from WHM → Plugins → Pyxsoft Antimalware.

How the protection works

  • Real-time scanning. Every file created or changed in an account is scanned as soon as it lands on disk, whether it came by FTP, a CMS upload, an extracted archive or a malicious script. Malware is stopped before it can run. See Real-Time Protection.
  • Scheduled and on-demand scans. A full scan of every account runs on the days and time you choose, with a CPU limit so sites don’t slow down. You can also scan the whole server or single accounts at any time. See Scans.
  • Signatures from Pyxsoft Labs. The service checks for new signatures every 6 hours. Pyxsoft Labs publishes them from samples sent by servers, so new malware is covered quickly.
  • Pyxsoft heuristics. Files are also analyzed by what they do, so malware with no signature yet is flagged as suspicious. Rules with no false positives on clean software are acted on as malware directly.
  • Phishing kits. Kits that collect credentials are recognized, including inside .zip archives, and the directory where the kit was installed is shown.
  • Auto Clean. When malicious code was injected into a legitimate file, only that code is removed and the site keeps working. See Auto Clean.
  • Quarantine and allowlist. Isolated files are stored encrypted outside the accounts, where they cannot run, and can be restored if they turn out to be false positives. See Quarantine and Allowlist.
  • Email alerts. An email for each real-time detection, a summary after each scan that finds something, and an optional monthly summary. See Settings.

Scanning is incremental: files that haven’t changed are not analyzed again, so repeated scans of the same server finish much faster than the first one.

The Overview

The Overview tab is the first thing you see when you open the plugin. It answers one question — does anything need my attention? — and shows how the protection is doing.

Overview tab of Pyxsoft Antimalware in WHM: an “All clear, no detections to resolve” card, status tiles for real-time scanning, signatures, last global scan and next scheduled scan, engine speed and heuristics cards, 30-day counters, a detections-per-day chart and the recent activity list

  • Needs attention / All clear. The number of detections still to resolve and in how many accounts. When known malware is still on disk (for example because the automatic action is Report only), a button quarantines all of it in one step.
  • Status tiles. Whether the real-time scanner is on, when signatures were last published and checked, the last global scan and the next scheduled one.
  • Engine speed and Pyxsoft heuristics. How fast the last global scan went and with what CPU limit, the average time the real-time scanner takes per file, and how many suspicious files the heuristics found with no signature in the last 30 days, including how many Pyxsoft Labs later confirmed as malware.
  • 30-day counters. Files scanned, detections, files stopped on upload, and accounts with detections. An account with detections on several days is likely being reinfected.
  • Detections per day and Recent activity. Each entry in the activity list links to the detection or the scan it refers to.

At the top right, the header shows the license status and lets you switch the interface language (English, Spanish or Brazilian Portuguese).

Sections of the plugin

Tab What it is for
Overview Status of the protection and what needs attention
Detections Every file found, with its detail and the actions to resolve it
Accounts State of each cPanel account and per-account scans
Scans Full server scan, schedule and history
Quarantine Isolated files: view, restore or delete
Allowlist Files the scanner skips while their content doesn’t change
Settings Automatic actions, real-time protection, schedule, CPU limit, exclusions, notifications and license

Everything can also be done from the shell with the pyxsoft command, which is how a server without a control panel is managed.

How the service runs

The service, pyxsoft.service, does not run as root. It runs as its own user, pyxsoft-am, with only the privileges a malware scanner needs:

Capability Why
CAP_DAC_READ_SEARCH Read every file, to scan it
CAP_DAC_OVERRIDE Quarantine, delete or clean a file in a directory of another user
CAP_CHOWN, CAP_FOWNER Give a restored or cleaned file back its owner and permissions
CAP_SYS_NICE Give a thread back its priority after a scan

The unit also keeps the system read-only for the service: /usr, /boot and /etc, and the places from which root runs or installs software, such as /opt, /var/lib, /var/spool and /run. Only the websites (/home, /var/www, /srv…) and its own directories stay writable. It cannot load kernel modules, use setuid programs or create namespaces. Check it with systemctl cat pyxsoft.

Path Contents
/opt/pyxsoft/pyxsoft The program
/etc/pyxsoft-am/pyxsoft.ini Configuration
/var/lib/pyxsoft-am Signatures, quarantine, detections and license data
/var/log/pyxsoft Logs
/run/pyxsoft/rpc.sock Local interface, only for root

If a website lives outside the usual places, it is still scanned, but its files cannot be quarantined there. Allow it with systemctl edit pyxsoft:

[Service]
ReadWritePaths=/data/sites

This page is also available as markdown.