
In diesem zweiten Teil möchte ich darüber berichten, wie wir bei einem Kunden mithilfe von "IT Automation", allen Geräten identifizieren konnten die eine veraltete Version von Notepad++ installiert hatten. Und wie wir diese anschließend zentral aktualisiert haben.
Zum ersten Teil geht es hier -> Falcon IT-Automation: Teil 1
Warum war das notwendig?
Im Jahr 2025 wurde die Auto-Update-Komponente von Notepad++ (WinGUp) durch einen "Supply Chain Angriff" kompromittiert. Dieser Angriff betraf nicht Notepad++ ansich, sondern die Infrastruktur des damaligen Hosting-Providers.
Was bedeutete das für uns?
Innerhalb des IT Automation Moduls konnten wir mithilfe von osquery herausfinden, welche Version von Notepad++ jeweils auf den Geräten installiert war.

SELECT
name AS "Software",
version AS "Version",
install_location AS "Pfad"
FROM
programs
WHERE
name LIKE '%Notepad++%'
AND version_compare(version, '8.9.2') = -1;programs: osquery-Tabelle für installierte Softwarename LIKE '%Notepad++%': Filtert nach Einträgen, die "Notepad" im Namen enthaltenversion_compare(...) = -1: Prüft numerisch korrekt, ob die Version älter ist. Dies verhindert Fehler beim reinen Textvergleich (wo z. B. "10.0" fälschlicherweise kleiner als "2.0" wäre)Mithilfe der zuvor erhalten Liste hatten wir die Systeme identifiziert, die noch eine ältere Version von Notepad++ installiert hatten. Dadurch konnten wir, unter Nutzung der in CrowdStrike integrierten Quick Actions (Real Time Response), das folgende PowerShell-Skript ausführen.
Bevor man das Script jedoch nutzen kann, muss es zunächst in der Plattform hinterlegt werden.
Host setup and management > Response and containment > Response scripts and files > Custom scripts
# TLS 1.2 für GitHub-Verbindung erzwingen
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$targetVersion = "8.9.2"
$downloadUrl = "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v$targetVersion/npp.$targetVersion.Installer.x64.exe"
$installerPath = "$env:TEMP\npp_installer.exe"
Try {
# Download mit Fehlerprüfung
Write-Output "Starte Download von v$targetVersion..."
Invoke-WebRequest -Uri $downloadUrl -OutFile $installerPath -ErrorAction Stop
# Installation mit Prozess-Überwachung
Write-Output "Starte Installation..."
$process = Start-Process -FilePath $installerPath -ArgumentList "/S" -Wait -PassThru
if ($process.ExitCode -eq 0) {
Write-Output "SUCCESS: Notepad++ wurde erfolgreich aktualisiert."
} else {
Write-Error "ERROR: Installation fehlgeschlagen mit Exit-Code $($process.ExitCode)."
}
}
Catch {
Write-Error "ERROR: Update fehlgeschlagen. Grund: $_"
}
Finally {
# Aufräumen der Setup Datei
if (Test-Path $installerPath) {
Remove-Item -Path $installerPath -Force
}
}Hinweise zum Skript:
/S: Führt die Installation im Silent Mode aus (kein Benutzereingriff nötig).-Proxy http://proxy:portNachdem das PowerShell Scipt hinterlegt ist, kann man dieses über die Quick Actions auf mehreren System ausführen lassen.


In diesem Fall hat sich gezeigt, dass wir mit Falcon IT Automation veraltete Software Versionen schnell und einfach identifizieren und anschließend zentral aktualisieren konnten. Besonders hilfreich war dabei, dass auch Geräte die nicht von einer Softwareverwaltung gesteuert wurden, dadurch zentral aktualssiert werden konnten. Dadurch habe wir effektiv und schnell das Risiko der betroffenen Notepad++ Versionen reduzieren können, ohne jedes System manuell anfassen zu müssen.
Vom Exploit bis zur Defense: Echte Security-Insights aus unserem SOC und Research-Lab