Third-Party Patching: Browser, Office und Java automatisch aktuell halten

Einleitung

Windows Update kümmert sich um Windows. Aber Chrome, Firefox, Adobe Reader, 7-Zip, Notepad++, Java, VLC, Zoom und 50 weitere Tools auf jedem Endpoint? Die werden in vielen KMU schlicht ignoriert – mit dem Ergebnis, dass eine veraltete Chrome-Version oder ein 18 Monate alter Adobe Reader das Einfallstor für die nächste Phishing-Kampagne ist. Dieser Artikel zeigt, wie du Drittsoftware ohne teures Patch-Management-Tool flächendeckend aktuell hältst.


Warum das Thema wichtig ist

In den meisten Ransomware-Vorfällen ist nicht das Betriebssystem die Eintrittstür, sondern eine veraltete Anwendung – Chrome-Lücken werden binnen 24h ausgenutzt, Adobe-Reader-CVEs wandern direkt in Phishing-Kits, Java-Lücken landen in Exploit-Kits noch am Patch-Tag. Microsoft Defender Vulnerability Management zählt regelmäßig Drittsoftware als die Asset-Klasse mit der höchsten Anzahl ausnutzbarer CVEs. Wenn das OS gepatcht ist, der Browser aber nicht, schützt dich die OS-Härtung vor sehr wenig. Third-Party Patching ist die zweite Hälfte des Patch-Managements – und in vielen KMU die größere Lücke.


Welche Tools du brauchst

Drei Werkzeug-Familien decken 95 % der Third-Party-Welt auf Windows ab:

Tool Wofür Kosten
winget (Windows Package Manager) Microsoft-eigener Paketmanager, ab Win10 21H1 vorinstalliert kostenlos
Chocolatey reife Paketverwaltung mit großem Repository kostenlos (Open Source), Business optional
PSWindowsUpdate / WSUS / Intune OS- und teilweise App-Updates über Microsoft-Stack kostenlos / Lizenz
Patch My PC (kostenfreie Home-Variante / Cloud-Pricing) Catalog-Integration in WSUS / Intune mixed

Für reine Linux-Welten reicht unattended-upgrades bzw. dnf-automatic plus die Distribution-Repos – die meisten Tools (Firefox-ESR, LibreOffice, OpenJDK) kommen sowieso aus dem Distributions-Paket.


winget für KMU – der pragmatische Standard

winget ist ab Windows 10 21H1 / Windows 11 vorinstalliert. Quellen-Repository: winget (Microsoft) und msstore. Damit lassen sich >5000 Anwendungen aktualisieren.

# alle installierten Pakete anzeigen
winget list

# alle Pakete updaten, die ein Update bekommen können
winget upgrade --all --silent --accept-source-agreements --accept-package-agreements

# nur ein konkretes Paket
winget upgrade Mozilla.Firefox --silent

Per Scheduled Task einmal pro Nacht ausgeführt, ist der Großteil der Endpoint-Drittsoftware aktuell:

# Scheduled Task erstellen (als SYSTEM, täglich 02:30)
$action = New-ScheduledTaskAction `
    -Execute "powershell.exe" `
    -Argument "-NoProfile -ExecutionPolicy Bypass -Command `"winget upgrade --all --silent --accept-source-agreements --accept-package-agreements *>> C:\ProgramData\winget-update.log`""
$trigger = New-ScheduledTaskTrigger -Daily -At 2:30am
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest
Register-ScheduledTask -TaskName "WingetDailyUpdate" -Action $action -Trigger $trigger -Principal $principal

Wichtig: winget braucht den Benutzerkontext für manche Pakete. Wenn ein Paket im Userspace installiert ist (z. B. Slack, Teams, Discord), wird der SYSTEM-Aufruf es nicht updaten. Workaround: pro User per Logon-Skript laufen lassen.


Chocolatey – die mächtigere Alternative

Chocolatey (kurz: choco) hat mit ~10.000 Paketen das größere Repository und unterstützt SYSTEM- und User-Installs sauber. Für KMU lohnt sich vor allem die Open-Source-Variante:

# Installation (einmalig)
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

# Pakete listen
choco list --local-only

# alles updaten
choco upgrade all -y --no-progress

Mit Chocolatey kannst du via chocolateyinstall.ps1-Skripten auch eigene Pakete bauen (z. B. für branchenspezifische Software, die nicht im Repo ist). Für die meisten KMU genügt aber der Standard-Repository-Inhalt.

Für die Verteilung an mehrere Endpoints empfiehlt sich ein internal Chocolatey Repository (z. B. mit Sonatype Nexus oder ProGet). Die Endpoints holen sich Pakete dann von intern, was Bandbreite spart und du kannst Versionen freezen.


Browser-Patching – Sonderfall

Browser sind die meistangegriffene Software-Klasse überhaupt. Hier reicht wingetlocally oft nicht – setze auf die eingebauten Update-Mechanismen und kontrolliere sie zentral:

Setze in den GPOs ausdrücklich auf automatische Updates ohne User-Konfirmation – sonst bleiben die Tabs offen und das Update wird wochenlang verschoben.


Office, Adobe Reader, Java – die dauerhaften Problemzonen

Microsoft 365 / Office 2019/2021: Updates über den Click-to-Run-Channel. Per GPO unter Microsoft Office 2016 (Computer) → Updates → “Enable Automatic Updates” + “Update Channel: Monthly Enterprise Channel” einstellen. Das Office-Deployment-Tool (setup.exe /configure) mit XML-Konfiguration ist die zuverlässigste Methode.

Adobe Reader DC: Updater-Service AdobeARMservice muss laufen. Per GPO unter HKLM\SOFTWARE\Policies\Adobe\Acrobat Reader\DC\FeatureLockDown\cWelcomeScreen → bShowWelcomeScreen=0 und Updater enforcen. Alternative: winget upgrade Adobe.Acrobat.Reader.64-bit. Noch besser: Adobe Reader durch SumatraPDF / FoxitReader / Edge-PDF ersetzen, wo möglich.

Java: Die wichtigste Frage ist: Brauchst du noch Oracle JRE auf Endpoints? In 90 % der KMU-Cases lautet die Antwort „nein“. Wenn doch (z. B. Branchen-App), dann auf OpenJDK wechseln (Eclipse Temurin, Microsoft OpenJDK – beides via winget verfügbar) und die Oracle-Lizenz-Falle umgehen. Old-school Oracle-JRE bleibt eine der instabilsten und am häufigsten ausgenutzten Software-Klassen.


Inventur: was läuft eigentlich überall?

Bevor du patchen kannst, musst du wissen, was installiert ist. Per PowerShell remote über alle Domain-Hosts:

# Software-Inventur über WMI – Achtung: kann lange laufen
$computers = (Get-ADComputer -Filter * -Properties Name).Name
$inventory = foreach ($pc in $computers) {
    try {
        Get-CimInstance -ClassName Win32_Product -ComputerName $pc -ErrorAction Stop |
            Select-Object @{n='Host';e={$pc}}, Name, Version, Vendor
    } catch {}
}
$inventory | Export-Csv -Path "software-inventur.csv" -NoTypeInformation

Win32_Product ist langsam (triggert MSI-Reconfigure) – besser: Registry direkt lesen via Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*. Wer Wazuh / OSQuery / Lansweeper im Einsatz hat, hat diese Inventur ohnehin schon.

Mit der Liste in der Hand: Top-20-Anwendungen identifizieren, die >50 % der Endpoints betreffen. Das sind die, die als Erstes ins automatisierte Patching müssen.


Update-Erfolg messen

Patching ohne Reporting ist Wunschdenken. Drei Metriken pro Woche:

  1. Patch-Coverage: % der Endpoints, auf denen das Update-Skript erfolgreich gelaufen ist (Logfile / Scheduled-Task-Status auswerten)
  2. Outdated-Apps-Count: pro Endpoint, wie viele Pakete veraltet sind (winget list --upgrade-available | Measure-Object)
  3. CVE-Exposure: bekannte CVEs in installierten Versionen – z. B. via OSV-Scanner oder OpenVAS / Greenbone

Ein einfaches Dashboard in Grafana / Excel mit Trend über die Zeit zeigt sofort, wenn die Coverage einbricht.


SIGMA-Rule: ungeplanter Patch-Fehler

Wenn Updates plötzlich nicht mehr durchgehen, willst du das in Stunden, nicht Wochen sehen.

title: Winget Update failed multiple times in a row
detection:
  selection:
    EventID: 11   # Sysmon FileCreate
    TargetFilename|contains: 'winget-update.log'
  filter:
    LogContent|contains: 'No applicable upgrade found'
  condition: selection
  timeframe: 7d
  count: '> 3 same host'
level: medium

Sauberer ist eine kleine PowerShell-Auswertung des Logfiles, die per E-Mail / Slack / Teams meldet, wenn das Update fehlschlägt.


Stolperfallen


Praxis-Checkliste


Fazit

Third-Party Patching ist die unterschätzte Hälfte des Patch-Managements – und mit winget oder Chocolatey ohne Mehrkosten in den Griff zu bekommen. Die eigentliche Arbeit ist nicht das Tool, sondern die Disziplin: Inventur pflegen, Auto-Updates erzwingen, Coverage messen, Ausreißer-Hosts triagieren. Wer das ein Quartal durchhält, hat eine der größten Eintritts-Türen für Ransomware geschlossen.


Wenn du tiefer einsteigen willst: Im Newsletter zeige ich jeden Monat konkrete Patch-Workflows, winget-/Choco-Tipps und Reporting-Beispiele. Trag dich ein.

← Zurück zur Übersicht