shelltrap.com
en de

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.

Ein Dateistrom läuft in die Falle, eine Datei bleibt hängen und wird als malicious markiertDateien, die in Kunden-Docroots geschrieben werden, laufen auf drei Bahnen in eine beleuchtete Säule. Zwei davon passieren sie und werden als clean bezeichnet. Eine bleibt schräg in der Säule hängen, trägt ein Warnabzeichen und ist als malicious bezeichnet.cleanmaliciouscleanfanotify · CLOSE_WRITE · MOVED_TOSCANverdict/home/<account>/public_htmlquarantine · audit
schreiben → scannen → Verdikt · jede Datei, jeder Pfad, jedes Mal

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.

CyberPanel-Wissensdatenbank, geprüft am 4. September 2026

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.

  1. Beobachten

    fanotify markiert jeden Kunden-Mount und meldet Schreibvorgänge, Verschiebungen, Anlagen, Löschungen und Attributänderungen. Attributänderungen zählen: Ein späteres chmod oder 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.

  2. Übergeben

    Der Root-Broker öffnet die Datei sicher mit openat2 und RESOLVE_NO_SYMLINKS und reicht einen nur lesbaren Deskriptor über SCM_RIGHTS weiter. 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.

  3. 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.

  4. 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.

Shelltrap-Architektur: Ereignisquellen, Root-Broker, isolierter Worker, Verdikt und ReaktionVier Ereignisquellen speisen den parserfreien Root-Broker. Der Broker übergibt einen nur lesbaren Dateideskriptor an einen unprivilegierten Worker mit ClamAV, YARA, Hash-Sets und Heuristik. Der Worker liefert eines von fünf Verdikten zurück, aus dem die Reaktion folgt. Rechts hängen Steuerebene, signierte Feeds und Telemetrie am Broker.01 · EREIGNISQUELLENWeb-Uploadlsphp · auto_prepend_filesynchron, 2 sfanotifyTier A–D · CLOSE_WRITEEchtzeitFTPpure-uploadscriptnach dem UploadZeitplanBaseline · inkrementellI/O-Budget02 · ROOT-BROKERshelltrapd — läuft als root, enthält keinen Parseropenat2 · RESOLVE_NO_SYMLINKSJob-Journal in SQLite (WAL)nur opake Objekt-IDskein YARA-, kein ClamAV-CodeSCM_RIGHTS · nur-lesbarer FD03 · SCANNER-WORKEReigener Benutzer · Namespaces · seccomp · Landlock · kein NetzClamAVclamd-Socket · Full-ProfilYARA 4.5je Generation vorkompiliertHash-Setsplus Known-Good-AllowlistHeuristikmehrere Signale nötigGrenzen je Mandant: Dateigröße, Scanzeit, Archivtiefe, expandierte Bytes, Temp-Speicher04 · VERDIKTcleansuspiciousmaliciousunscanneddegraded„nicht gescannt" und „gestört" sind eigene Zustände und werden nie als clean angezeigtSTEUEREBENECyberPanel Plugin · CLI/run/shelltrap/api.sockSO_PEERCRED · Rollenkeine freien PfadeSignatur-FeedsEd25519 · GenerationenProvenienz je RegelKorpus-Gate · CanaryCircuit Breaker · RollbackLizenzEd25519-Token, offline geprüftFingerabdruck je Serverohne Lizenz: keine FeedsReaktionQuarantäne als TransaktionRestore mit MetadatenMail · Webhook · DigestPolicy je DomainHealth · Metriken · AuditPrometheus-Textformatgehashte Audit-Kette
Der Broker hat die Rechte und keinen Parser. Der Worker hat die Parser und keine Rechte.

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

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.

08

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.

09

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/shelltrap auf 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.
Was auf Ihrem Server bleibt und was ihn verlässtDateien, Scans, Verdikte, Quarantäne, Audit und Logs bleiben vollständig auf dem Kundenserver. Nach außen gehen nur zwei Verbindungen zu Panomity in Deutschland: die Lizenzprüfung mit Schlüsselpräfix, Fingerabdruck-Hash, Hostname, Version und Betriebssystem sowie der Download signierter Signaturgenerationen. Keine Datei, kein Sample und keine Telemetrie ohne ausdrückliche Freigabe.IHR SERVERKundendateien und UploadsScan-Ergebnisse und SignaleQuarantäne mit OriginalmetadatenAudit-Kette und LogsFindings und PoliciesPrometheus-MetrikenPANOMITY · DEUTSCHLANDlicense.shelltrap.comSchlüsselpräfix (nie der Schlüssel)Fingerabdruck aus /etc/machine-idHostname, Version, Betriebssystemtäglich, mit einer Stunde JitterSignatur-FeedsDownload signierter GenerationenBearer-Token aus der LizenzHTTPS, Same-Origin erzwungenServer in Deutschland, kein DrittlandLizenz prüfenRegeln holenDateien, Samples, Telemetrie
Alles auf der linken Seite bleibt links. Die beiden Pfeile rechts sind die gesamte Außenwelt.

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.

root@web1 — /root
$ 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

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.