Wer Azure Blob Storage als Ablage für Kundenportale oder Intake-Apps einsetzt, weiß, dass hochgeladene Dateien zu den klassischen Einfallstoren für Malware gehören. In vielen Tenants, die ich betreue, landen solche Uploads ungefiltert im Storage. Eine nachgelagerte Prüfung, etwa in der App oder per Skript, gibt es – wenn überhaupt – nur bei Bedarf. Seit das Malware-Scanning von Defender for Storage in Microsoft Defender for Cloud produktiv verfügbar ist, kann man dieses Risiko endlich direkt im Storage-Account angehen, ohne eigene Infrastruktur aufzubauen oder regelmäßig Skripte laufen zu lassen.
Defender for Cloud aktiviert das Malware-Scanning für alle Accounts oder gezielt pro Account
Aktiviert wird die Funktion in Microsoft Defender for Cloud → Umgebungseinstellungen → Subscription → Defender-Pläne → Storage → Einstellungen. Dort bestimmt man entweder die standardmäßige Durchsetzung für alle Accounts oder konfiguriert Ausnahmen für einzelne Accounts. Das On-Upload-Scanning baut auf Event Grid auf und prüft neu hochgeladene Blobs nahezu in Echtzeit auf Malware. Angenehm finde ich, dass die Ergebnisse als Index-Tags direkt am Blob landen. Damit lässt sich auch im Nachhinein nachvollziehen, was wann mit welchem Status gescannt wurde.
Für den produktiven Einsatz braucht man mindestens Defender for Storage Plan 2. Wer die Kosten genauer steuern möchte, setzt pro Storage-Account ein monatliches Scan-Limit. Bei großen Kundenportalen, deren Upload-Volumen stark schwankt, ist das besonders wichtig.
Event Grid macht aus den Scan-Ergebnissen eine automatische Quarantäne
Nach jedem Scan schreibt Defender das Ergebnis als benutzerdefinierte Tags an den jeweiligen Blob. Welche Namen und Werte diese Tags haben, etwa „MalwareScanStatus“ und „MalwareScanResult“, steht in der offiziellen Dokumentation. Darauf aufbauend lassen sich mit Event Grid automatisierte Workflows umsetzen, die verdächtige Dateien zum Beispiel in einen Quarantäne-Container verschieben oder Benachrichtigungen verschicken.
In meinen Projekten nutze ich dafür meist Logic Apps, die auf Event-Grid-Events reagieren. Ein typischer Trigger sieht so aus: Taucht ein Blob mit dem Tag „MalwareScanResult=Malicious“ auf, wird er automatisch verschoben oder gelöscht. Den Ablauf zeigt das folgende Diagramm:
flowchart LR
Upload["Blob-Upload"] --> Scan["Malware-Scan (Defender)"]
Scan --> Tag["Scan-Status als Blob-Tag"]
Tag --> EventGrid["Event Grid-Trigger"]
EventGrid --> Aktion["Quarantäne-Workflow"]
Abbildung: Automatisierte Quarantäne mit dem Malware-Scanning von Defender for Storage und Event Grid.
Eines sollte man dabei nicht übersehen. Die eigentliche Quarantäne-Logik, also etwa das Verschieben in einen separaten Container mit restriktiven Zugriffsrechten, muss man selbst entwickeln und betreiben. Defender kümmert sich nur um die Erkennung und liefert das Signal.
Ein Scan-Kontingent pro Storage-Account hält die Kosten im Rahmen
Bei sehr vielen Uploads ist das monatliche Scan-Kontingent eine echte Hilfe. Im Defender-Portal legt man pro Storage-Account eine Obergrenze für Scans fest und vermeidet so unerwartet hohe Kosten. Sobald das Limit erreicht ist, wird allerdings nicht mehr automatisch gescannt. Das sollte man unbedingt mit dem Application Owner abstimmen und bei Bedarf ein Monitoring aufsetzen. Ich verwende dafür meist Azure Monitor, um das verbleibende Kontingent im Auge zu behalten und rechtzeitig alarmiert zu werden.
Mein Tipp: Aktivieren Sie das Scanning nicht pauschal für jeden Storage-Account. Prüfen Sie zuerst, wo externe Benutzer oder automatisierte Prozesse tatsächlich Dateien hochladen, und setzen Sie die Defender-Funktion samt Quarantäne-Workflow gezielt dort ein.
Plan 2 erkennt zusätzlich Bedrohungen rund um sensible Daten
Über das Malware-Scanning hinaus bringt Defender for Storage (Plan 2) eine Bedrohungserkennung für sensible Daten mit. Legt jemand etwa Kreditkartendaten oder andere vertrauliche Informationen in einem verdächtigen Kontext ab, erkennt Defender das und kann eine Warnung auslösen. Spannend ist das vor allem für Kundenportale, die sensible Uploads entgegennehmen und Compliance-Vorgaben erfüllen müssen. Details stehen im Überblick zu Defender for Storage.
Ebenso lassen sich Sentinel oder andere SIEM-Systeme anbinden. Alerts zum Malware-Scan-Status oder zu sensiblen Daten werden dann direkt weitergeleitet und im Incident-Response-Prozess bearbeitet. Am einfachsten klappt das mit einer Logic App oder über die Kette Event Grid → Function App → Log Analytics Workspace.
Malware-Scans bei Uploads gehören inzwischen zum Pflichtprogramm
Aus meiner Erfahrung ist das Malware-Scanning von Defender for Storage die erste wirklich unkomplizierte Möglichkeit, Dateiuploads in Azure Storage zuverlässig abzusichern. Man handelt sich dabei weder die Fehlerquellen klassischer Antiviren-Integrationen ein, noch braucht man teure Zusatztools. Wie Scan-Tags, die Automatisierung über Event Grid und die Kostenkontrolle pro Account zusammenspielen, ist praxisnah gelöst. Wer heute noch auf nachgelagerte Scans oder manuelle Prüfungen setzt, sollte spätestens jetzt umstellen. Ist das Scanning einmal sauber eingerichtet, sinkt das Risiko von Schadsoftware in produktiven Datenströmen, und auch die Compliance profitiert davon. Gerade wenn sensible Kunden- und Geschäftsdaten im Spiel sind, ist der Aufwand gut investiert.


