Skip to content

Antivirus Exceptions

When deploying the Breeze agent without code-signed binaries, endpoint protection software may flag, quarantine, or block the agent. This guide covers the exclusions needed for each platform.

The Breeze agent is a single Go binary that:

  • Runs as a system service with elevated privileges
  • Opens persistent WebSocket connections to your Breeze server
  • Executes scripts and commands on behalf of remote administrators
  • Spawns child processes (terminal sessions, user helper, discovery scans)
  • Reads hardware and software inventory from the system

These behaviors overlap with patterns that heuristic-based antivirus engines flag as suspicious. Without code signing, there is no publisher reputation to offset the heuristic score.

OSDefault Path
Linux/usr/local/bin/breeze-agent
macOS/usr/local/bin/breeze-agent
WindowsC:\Program Files\Breeze\breeze-agent.exe
OSPath
Linux/etc/breeze/
macOS/Library/Application Support/Breeze/
WindowsC:\ProgramData\Breeze\
OSPath
Linux/var/log/breeze/
macOS/Library/Application Support/Breeze/logs/
WindowsC:\ProgramData\Breeze\logs\
OSPath
Linux/usr/local/bin/breeze-helper
macOS/usr/local/bin/breeze-helper
WindowsC:\Program Files\Breeze\breeze-helper.exe

Run as Administrator:

Terminal window
# Process exclusions
Add-MpPreference -ExclusionProcess "C:\Program Files\Breeze\breeze-agent.exe"
Add-MpPreference -ExclusionProcess "C:\Program Files\Breeze\breeze-helper.exe"
# Path exclusions (config, logs, working directories)
Add-MpPreference -ExclusionPath "C:\Program Files\Breeze"
Add-MpPreference -ExclusionPath "C:\ProgramData\Breeze"
# Verify
Get-MpPreference | Select-Object -ExpandProperty ExclusionProcess
Get-MpPreference | Select-Object -ExpandProperty ExclusionPath

SmartScreen may block the initial download or execution of an unsigned .exe. To bypass for a single file:

  1. Right-click the binary → Properties → check UnblockOK
  2. Or run from an elevated PowerShell: Unblock-File "C:\Program Files\Breeze\breeze-agent.exe"

For MSI deployments via GPO/SCCM/Intune, SmartScreen does not interfere since the installer runs silently under SYSTEM.

For products like CrowdStrike, SentinelOne, Sophos, Bitdefender, etc., add both process and path exclusions:

Exclusion TypeValue
Process / ApplicationC:\Program Files\Breeze\breeze-agent.exe
Process / ApplicationC:\Program Files\Breeze\breeze-helper.exe
DirectoryC:\Program Files\Breeze\
DirectoryC:\ProgramData\Breeze\
  1. In the Falcon console, go to Configuration → Prevention Policies.
  2. Select the relevant policy → Machine Learning Exclusions.
  3. Add a pattern: C:\Program Files\Breeze\**
  4. Under IOA Exclusions, add the process path for breeze-agent.exe.
  1. In the management console, go to Sentinels → Exclusions.
  2. Add a Path exclusion: C:\Program Files\Breeze\
  3. Add a Signer Identity or Hash exclusion if the binary hash is stable across your builds.
  1. In Sophos Central, go to Global Settings → General → Global Exclusions.
  2. Add exclusions for the process and directory paths listed above.

macOS Gatekeeper blocks unsigned binaries downloaded from the internet. See the installation guide for the xattr command to remove the quarantine flag.

For MDM-managed fleets, deploy the binary via your MDM profile to bypass Gatekeeper entirely.

XProtect performs signature-based malware checks. It does not typically flag custom Go binaries, but if it does:

Terminal window
# Check if the binary is quarantined
xattr -l /usr/local/bin/breeze-agent
# Remove all extended attributes
sudo xattr -c /usr/local/bin/breeze-agent

For products like CrowdStrike, SentinelOne, or Jamf Protect, add these exclusions:

Exclusion TypeValue
Process/usr/local/bin/breeze-agent
Process/usr/local/bin/breeze-helper
Directory/Library/Application Support/Breeze/
Directory/etc/breeze/ (if symlinked)

For managed fleets, deploy a configuration profile to suppress Gatekeeper and TCC prompts:

<!-- Gatekeeper: allow identified developers + unsigned -->
<key>AllowIdentifiedDevelopers</key>
<true/>
<key>EnableAssessment</key>
<false/>

Linux antivirus is less common but increasingly used in enterprise environments.

If SELinux is in enforcing mode, the agent may be blocked from binding sockets, executing scripts, or accessing certain paths. Create a custom policy module:

Terminal window
# Generate a policy from audit denials
sudo ausearch -m avc -ts recent | audit2allow -M breeze-agent
# Install the module
sudo semodule -i breeze-agent.pp
# Verify
sudo semodule -l | grep breeze

Alternatively, label the binary with an appropriate SELinux type:

Terminal window
sudo semanage fcontext -a -t bin_t "/usr/local/bin/breeze-agent"
sudo restorecon -v /usr/local/bin/breeze-agent

On Ubuntu/Debian systems with AppArmor, create a permissive profile if the agent is blocked:

Terminal window
# Create a basic profile
sudo aa-autodep /usr/local/bin/breeze-agent
# Set to complain mode (log but don't block)
sudo aa-complain /usr/local/bin/breeze-agent
# After verifying logs, enforce if desired
# sudo aa-enforce /usr/local/bin/breeze-agent

If ClamAV’s on-access scanner flags the binary:

Terminal window
# Add to /etc/clamav/clamd.conf
ExcludePath ^/usr/local/bin/breeze-agent$
ExcludePath ^/etc/breeze/
ExcludePath ^/var/log/breeze/

Restart the ClamAV daemon after changes: sudo systemctl restart clamav-daemon

For CrowdStrike, SentinelOne, or similar:

Exclusion TypeValue
Process/usr/local/bin/breeze-agent
Directory/etc/breeze/
Directory/var/log/breeze/

After configuring exclusions, verify the agent runs without interference:

Terminal window
# Check agent service status
sudo breeze-agent service status
# Watch logs for AV-related errors
# Linux
sudo journalctl -u breeze-agent -f
# macOS
sudo tail -f "/Library/Application Support/Breeze/logs/agent.log"
# Windows (PowerShell)
Get-Content "C:\ProgramData\Breeze\logs\agent.log" -Wait

Common symptoms of AV interference:

SymptomLikely Cause
Agent binary deleted or moved to quarantineReal-time scan flagging the unsigned binary
Agent service starts then stops immediatelyOn-execution scan blocking the process
Intermittent WebSocket disconnectionsNetwork inspection blocking persistent connections
Script execution failuresBehavior-based detection blocking child processes
High CPU usage from agent processOn-access scanning of agent I/O operations

For quick reference, here are the minimum exclusions needed per platform:

Processes:

  • C:\Program Files\Breeze\breeze-agent.exe
  • C:\Program Files\Breeze\breeze-helper.exe

Directories:

  • C:\Program Files\Breeze\
  • C:\ProgramData\Breeze\