Antiviren-Ausschlüsse

NodePilot führt PowerShell aus und startet Prozesse. Beides kollidiert mit Standard-Heuristiken von Endpoint-Security-Produkten. Diese Seite listet die dafür erforderlichen Ausschlüsse, jeweils mit Begründung und Restrisiko, und ist als Übergabegrundlage für eine AV-Abteilung gedacht.

Betroffen sind die Betriebsarten Windows-Server und Desktop-App. Auf den per WinRM orchestrierten Ziel-Maschinen wird keine NodePilot-Software installiert; sie sind nicht Gegenstand dieser Seite.

Nicht gemeint ist SmartScreen. Der blaue Dialog beim Start eines heruntergeladenen Installers kommt von einem getrennten Reputationsdienst, der Ausschlusslisten ignoriert — kein Eintrag dieser Seite beeinflusst ihn. Siehe Beim ersten Start: das blaue SmartScreen-Fenster.

Auslöser

VerhaltenBetriebsartTypische Reaktion des Scanners
Dienst unter LocalSystem schreibt nodepilot_<hex>.ps1 nach %TEMP%, härtet die ACL und führt die Datei mit -ExecutionPolicy Bypass ausbeideBlockade der Skriptdatei, Schritt läuft in den Timeout
Prozess-Isolation startet den PowerShell-Host über CreateProcessW mit Attribute-List, vererbbaren Pipes und Job ObjectbeideVerhaltenserkennung als Launcher-Muster
Installer entpackt ein signaturgeprüftes Artefakt nach %TEMP% und tauscht das ProgrammverzeichnisServerDateihandle verhindert Verschieben, Update bricht ab
postgres.exe schreibt dauerhaft in pgdata\base und pgdata\pg_walDesktopDurchsatzverlust, im Extremfall Schreibfehler
Electron startet Kindprozesse desselben Binärnamens und liefert Chromium-Nativ-DLLsDesktopGenerischer Heuristik-Treffer, Oberfläche startet nicht

Grundsätze

  • Rangfolge der Ausschlussarten: Signatur/Publisher → Prozess → Pfad. Das Server-Artefakt ist signiert und wird vor dem Entpacken gegen einen festgelegten Signer-Thumbprint geprüft; eine Publisher-Regel ist deshalb der pfadärmste Weg.
  • Ausschlüsse betreffen die Echtzeit-Prüfung, nicht die EDR-Telemetrie. Wo das Produkt beides trennt, bleibt die Verhaltenserfassung aktiv.
  • Ausschlüsse gelten pro Rolle. Eine domänenweite Policy wäre eine unnötige Ausweitung.
  • Alle Pfade sind Standardwerte. Abweichende -InstallPath/-DataPath oder gesetzte Logging:File:Path/Retention:*:ArchivePath verschieben die Einträge entsprechend.

Windows-Server

Ein Dienst: NodePilot (Anzeigename NodePilot Orchestrator), ausgeführt als LocalSystem oder gMSA. Die Datenbank liegt auf einem anderen Host.

Ordner

PfadInhaltPrioritätRestrisiko
C:\Program Files\NodePilotProgrammverzeichnis, wird beim Update vollständig getauschtPflichtNur SYSTEM und Administratoren haben Schreibrechte. Publisher-Regel statt Pfad bevorzugen
C:\ProgramData\NodePilotLogs, Archive, Schlüsselmaterial, LaufzeitkonfigurationPflichtEnthält Schlüssel und Tokens; deren Schutz liegt bei der ACL, nicht beim Scanner
C:\Program Files\NodePilot.rollback.*, …NodePilot.backup.*Zeitgestempelte Vorgängerstände (drei werden aufbewahrt)EmpfohlenAuf das Wartungsfenster befristbar
%TEMP%\nodepilot-artifact-* (Dienst: C:\Windows\Temp\…)Staging des signierten Artefakts — ~2900 Dateien, davon ~2650 unter 64 KB. Die teuerste Stelle eines Updates: nicht die 114 MB kosten, sondern die Dateianzahl, und ein Echtzeit-Scan prüft jede Erzeugung einzelnEmpfohlenRestriktive DACL bei der Erzeugung; der Inhalt wird direkt danach Datei für Datei gegen das signierte Manifest geprüft. Auf das Wartungsfenster befristbar

Prozesse

ProzessPrioritätRestrisiko
C:\Program Files\NodePilot\NodePilot.Api.exePflichtFührt konstruktionsbedingt Workflow-PowerShell aus. Kompensiert durch NodePilot-eigene Rollen, Folder-RBAC und Audit-Log
powershell.exe (System32\WindowsPowerShell\v1.0)PflichtStandard-Host lokaler Skript-Schritte (Engine auto, powershell, isoliert). Weitreichend. Wo möglich auf den Elternprozess NodePilot.Api.exe einschränken
pwsh.exe (C:\Program Files\PowerShell\7)Pflicht, wenn Schritte die Engine pwsh nutzen (auto nutzt ihn nur, wenn Windows PowerShell fehlt)wie oben
where.exeEmpfohlenEinmalige Pfadauflösung beim Engine-Start, kein Schreibzugriff

Verhaltensregeln

MechanismusKonfliktEmpfehlung
Regeln „Dienst startet Skript-Host" (u. a. ASR-Regeln zu Prozesserzeugung und verschleierten Skripten)Kernfunktion von NodePilotAusnahme für den Elternprozess, Regel nicht global deaktivieren
Controlled Folder AccessBlockiert Schreiben nach C:\ProgramData\NodePilot, Dienststart schlägt fehlNodePilot.Api.exe als vertrauenswürdig eintragen
Löschquarantäne im ProgrammverzeichnisEntfernt der Scanner powershell.config.json, startet die PowerShell-SDK pro Runspace ein zusätzliches powershell.exe -Version 5.1 -s, das nicht beendet wird — der Dienst belegt dann Gigabyte an ArbeitsspeicherFunde melden statt entfernen
Skript-Scanning / AMSIkeineraktiv lassen

Ports (informativ, kein Ausschluss): eingehend 443 und optional 80; ausgehend 5985/5986 für WinRM sowie 1433 bzw. 5432 für die Datenbank. Der Installer legt die Firewall-Regeln NodePilot NodePilot HTTPS und NodePilot NodePilot HTTP-Redirect an.

Desktop-App

Zwei Dienste: NodePilot (API, LocalSystem) und NodePilotDb (PostgreSQL über pg_ctl.exe, NetworkService). Alle Ports sind auf Loopback beschränkt, es wird keine Firewall-Regel angelegt.

Die API liegt hier eine Ebene tiefer als beim Server — …\NodePilot\app\NodePilot.Api.exe. Ein auf die Server-Variante gemünzter Pfad-Ausschluss greift nicht.

Ordner

PfadInhaltPrioritätRestrisiko
C:\Program Files\NodePilot\appAPI-DienstPflichtwie Server-Programmverzeichnis
C:\Program Files\NodePilot\desktopElectron-Shell samt Chromium-Nativ-DLLs (vk_swiftshader.dll, ffmpeg.dll, dxcompiler.dll, libEGL.dll, libGLESv2.dll)PflichtStatischer Programmcode; ein einzelner Quarantäne-Fund macht die Oberfläche startunfähig
C:\Program Files\NodePilot\pgsqlMitgeliefertes PostgreSQLEmpfohlenAlternativ nur die sechs genutzten Prozesse ausschließen statt des ganzen Ordners
C:\ProgramData\NodePilotpgdata, secrets, logs, backups, rollback, archive, desktop.jsonPflichtEnthält Datenbank-Passwörter; deren Schutz liegt bei der ACL
%APPDATA%\NodePilotChromium-Profil und Caches der ShellEmpfohlenNur Cache-Daten, kein ausführbarer Code
%LOCALAPPDATA%\NodePilotadmin-setup.handoff, Einmal-Token für den ErstloginEmpfohlenKurzlebige Textdatei

Prozesse

Prozess (in C:\Program Files\NodePilot)PrioritätRestrisiko
app\NodePilot.Api.exePflichtwie Server
desktop\NodePilot.exePflichtStartet Kindprozesse desselben Namens und über das Infobereichsmenü ein UAC-angehobenes powershell.exe für den Dienst-Neustart. Ausschluss auf den Pfad einschränken, nicht auf den Dateinamen
pgsql\bin\postgres.exe, pgsql\bin\pg_ctl.exePflichtBindung ausschließlich an 127.0.0.1
pgsql\bin\initdb.exe, psql.exe, pg_dump.exe, pg_restore.exeEmpfohlenLaufen nur bei Installation und Update
powershell.exe / pwsh.exePflichtwie Server

Die übrigen 37 Programme in pgsql\bin werden nicht aufgerufen und brauchen keinen Ausschluss.

Ports (informativ): Loopback 47000–47049 für die API, 47100–47149 für PostgreSQL; je ein freier Port wird bei der Installation gewählt und festgehalten.

Gemeinsam: temporäre Skriptdateien

MusterEntstehtPrioritätRestrisiko
%TEMP%\nodepilot_*.ps1 — bei LocalSystem C:\Windows\Temp\nodepilot_*.ps1Bei jedem isolierten oder prozessbasierten runScript-Schritt; wird danach gelöschtPflichtDer weitreichendste Eintrag. Ausschließlich das Namensmuster ausschließen, niemals das gesamte Temp-Verzeichnis, und wo möglich auf den Elternprozess einschränken
%TEMP%\NodePilot-Transcript-*.logNur bei aktivierter Mitschrift; räumt sich nach 24 Stunden selbst aufEmpfohlenReine Textdatei

Ein Ausschluss „alles unterhalb der beiden NodePilot-Verzeichnisse" wirkt vollständig, lässt aber genau diese Skriptdatei ungeschützt — sie liegt außerhalb jedes NodePilot-benannten Pfads.

Nur die Engine runspace schreibt keine temporäre Datei und startet keinen Kindprozess: diese Skripte laufen in einem prozessinternen Runspace-Pool innerhalb von NodePilot.Api.exe. Die Standard-Engine auto startet einen Windows-PowerShell-5.1-Prozess. Nur wenn alle lokalen Skript-Schritte runspace nutzen, entfallen die Einträge dieses Abschnitts und die Skript-Host-Prozesse.

Nur bei Installation und Update

PfadBetriebsartPriorität
%TEMP%\nodepilot-artifact-* (Installer und Updater, siehe A.1)ServerEmpfohlen, für Installation und Update
%TEMP%\nodepilot-provision.logDesktopEmpfohlen
NodePilot-Desktop-Setup-*.exe, unins000.exeDesktopEmpfohlen
C:\ProgramData\NodePilot\backups\pre-update-*.dump, …\rollbackDesktopEmpfohlen

Diese Einträge lassen sich auf ein Wartungsfenster befristen.

Nicht ausschließen

Nicht ausschließenBegründung
C:\Windows\Temp als GanzesFür viele Prozesse beschreibbar; nur das Muster nodepilot_*.ps1 ausschließen
Zielpfade von WorkflowsDatei-, Ordner-, Textdatei-, ZIP- und Registry-Activities schreiben an frei konfigurierbare Ziele. Genau diese Schreibvorgänge sollen weiter geprüft werden
Der gesamte Ordner pgsql\bin37 der 43 Programme werden nie aufgerufen
BenutzerprofileEs genügen %APPDATA%\NodePilot und %LOCALAPPDATA%\NodePilot
pwsh.exe/powershell.exe systemweit ohne Elternprozess-EinschränkungDie engere Regel ist vorzuziehen, wo das Produkt sie unterstützt
Skript-Scanning / AMSI abschaltenWird von NodePilot nicht behindert
Dateityp *.npbackupDas Ziel des Sicherungs-Exports wählt der Administrator frei

Symptome bei fehlenden Ausschlüssen

SymptomWahrscheinlich fehlender Ausschluss
Schritt bleibt in Running und läuft in den Timeout%TEMP%\nodepilot_*.ps1 oder der Skript-Host-Prozess
Dienst startet nach einem Update nicht, Programmverzeichnis unvollständigProgrammverzeichnis
Dienst startet, aber es entsteht keine Logdatei; kein Erstlogin möglichC:\ProgramData\NodePilot oder Controlled Folder Access
Arbeitsspeicher des Dienstes wächst über Stunden, viele powershell.exe-Prozessepowershell.config.json in Quarantäne
Desktop: Oberfläche startet nicht oder bleibt leerC:\Program Files\NodePilot\desktop
Desktop: NodePilotDb startet nichtC:\ProgramData\NodePilot\pgdata oder postgres.exe/pg_ctl.exe
Speichern in den Admin-Einstellungen bleibt wirkungslosC:\ProgramData\NodePilot (atomarer Ersetzungsvorgang)

Die ausführliche Fassung mit allen Pfaden und Belegen steht im Repository unter docs/av-exclusions.md.

Alle Kapitel