None Action
Action Type: None
Detects threats but takes no action. Useful for testing, analytics, and development.
Available for: All platforms (Desktop, Mobile, Web)
How It Works
The None action allows detection to run normally without any user-facing response.
Behavior:
- Detection runs as configured
- No user disruption
- No application termination
- No request blocking
- Still logs to backend (if configured)
- Still logs to local files (if configured)
When to Use
Recommended for:
- Development Environments - Test without disruption
- Testing Configurations - Validate protection settings
- Analytics Collection - Gather threat statistics
- False Positive Evaluation - Assess detection accuracy
- Gradual Rollout - Monitor before enforcing
- Debugging - Understand detection triggers
Not recommended for:
- Production environments with critical threats
- Applications requiring active protection
Configuration
JSON Configuration
JSON
{
"protections": {
"DebuggerDetection": {
"enabled": true,
"action": "none"
},
"VirtualMachineDetection": {
"enabled": true,
"action": "none"
}
}
}{
"protections": {
"DebuggerDetection": {
"enabled": true,
"action": "none"
},
"VirtualMachineDetection": {
"enabled": true,
"action": "none"
}
}
}Code-Based Configuration
C#
await Payload.ConfigureAsync(config =>
{
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.None);
});await Payload.ConfigureAsync(config =>
{
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.None);
});Use Cases
Development Mode
C#
await Payload.ConfigureAsync(config =>
{
#if DEBUG
// Development: detect but don't disrupt
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.None);
#else
// Production: enforce security
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.Close);
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.Log);
#endif
});await Payload.ConfigureAsync(config =>
{
#if DEBUG
// Development: detect but don't disrupt
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.None);
#else
// Production: enforce security
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.Close);
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.Log);
#endif
});Testing Configuration
C#
// Test all protections without disruption
await Payload.ConfigureAsync(config =>
{
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.JailbreakDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.MemoryDumpDetection, ActionType.None);
});
// Check logs to see what would be detected
// Then change to appropriate actions (Close, Log, etc.)// Test all protections without disruption
await Payload.ConfigureAsync(config =>
{
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.JailbreakDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.MemoryDumpDetection, ActionType.None);
});
// Check logs to see what would be detected
// Then change to appropriate actions (Close, Log, etc.)Analytics Collection
JSON
{
"logging": {
"backend": {
"enabled": true,
"endpoint": "https://api.bytehide.com/v1/monitor"
},
"file": {
"enabled": true,
"path": "logs/analytics.log"
}
},
"protections": {
"VirtualMachineDetection": { "enabled": true, "action": "none" },
"ContainerDetection": { "enabled": true, "action": "none" },
"CloudMetadata": { "enabled": true, "action": "none" },
"RemoteDesktop": { "enabled": true, "action": "none" }
}
}{
"logging": {
"backend": {
"enabled": true,
"endpoint": "https://api.bytehide.com/v1/monitor"
},
"file": {
"enabled": true,
"path": "logs/analytics.log"
}
},
"protections": {
"VirtualMachineDetection": { "enabled": true, "action": "none" },
"ContainerDetection": { "enabled": true, "action": "none" },
"CloudMetadata": { "enabled": true, "action": "none" },
"RemoteDesktop": { "enabled": true, "action": "none" }
}
}Gradual Rollout
C#
// Week 1: Monitor only (none action)
// Week 2: Log only (log action)
// Week 3: Enforce (close/block action)
var rolloutPhase = await GetRolloutPhaseAsync();
var action = rolloutPhase switch
{
"monitor" => ActionType.None,
"log" => ActionType.Log,
"enforce" => ActionType.Close,
_ => ActionType.None
};
config.AddProtection(ProtectionModuleType.DebuggerDetection, action);// Week 1: Monitor only (none action)
// Week 2: Log only (log action)
// Week 3: Enforce (close/block action)
var rolloutPhase = await GetRolloutPhaseAsync();
var action = rolloutPhase switch
{
"monitor" => ActionType.None,
"log" => ActionType.Log,
"enforce" => ActionType.Close,
_ => ActionType.None
};
config.AddProtection(ProtectionModuleType.DebuggerDetection, action);False Positive Evaluation
C#
// Collect data to analyze false positive rate
await Payload.ConfigureAsync(config =>
{
config.AddProtection(ProtectionModuleType.SqlInjection, ActionType.None);
config.RegisterCustomAction("analytics", async (threat) =>
{
// Log all SQL injection detections
await analyticsDb.LogDetectionAsync(new
{
ThreatId = threat.ThreatId,
Query = threat.Metadata["query"],
Confidence = threat.Confidence,
Timestamp = DateTime.UtcNow
});
});
});
// After analysis, switch to Block action// Collect data to analyze false positive rate
await Payload.ConfigureAsync(config =>
{
config.AddProtection(ProtectionModuleType.SqlInjection, ActionType.None);
config.RegisterCustomAction("analytics", async (threat) =>
{
// Log all SQL injection detections
await analyticsDb.LogDetectionAsync(new
{
ThreatId = threat.ThreatId,
Query = threat.Metadata["query"],
Confidence = threat.Confidence,
Timestamp = DateTime.UtcNow
});
});
});
// After analysis, switch to Block actionPlatform-Specific Examples
Desktop Application Testing
C#
await Payload.ConfigureAsync(config =>
{
// Test all desktop protections
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.MemoryDumpDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.ProcessInjection, ActionType.None);
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.None);
});
// Run application and check logs
// Verify detections are accurate
// Then switch to Close action for critical threatsawait Payload.ConfigureAsync(config =>
{
// Test all desktop protections
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.MemoryDumpDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.ProcessInjection, ActionType.None);
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.None);
});
// Run application and check logs
// Verify detections are accurate
// Then switch to Close action for critical threatsMobile Development
C#
await Payload.ConfigureAsync(config =>
{
// Allow debugging on development devices
#if DEBUG
config.AddProtection(ProtectionModuleType.JailbreakDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
#else
config.AddProtection(ProtectionModuleType.JailbreakDetection, ActionType.Close);
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.Close);
#endif
});await Payload.ConfigureAsync(config =>
{
// Allow debugging on development devices
#if DEBUG
config.AddProtection(ProtectionModuleType.JailbreakDetection, ActionType.None);
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
#else
config.AddProtection(ProtectionModuleType.JailbreakDetection, ActionType.Close);
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.Close);
#endif
});Web Application Testing
C#
builder.Services.AddByteHideMonitor(monitor =>
{
var environment = builder.Environment;
if (environment.IsDevelopment())
{
// Development: detect but don't block
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.None);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.None);
}
else
{
// Production: block attacks
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.Block);
}
});builder.Services.AddByteHideMonitor(monitor =>
{
var environment = builder.Environment;
if (environment.IsDevelopment())
{
// Development: detect but don't block
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.None);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.None);
}
else
{
// Production: block attacks
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.Block);
}
});Combining with Logging
Backend Analytics
JSON
{
"apiKey": "your-api-key",
"logging": {
"backend": {
"enabled": true
}
},
"protections": {
"DebuggerDetection": { "enabled": true, "action": "none" },
"VirtualMachineDetection": { "enabled": true, "action": "none" }
}
}{
"apiKey": "your-api-key",
"logging": {
"backend": {
"enabled": true
}
},
"protections": {
"DebuggerDetection": { "enabled": true, "action": "none" },
"VirtualMachineDetection": { "enabled": true, "action": "none" }
}
}All detections will be sent to ByteHide backend for analytics, even with action: "none".
Local File Logging
JSON
{
"logging": {
"file": {
"enabled": true,
"path": "logs/detections.log",
"format": "json"
}
},
"protections": {
"SqlInjection": { "enabled": true, "action": "none" }
}
}{
"logging": {
"file": {
"enabled": true,
"path": "logs/detections.log",
"format": "json"
}
},
"protections": {
"SqlInjection": { "enabled": true, "action": "none" }
}
}Custom Analytics
C#
config.RegisterCustomAction("custom-analytics", async (threat) =>
{
// Send to your analytics platform
await analyticsClient.TrackEventAsync("ThreatDetected", new
{
Type = threat.ModuleType.ToString(),
Description = threat.Description,
Confidence = threat.Confidence,
Environment = "Production",
Action = "None"
});
// Don't take any action - just track
});
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, "custom-analytics");config.RegisterCustomAction("custom-analytics", async (threat) =>
{
// Send to your analytics platform
await analyticsClient.TrackEventAsync("ThreatDetected", new
{
Type = threat.ModuleType.ToString(),
Description = threat.Description,
Confidence = threat.Confidence,
Environment = "Production",
Action = "None"
});
// Don't take any action - just track
});
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, "custom-analytics");Environment-Based Configuration
JSON
{
"environments": {
"development": {
"protections": {
"DebuggerDetection": { "enabled": true, "action": "none" },
"SqlInjection": { "enabled": true, "action": "none" }
}
},
"staging": {
"protections": {
"DebuggerDetection": { "enabled": true, "action": "log" },
"SqlInjection": { "enabled": true, "action": "log" }
}
},
"production": {
"protections": {
"DebuggerDetection": { "enabled": true, "action": "close" },
"SqlInjection": { "enabled": true, "action": "block" }
}
}
}
}{
"environments": {
"development": {
"protections": {
"DebuggerDetection": { "enabled": true, "action": "none" },
"SqlInjection": { "enabled": true, "action": "none" }
}
},
"staging": {
"protections": {
"DebuggerDetection": { "enabled": true, "action": "log" },
"SqlInjection": { "enabled": true, "action": "log" }
}
},
"production": {
"protections": {
"DebuggerDetection": { "enabled": true, "action": "close" },
"SqlInjection": { "enabled": true, "action": "block" }
}
}
}
}Best Practices
1. Use for Development Only
C#
// Good: Environment-specific
#if DEBUG
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
#else
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.Close);
#endif// Good: Environment-specific
#if DEBUG
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.None);
#else
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.Close);
#endif2. Always Enable Logging
JSON
{
"logging": {
"file": { "enabled": true, "path": "logs/monitor.log" }
},
"protections": {
"DebuggerDetection": { "enabled": true, "action": "none" }
}
}{
"logging": {
"file": { "enabled": true, "path": "logs/monitor.log" }
},
"protections": {
"DebuggerDetection": { "enabled": true, "action": "none" }
}
}Without logging, action: "none" provides no value.
3. Transition to Active Actions
C#
// Phase 1 (Week 1): Monitor
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.None);
// Phase 2 (Week 2): Log
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.Log);
// Phase 3 (Week 3): Enforce
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.Close);// Phase 1 (Week 1): Monitor
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.None);
// Phase 2 (Week 2): Log
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.Log);
// Phase 3 (Week 3): Enforce
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.Close);4. Document Why None is Used
C#
// Using None action for initial analytics gathering
// Will switch to Close after 2 weeks of data collection
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.None);// Using None action for initial analytics gathering
// Will switch to Close after 2 weeks of data collection
config.AddProtection(ProtectionModuleType.VirtualMachineDetection, ActionType.None);Comparison with Other Actions
| Scenario | None | Log | Close |
|---|---|---|---|
| Development | ✔ Best | ✔ Good | ❌ Disruptive |
| Testing | ✔ Best | ✔ Good | ❌ Disruptive |
| Analytics | ✔ Best | ✔ Good | ❌ Loses data |
| Production (critical) | ❌ No protection | ⚠️ Weak | ✔ Best |
| Production (non-critical) | ❌ No protection | ✔ Best | ⚠️ Too strict |
Related Actions
All Actions
View all action types
Custom Actions
Advanced handlers