Backdoor Detection Defense

# Backdoor Detection & Defense

## Introduction & Motivation

Backdoor attacks: inject malicious behavior via data poisoning. Stealthy attacks on training. Applications: security, threat detection, robust training.

Motivation: Detect and defend against backdoor attacks.

Applications: Secure training, model verification, trusted AI.

---

## Core Concepts & Theory

### Backdoor Trigger

Hidden activation pattern.

### Trojan Attack

Malicious behavior on trigger.

### Detection Methods

Identify poisoned samples.

### Defense Strategies

Robust training, filtering.

---

## Mathematical Formulation

Triggered Misclassification:
$$y_{ ext{backdoor}} = t ext{ if } x' = x + \delta_{ ext{trigger}}$$

Backdoor Loss:
$$\mathcal{L}_{ ext{backdoor}} = \alpha \mathcal{L}_{ ext{clean}} + (1-\alpha) \mathcal{L}_{ ext{poison}}$$

---

## Advanced Theory & Extensions

### Invisible Backdoors

Imperceptible triggers.

### Multi-Target Attacks

Multiple classes affected.

### Defense via Activation Clustering

Detect outlier activations.

---

## Computational Considerations

Attack: O(n·D²).

Detection: O(n·D²).

Defense: Standard training + filtering.

---

## Practical Implementation Strategies

### Trigger Patterns

Choose specific patterns.

### Poisoning Rate

Small percentage enough.

### Detection Metrics

Activation analysis.

---

## Benchmark Datasets & Evaluation

CIFAR-10: Backdoor benchmark.

ImageNet: Large-scale attacks.

Custom metrics: Attack success rate.

---

## Key Challenges & Limitations

### Stealthy Attacks

Hard to detect.

### Adaptive Attacks

Evade defenses.

### Efficiency Trade-off

Defense cost.

---

## Hyperparameter Tuning

Poison rate: 0.01-0.1.

Trigger size: 4x4 to 32x32.

Learning rate: 1e-4 to 1e-3.

---

## Real-World Applications & Case Studies

Model Verification: Audit pretrained models.

Supply Chain: Detect poisoned data.

Security: Robust deployment.

---

## Integration with Other Methods

Backdoor defense + differential privacy; + secure aggregation.

---

## Summary & Key Takeaways

Backdoor defense protects model integrity.

Principles:
1. Attack: Inject hidden behavior.
2. Trigger: Activation pattern.
3. Detection: Identify anomalies.
4. Defense: Robust training, filtering.
5. Verification: Model auditing.

---

## Appendix: Practical Labs

### Lab 1: Create Backdoor Trigger

import numpy as np

def create_trigger(size=4, pattern='square'):
 """Create backdoor trigger pattern"""
 trigger = np.zeros((size, size, 3))
 
 if pattern == 'square':
 trigger[:, :] = [1, 0, 0] # Red square
 elif pattern == 'checkerboard':
 trigger[::2, ::2] = 1
 
 return trigger

trigger = create_trigger(4, 'square')
assert trigger.shape == (4, 4, 3)
print("✓ Trigger creation working")

### Lab 2: Activation Clustering Detection

import numpy as np

def detect_backdoor_via_clustering(activations, contamination=0.05):
 """Detect backdoored samples via activation clustering"""
 # Compute pairwise distances
 distances = np.linalg.norm(activations[:, np.newaxis] - activations[np.newaxis, :], axis=2)
 
 # Find outliers
 mean_dist = np.mean(distances, axis=1)
 threshold = np.percentile(mean_dist, (1-contamination)*100)
 outliers = mean_dist > threshold
 
 return outliers

np.random.seed(42)
act = np.random.randn(100, 256)
outliers = detect_backdoor_via_clustering(act, 0.1)
assert np.sum(outliers) <= 10
print(f"✓ Detected {np.sum(outliers)} backdoored samples")

### Lab 3: Poison the Model

import numpy as np

def poison_training(clean_data, labels, poison_rate=0.05, trigger_label=0):
 """Poison training data with backdoor"""
 num_poison = int(len(clean_data) * poison_rate)
 poison_indices = np.random.choice(len(clean_data), num_poison, replace=False)
 
 poisoned = clean_data.copy()
 for idx in poison_indices:
 poisoned[idx] += 0.1 # Add trigger
 labels[idx] = trigger_label
 
 return poisoned, labels

np.random.seed(42)
data = np.random.rand(100, 10)
labels = np.random.randint(0, 10, 100)
poisoned, p_labels = poison_training(data, labels, 0.05)
assert poisoned.shape == data.shape
print("✓ Data poisoning working")

### Lab 4: Defense: Activation Filtering

import numpy as np

def filter_by_activations(data, activations, threshold_percentile=5):
 """Filter suspicious samples by activation patterns"""
 # Compute activation variance
 variance = np.var(activations, axis=1)
 threshold = np.percentile(variance, threshold_percentile)
 
 # Remove outliers
 keep_mask = variance <= threshold
 clean_data = data[keep_mask]
 
 return clean_data

np.random.seed(42)
data = np.random.rand(100, 10)
act = np.random.rand(100, 256)
clean = filter_by_activations(data, act, 10)
assert len(clean) <= len(data)
print(f"✓ Filtered {len(data) - len(clean)} suspicious samples")

---

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account