# VirusTotal-Anhangsprüfung für DeskHub Jeder Anhang eines Tickets wird **zurückgehalten, bis VirusTotal ihn geprüft hat**. Erst danach ist er für Mitarbeiter herunterladbar. Der Unterschied zum Plugin **Anhänge-Virenscan**: Der Virenscan prüft sofort lokal und fragt VirusTotal (optional) erst **nachträglich**; die Datei ist in der Zwischenzeit schon verfügbar. Dieses Plugin sperrt zuerst und gibt erst nach der Antwort von VirusTotal frei. Beide laufen nebeneinander (der Virenscan prüft eine Datei erst, wenn sie hier freigegeben ist). ## Ablauf 1. Neue Anhänge (Ticket anlegen, Antwort, E-Mail-Abruf) werden sofort **zurückgehalten**: Die Datei wandert in den Ordner `uploads/vt-pruefung/` (nicht von außen erreichbar), der Anhang heißt `[IN PRÜFUNG] …` und lässt sich nicht herunterladen. Im Ticket steht ein interner Hinweis. 2. Der Hintergrunddienst fragt bei VirusTotal den **SHA-256-Fingerabdruck** der Datei ab (nicht die Datei). 3. Ergebnis: - **Bekannt und sauber** (weniger als *Schwelle* Scanner melden etwas, Standard 3): freigegeben, alles wie vorher. - **Schadsoftware** (mindestens *Schwelle* Scanner): bleibt gesperrt (`[GESPERRT] …`), Tag „Virus-Verdacht“, Hinweis im Ticket, Mail an den Administrator. - **Unbekannt:** Standard ist, die Datei **zurückzuhalten**, bis ein Administrator sie prüft und freigibt oder löscht. Einstellbar: freigeben, oder (nur wenn ausdrücklich eingeschaltet) **zur Analyse hochladen**. - **VirusTotal nicht erreichbar:** mehrere Versuche mit wachsendem Abstand, danach zurückhalten (oder freigeben, einstellbar). ## Einrichtung 1. Plugin hochladen und aktivieren (Berechtigungen `hooks.tickets`, `hooks.cron`, `ui.menu`, `db.migrations`). 2. Auf virustotal.com ein (kostenloses) Konto anlegen und im Profil den **API Key** kopieren (64 Zeichen). 3. Im Adminportal unter **VirusTotal** den Schlüssel eintragen, speichern und **Schlüssel testen**. **Ohne Schlüssel werden keine Anhänge zurückgehalten.** Anhänge, die vor dem Einschalten da waren, bleiben unberührt. ## Datenschutz (wichtig) - Standard: **Keine Datei verlässt den Server.** Es wird nur der Fingerabdruck abgefragt. - „Unbekannte Dateien hochladen“ (aus, bis zu 32 MB) sendet die **Datei** an VirusTotal. Dort wird sie gespeichert und steht Sicherheitsfirmen und zahlenden Kunden zur Verfügung. Ticket-Anhänge können persönliche Inhalte enthalten (Ausweise, Bilder, Dokumente). Nur einschalten, wenn das für eure Nutzer in Ordnung ist und in der Datenschutzerklärung steht. ## Limits und Verhalten - Kostenloser Schlüssel: **4 Abfragen pro Minute, 500 pro Tag.** Das Plugin hält sich daran (4 pro Lauf, höchstens 480 pro Tag). Bei vielen Anhängen entsteht eine Warteschlange; ist das Tageslimit erreicht, stehen die Dateien bis zum nächsten Tag an. Ein bezahlter Schlüssel hebt die Grenzen auf; die Zahl im Plugin bleibt konservativ. - Die Abfragen laufen im Hintergrunddienst von DeskHub (jede Minute, wenn der echte Cronjob eingerichtet ist, sonst alle 5 Minuten bzw. bei Seitenaufrufen). **Mit Cronjob** (Einstellungen → Cron-Jobs → „Jetzt installieren“) sind Anhänge nach etwa einer Minute frei. - Bis zum Ergebnis erscheint der Anhang im Ticket als `[IN PRÜFUNG]` und lässt sich nicht herunterladen (auch nicht vom Kunden, falls er seine Anhänge sieht). - Der **Virenscan-Schutz bleibt wichtig**: VirusTotal kennt neue, gezielte Schadsoftware oft nicht. Unbekannt heißt nicht sauber; darum ist „zurückhalten“ der Standard. ## Grenzen - Geprüft werden Dateien bis 32 MB per Upload; die Abfrage des Fingerabdrucks funktioniert für jede Größe. - Es wird nur der Fingerabdruck bewertet (kein Entpacken von Archiven, kein Lesen des Inhalts); dafür gibt es den Virenscan. - Bereits freigegebene Dateien werden nicht erneut geprüft. ## Tests `tests/plugin_virustotal.php` im DeskHub-Projekt (VirusTotal wird dort durch eine Funktion ersetzt; es gibt keine Verbindung zu VirusTotal).