CXS-Nachfolger · CyberPanel · OpenLiteSpeed
Die fremde Datei — festgehalten in dem Moment, in dem sie landet
Shelltrap beobachtet jeden Schreibvorgang in den Docroots Ihrer Kunden, scannt ihn in einem isolierten Worker und sagt Ihnen genau, warum er so entschieden hat.
- Erkennung in Echtzeit über fanotify — kein Cronjob, der die Shell am Donnerstag findet.
- Ein synchrones Gate vor PHP: Ein Upload wird beurteilt, bevor Ihre Anwendung ihn überhaupt sieht.
- Ihre Dateien verlassen die Maschine nie. Nach außen sprechen nur die Lizenzprüfung und der Download signierter Regeln — mit Deutschland.
- Für CyberPanel gebaut: Panel-Plugin, Policies je Domain, Rollen für Reseller und Kunden.
Ein Server, unbegrenzt Domains: 14,90 € je Server / Monat · inkl. 19 % MwSt.
01 / Die Lücke
Ein CyberPanel-Host bringt keinen eigenen Malware-Scanner mit
Das ist keine Meinung über CyberPanel, sondern das, was dessen eigene Dokumentation sagt. Jeder der drei Wege aus dieser Lücke kostet — und einer davon ist gerade zugegangen.
Der unterstützte Weg kostet zweimal
Die CyberPanel-Wissensdatenbank beschreibt Imunify360 als Malware-Option und schreibt ausdrücklich, dass Sie das Betriebssystem vorher auf CloudLinux OS umstellen müssen. Das ist eine zweite kommerzielle Lizenz und eine störende Migration für jeden, der ein normales AlmaLinux oder Ubuntu betreibt.
Der günstige Weg wird nicht mehr verkauft
ConfigServer eXploit Scanner hat genau diese Lücke jahrelang für preisbewusste Betreiber gefüllt. Der Hersteller Way to the Web hat den Vertrieb eingestellt. Ein nicht mehr gepflegter Scanner läuft einfach weiter — das ist das Problem, nicht die Entwarnung. Sein Signatur-Feed hält mit dem, was diesen Monat hochgeladen wird, nicht mehr Schritt.
Der kostenlose Weg endet vor dem Panel
ClamAV und maldet sind wirklich nützlich und wirklich kostenlos. Auf einem normalen CyberPanel-Host sind sie aber auch eine Handinstallation ohne Scan beim Schreiben, ohne Panel-Integration, ohne Policy je Domain und ohne jemanden, den man anrufen kann. Auf einer Produktionsmaschine muss jemand diese Lücke verantworten.
02 / Die Pipeline
Vier Schritte zwischen einem Schreibvorgang und einem Verdikt
Jede Entwurfsentscheidung hier dient einem Zweck: den Teil des Systems, der feindliche Bytes parst, so weit von root wegzuhalten, wie es nur geht.
Beobachten
fanotify markiert jeden Kunden-Mount und meldet Schreibvorgänge, Verschiebungen, Anlagen, Löschungen und Attributänderungen. Attributänderungen zählen: Ein späteres
chmododer ein setuid-Bit ist ebenfalls ein Ereignis. Ein Überlauf der Warteschlange wird gezählt, alarmiert und mit einem zeitlich begrenzten Rekonsiliationsscan beantwortet — nie stillschweigend verschluckt.Übergeben
Der Root-Broker öffnet die Datei sicher mit
openat2undRESOLVE_NO_SYMLINKSund reicht einen nur lesbaren Deskriptor überSCM_RIGHTSweiter. Der Broker selbst enthält kein YARA, kein ClamAV und kein Archiv-, Office- oder ELF-Parsing. Über eine Datei, die er nie zum Lesen öffnet, ist er nicht angreifbar.Scannen
Der Worker läuft als eigener Benutzer, in eigenem Mount- und PID-Namespace, mit seccomp, Landlock, rlimits und cgroup-Grenzen — und ganz ohne Netz. Darin: ClamAV über den clamd-Socket, YARA 4.5 je Regelgeneration vorkompiliert, Hash-Sets mit Known-Good-Allowlist und eine Heuristik, die mehrere unabhängige Signale braucht, bevor sie etwas sagt.
Entscheiden
Verdikt, Score und jedes beteiligte Signal werden zusammen mit der Regel- und der Policy-Generation gespeichert, die sie erzeugt haben. Was danach passiert — melden, Quarantäne oder nichts — ist eine Policy, die Sie je Domain setzen, keine Entscheidung, die der Scanner Ihnen abnimmt.
03 / Was Sie bekommen
Gebaut von Leuten, die um zwei Uhr nachts einen Shared Host aufräumen mussten
Nichts davon ist ein Häkchen auf einer Liste. Jeder Punkt existiert, weil die Alternative auf einem echten Server mit echten Kunden schiefgeht.
Upload-Gate vor PHP
Ein dünner Adapter über auto_prepend_file prüft nicht leere $_FILES, bevor Ihre Anwendung läuft. Malicious bedeutet HTTP 403 und eine gelöschte Temp-Datei. Bei einem Gate-Fehler gilt standardmäßig fail-open, je Domain konfigurierbar.
Policy je Domain
Ebenen global, Account und Domain mit sichtbarer Vererbung. Aktionen für Signatur-, Hash- und Heuristiktreffer, Upload-Verhalten, Scanfenster, Ausnahmen und Aufbewahrung — alles für eine Site setzbar, ohne die anderen anzufassen.
Quarantäne, die sich rückgängig machen lässt
Eine crash-sichere Transaktion: Kopie über Deskriptor, Hashvergleich, fsync, atomare Veröffentlichung, Manifest- und Datenbank-Commit — und erst danach das Unlink. Restore stellt Eigentümer, Modus, Zeiten, ACLs, xattrs und den SELinux-Kontext wieder her und überschreibt nie eine vorhandene Datei.
Erklärbare Funde
Jedes Finding trägt seine Signale, jedes mit Engine, Name, Score und — sofern die Regel von Dritten stammt — Autor, Quelle und Lizenz. Sie können einem Verdikt widersprechen, weil Sie es lesen können.
Signierte Regelgenerationen
Jede Regelmenge ist eine Ed25519-signierte Generation mit Provenienz je Regel und Ablaufdatum. Sie muss ein Korpus-Gate aus Known-Good und Known-Bad bestehen, bevor sie aktiviert wird, und ein Quarantäne-Sturm über mehrere Accounts rollt sie automatisch zurück.
CyberPanel-Plugin
Dashboard, Funde mit ihren Signalen, Quarantäne und Restore, Policies je Domain, Ignore-Listen, Feed-Status und Audit — im Panel, mit den Rollen, die Ihre Reseller und Kunden schon haben. Bricht das Panel, läuft der Scanner weiter.
Report-only-Modus
Fangen Sie damit an, alles zu protokollieren und nichts zu bewegen. So betreiben wir ihn selbst auf Produktionshosts, bevor eine Aktionspolicy eingeschaltet wird — und so sollten Sie einem neuen Scanner auf einer Maschine mit zahlenden Kunden begegnen.
Pakete statt Skripte
Signierte .deb und .rpm für Ubuntu 20.04/22.04/24.04, AlmaLinux, RockyLinux und RHEL 8/9/10, CloudLinux 8 und CentOS 9. Idempotente Maintainer-Skripte, eine Conffile, die Upgrades übersteht, und ein Purge, der Ihre Quarantäne nicht ohne ausdrückliche Freigabe löscht.
Health, auf die man alarmieren kann
Queue-Alter, Overflows, ungescannte Objekte, Feed-Alter, clamd-Zustand, Rekonsiliationsrückstand und Worker-Neustarts, im Prometheus-Textformat auf einem lokalen Socket. Ein gestörter Scanner meldet degraded — nie clean.
04 / Das Verdikt-Modell
Fünf Antworten, weil zwei gelogen wären
Die meisten Scanner können „sauber“ oder „infiziert“ sagen. Interessant sind die drei Fälle dazwischen, und so zu tun, als gäbe es sie nicht, ist genau die Art, wie ein Host sich in falscher Sicherheit wiegt.
clean
Von jeder Engine des Profils gescannt, nichts gefunden. Wird automatisch ungültig, sobald eine neue Regelgeneration ankommt.
suspicious
Mehrere unabhängige Signale, unterhalb der Aktionsschwelle. Gemeldet und sichtbar. Ob daraus je eine Aktion wird, ist Ihre Policy — je Domain.
malicious
Ein Signatur- oder Hashtreffer oder ein Heuristik-Score über der Schwelle. Standardaktion bei Signatur- und Hashtreffern ist die Quarantäne.
unscanned
Eine Grenze wurde erreicht — Größe, Zeit, Archivtiefe, Expansionsverhältnis. Mit Grund protokolliert. Wird nie stillschweigend als clean gezählt.
degraded
Der Scanner selbst war beeinträchtigt: clamd weg, ein Worker tot, eine Regelmenge fehlt. Wird ebenfalls nie als clean gezählt.
05 / Wo Ihre Daten liegen
Dateien verlassen den Server nie. Das ist Architektur, kein Versprechen
Shelltrap scannt lokal, weil der Scanner lokal läuft. Es gibt keinen Upload von Samples, keine Analyse-Warteschlange in der Cloud und keine Telemetrie, solange Sie sie nicht einschalten.
- Es gibt zwei Verbindungen nach außen: die Lizenzprüfung und den Download signierter Regelgenerationen. Beide gehen an Panomity-Server in Deutschland.
- Die Lizenzprüfung sendet das Schlüsselpräfix (nie den Schlüssel), einen Hash aus
/etc/machine-id, den Hostnamen, die Version und das Betriebssystem. - Quarantäneinhalte, Findings, Pfade, Hashes und die Audit-Kette bleiben in
/var/lib/shelltrapauf Ihrer Maschine. - Die systemd-Unit des Daemons beschränkt die Adressfamilien auf
AF_UNIX. Netz für Mail oder Webhooks ist ein Drop-in, das Sie bewusst installieren.
06 / In Betrieb nehmen
Zwei Befehle, dann eine Fähigkeitsprobe, die die Wahrheit sagt
Der Installer glaubt keiner Kernel-Versionsnummer. Er probiert fanotify, Filehandles, Mount-Topologie, LSM-Zustand und verfügbaren Speicher auf dem echten Host und schreibt hin, was er gefunden hat, bevor er etwas entscheidet.
$ apt-get install shelltrap shelltrap-cyberpanel
Reading package lists... done
Setting up shelltrap (1.0.0) ...
shelltrap: kernel=6.8.0-generic CAP_SYS_ADMIN=present provisional_tier=unknown (requires shelltrapd --check)
shelltrap: SELinux=disabled AppArmor=enabled LSWS=OLS
shelltrap: mount_probe=/home mount_target=/home mount_fs=xfs mount_options=rw,relatime
shelltrap: profile=full (clamd socket reachable as shelltrap-scan, 4.1 GiB MemAvailable after reload reserve)
Created symlink /etc/systemd/system/multi-user.target.wants/shelltrapd.service
$ shelltrapd --config /etc/shelltrap/shelltrap.toml --check
{"tier":"A","diagnostic":{"tier":"A","mounts":[{"target":"/home","fs":"xfs","capabilities":{"fid":true,"filesystem_mark":true}}]}}
tier A — real time on every configured customer root
07 / Sehen Sie selbst nach
Drei Dinge, an denen Sie sofort herumprobieren können
Ohne Anmeldung, ohne Demo-Termin, ohne Vertriebsingenieur in der Leitung.
Webshell Signal Explorer
Sechs Dinge, die einem Scanner auf einem echten Host begegnen — einschließlich des Fehlalarms, der nicht passieren darf — mit der Begründung hinter jedem Verdikt.
Explorer öffnen →
CXS-Migrationsrechner
Shelltrap wird je Server lizenziert, nicht je Domain. Rechnen Sie Ihre Flotte durch, bevor Sie mit jemandem sprechen.
Zahlen ansehen →
Die Dokumentation
Installation, Konfiguration, das CyberPanel-Plugin, Signatur-Feeds und Lizenzierung — dasselbe Material, mit dem unsere eigenen Betreiber arbeiten.
Doku lesen →
Wann immer Sie so weit sind
Eine Lizenz je Server. Jede Domain darauf abgedeckt.
Im Shop bestellen, mit einem Befehl aktivieren und im Report-only-Modus starten, bis Sie ihm trauen.
14,90 € je Server / Monat · 149,00 € je Server / Jahr · inkl. 19 % MwSt.