Skip to main content

What ConfigGuardian Protects

ConfigGuardian monitors all MQTT-related configuration on the camera. This page documents every protected setting, its severity level, and the impact of unauthorized changes.

Protection Summary

┌──────────────────────────────────────────────────────────────────┐
│ PROTECTED BY CONFIGGUARDIAN │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 🔒 CRITICAL (Immediate Heal) │
│ ├── Broker Host & Port │
│ ├── TLS Settings (Certificate Validation) │
│ ├── Client Identity │
│ └── Device Certificates │
│ │
│ ⚠️ HIGH (Immediate Heal) │
│ ├── Command Subscriptions │
│ ├── Config Subscriptions │
│ └── Last Will Testament (LWT) │
│ │
│ 📋 MEDIUM (Alert Only) │
│ ├── Additional Subscriptions │
│ └── QoS Settings │
│ │
│ ℹ️ LOW (Log Only) │
│ └── Timing/Keepalive Settings │
│ │
└──────────────────────────────────────────────────────────────────┘

Detailed Reference

CRITICAL Settings

These settings, if changed, could result in security breaches or complete loss of connectivity.

SettingVAPIX ParameterExpected ValueImpact if Changed
Broker Hostmqtt.hostmqtt.anava.aiComplete disconnect or connection to rogue broker
Broker Portmqtt.port8883Connection failure
Protocolmqtt.protocolmqtt-tlsSecurity downgrade or incompatibility
Validate Server Certmqtt.tls.validateServerCerttrueMITM attack possible (security bypass)
Client Certificatemqtt.tls.clientCertPath/etc/anava/client.crtAuthentication failure
Client Keymqtt.tls.clientKeyPath/etc/anava/client.keyAuthentication failure
Client IDmqtt.clientId{device_serial}ACL rejection, wrong identity

Why These Are Critical

Broker Host: The most sensitive setting. If changed to a rogue broker, all device telemetry, commands, and credentials could be intercepted. ConfigGuardian heals this immediately.

TLS Validation: If disabled (false), the device will accept any server certificate, enabling man-in-the-middle attacks. This is a common target for attackers trying to intercept traffic.

Client Identity: The Client ID must match the device serial number for ACL rules to work. A wrong Client ID means the device won't have permission to publish or subscribe.

HIGH Settings

These settings affect core functionality but are less likely to be security risks.

SettingVAPIX ParameterExpected ValueImpact if Changed
CA Certificatemqtt.tls.caCertPath/etc/anava/ca.crtTrust chain broken, connection fails
Command Topicsubscription[0].topicanava/devices/{serial}/cmd/#Cannot receive cloud commands
Config Topicsubscription[1].topicanava/devices/{serial}/configCannot receive configuration updates
Credentials Topicsubscription[2].topicanava/devices/{serial}/credentialsCannot receive token updates
LWT Topicmqtt.lwt.topicanava/devices/{serial}/statusOffline detection broken
LWT Payloadmqtt.lwt.payload{"online":false}Offline detection broken
LWT Retainmqtt.lwt.retaintrueStatus not persisted

Why These Are High

Subscriptions: Without the correct subscriptions, the device cannot receive commands, configuration updates, or credential refreshes from the cloud. The device becomes effectively "orphaned."

Last Will and Testament (LWT): The LWT is published by the broker when the device disconnects unexpectedly. If misconfigured, the cloud won't know when devices go offline.

MEDIUM Settings

These settings are monitored but changes only trigger alerts, not automatic healing.

SettingVAPIX ParameterImpact if Changed
Group Subscriptionssubscription[N].topic (N > 2)May miss group-specific commands
Publish QoSmqtt.publishQosMessage delivery reliability affected
Subscribe QoSsubscription[N].qosMessage delivery reliability affected

Why These Are Medium

Group subscriptions are dynamic and may change based on profile configuration. ConfigGuardian allows these changes when they come from legitimate profile updates.

LOW Settings

These settings are logged but do not trigger alerts or healing.

SettingVAPIX ParameterImpact if Changed
Keep Alivemqtt.keepAliveConnection stability may vary
Reconnect Delaymqtt.reconnectDelayRecovery time after disconnect
Clean Sessionmqtt.cleanSessionSession state handling

Configuration Example

Here's an example of a complete golden configuration:

{
"broker": {
"host": "mqtt.anava.ai",
"port": 8883,
"protocol": "mqtt-tls"
},
"tls": {
"validateServerCert": true,
"clientCertPath": "/etc/anava/client.crt",
"clientKeyPath": "/etc/anava/client.key",
"caCertPath": "/etc/anava/ca.crt"
},
"identity": {
"clientId": "ACCC12345678"
},
"subscriptions": [
{
"topic": "anava/devices/ACCC12345678/cmd/#",
"qos": 1
},
{
"topic": "anava/devices/ACCC12345678/config",
"qos": 1
},
{
"topic": "anava/devices/ACCC12345678/credentials",
"qos": 1
}
],
"lwt": {
"topic": "anava/devices/ACCC12345678/status",
"payload": "{\"online\":false}",
"qos": 1,
"retain": true
},
"options": {
"keepAlive": 60,
"reconnectDelay": 5,
"cleanSession": false
}
}

Viewing Protected Settings

You can view the current protected settings via:

Camera Web UI

Navigate to Settings > MQTT to see the current configuration. Changes made here are monitored by ConfigGuardian.

VAPIX API

curl --digest -u root:password \
"http://CAMERA_IP/axis-cgi/param.cgi?action=list&group=mqtt"

ACAP Health Endpoint

curl "http://CAMERA_IP:8080/api/v1/config/guardian"

Response:

{
"status": "healthy",
"lastCheck": "2025-12-19T10:30:00Z",
"driftCount": 0,
"healCount": 2,
"goldenConfigAge": "3h 25m"
}

Updating Protected Settings Legitimately

To update protected settings without triggering healing:

  1. Via Cloud Configuration: Send a configuration update through the Anava cloud. ConfigGuardian recognizes cloud-initiated changes and updates the golden configuration.

  2. Via Profile Changes: When group or skill configurations change, related subscriptions are updated automatically.

  3. Via Reinstallation: Uninstalling and reinstalling the ACAP resets the golden configuration.

Manual VAPIX changes are always reverted

If you change MQTT settings via VAPIX or the camera web UI, ConfigGuardian will detect the drift and restore the original settings. Always use cloud-based configuration for permanent changes.


Last updated: December 2025