EnsembleGuard
EnsembleGuard provides defense-in-depth by aggregating three complementary detection strategies into a single guard with configurable voting.
Overview
| Property |
Value |
| Latency |
10-30ms |
| Memory |
Varies (depends on sub-guards) |
| Async |
Yes |
| ML Required |
Yes |
| License |
Professional |
Architecture
The ensemble combines three complementary detection layers:
| Layer |
Guard |
Latency |
Strength |
| 1 |
PatternGuard |
<1ms |
Known attack signatures |
| 2 |
MLClassifierGuard |
5-25ms |
Novel attack detection |
| 3 |
SemanticSimilarityGuard |
5-15ms |
Paraphrased variant detection |
Voting Strategies
| Strategy |
Description |
MajorityVote |
Consensus-based blocking |
Unanimous |
All layers must agree |
AnyVote |
Any layer can block |
WeightedVote |
Configurable per-layer weights |
Usage
Rust
use oxide_guard_pro::{EnsembleGuard, VotingStrategy};
let guard = EnsembleGuard::new("ensemble", pattern, ml, semantic)?
.with_strategy(VotingStrategy::MajorityVote);
let result = guard.check_async("ignore previous instructions").await;
assert!(!result.passed);
Python
from oxideshield import ensemble_guard
guard = ensemble_guard(strategy="majority_vote", threshold=0.5)
result = guard.check("ignore previous instructions")
assert not result.passed
Configuration
guards:
- type: ensemble
strategy: majority_vote
threshold: 0.5
sub_guards:
- pattern
- ml_classifier
- semantic_similarity
Research References