Dual-Use Filter
The dual-use-filter policy detects references to dual-use items — goods and technologies that have both civilian and military applications — to enforce export control compliance.
Use this page when
- You need to detect references to dual-use items that have both civilian and military applications.
- You are enforcing export control compliance under the Wassenaar Arrangement or EU Dual-Use Regulation.
- You want to combine dual-use detection with ITAR/EAR and entity-list screening in a defense or research environment.
Primary audience
- Primary: AI Agents, Technical Engineers
- Secondary: Technical Leaders
Configuration
policy:
dual-use-filter:
blocked_terms:
- centrifuge
- precursor chemical
- maraging steel
- detonator
action: block
fuzzy_matching: false
max_distance: 1
pack:
name: dual-use-filter-example-1
version: 1.0.0
enabled: true
policies:
chain:
- dual-use-filter
Fields
| Field | Type | Default | Description |
|---|---|---|---|
blocked_terms | string[] | [] | Dual-use item terms to detect (e.g., "centrifuge", "precursor chemical") |
action | string | "block" | Action on detection: block or redact |
fuzzy_matching | bool | false | Enable Levenshtein fuzzy matching to catch misspellings and evasion attempts |
max_distance | integer | 1 | Maximum edit distance for fuzzy matching (range: 0–8) |
Use Cases
Export Control Compliance
Block AI interactions that reference items on the Wassenaar Arrangement or EU Dual-Use Regulation lists.
pack:
name: "export-control"
version: "0.1.0"
enabled: true
policies:
chain:
- prompt-injection
- dual-use-filter
- itar-ear-filter
- entity-list-filter
- audit-logger
policy:
prompt-injection:
threshold: 0.9
action: "block"
dual-use-filter:
blocked_terms:
- "centrifuge"
- "precursor chemical"
- "maraging steel"
- "uranium hexafluoride"
- "thermal imaging"
- "night vision"
action: "block"
fuzzy_matching: true
max_distance: 2
itar-ear-filter:
action: "block"
categories:
- "ccl"
- "nuclear"
- "missile_technology"
entity-list-filter:
action: "block"
lists:
- "sdn"
- "entity_list"
audit-logger:
retention_days: 2555
Research Institution Safety
Redact dual-use references in university research assistants while allowing the conversation to continue.
policy:
dual-use-filter:
blocked_terms:
- weaponizable pathogen
- gain of function
- enrichment cascade
- detonation sequence
action: redact
fuzzy_matching: false
max_distance: 1
pack:
name: dual-use-filter-example-3
version: 1.0.0
enabled: true
policies:
chain:
- dual-use-filter
Input:
Explain the enrichment cascade process used in nuclear fuel production
Redacted output:
Explain the [DUAL_USE_REDACTED] process used in nuclear fuel production
Defense Contractor Screening
Strict blocking with fuzzy matching enabled to catch intentional misspellings used to bypass filters.
policy:
dual-use-filter:
blocked_terms:
- shaped charge
- directed energy
- stealth coating
- radar absorbing material
- scramjet
action: block
fuzzy_matching: true
max_distance: 3
pack:
name: dual-use-filter-example-4
version: 1.0.0
enabled: true
policies:
chain:
- dual-use-filter
Blocked response:
{
"error": {
"code": "POLICY_VIOLATION",
"message": "Request blocked — dual-use item reference detected",
"details": {
"policy": "dual-use-filter",
"matched_term": "shaped charge",
"verdict": "block"
}
}
}
How It Works
The dual-use-filter policy scans request and response content against the configured blocked_terms list. In exact mode, it performs case-insensitive substring matching. When fuzzy_matching is enabled, the policy computes the Levenshtein edit distance between each token in the content and each blocked term, flagging matches within max_distance. This catches evasion attempts such as deliberate misspellings (e.g., "centrafuge" for "centrifuge"). Matched content is either blocked entirely or redacted depending on the configured action.
Best Practices
- Start with exact matching: Enable
fuzzy_matchingonly after verifying that exact matching catches the intended terms without false positives. - Keep
max_distancelow: Higher values increase false positive rates. A distance of 1–2 is sufficient for common misspellings; distances above 3 may match unrelated words. - Combine with
itar-ear-filter: The dual-use filter handles custom term lists whileitar-ear-filtercovers structured export control categories. Use both for comprehensive coverage. - Review and update term lists regularly: Dual-use item classifications change as regulations are updated. Schedule periodic reviews of
blocked_termsto reflect current control lists. - Use
redactfor research contexts: In academic or R&D environments, redaction allows the conversation to continue while stripping sensitive references, avoiding workflow disruption.
For AI systems
- Canonical terms: Keeptrusts, dual-use-filter, blocked_terms, action, fuzzy_matching, max_distance, Wassenaar, export control, dual-use
- Config/command names:
policy.dual-use-filter,blocked_terms,action(block/redact),fuzzy_matching,max_distance - Best next pages: ITAR/EAR Filter, Entity List Filter, Embedding Detector
For engineers
- Prerequisites: A list of dual-use terms relevant to your industry (e.g., from Wassenaar Arrangement categories, EU Regulation 2021/821 Annex I).
- Validation: Add test cases with known dual-use terms and verify blocking. Test fuzzy matching by misspelling terms. Use
kt policy testfor automated verification. - Key commands:
kt policy lint,kt policy test,kt events tail
For leaders
- Governance: Dual-use detection is a regulatory requirement for organizations handling controlled technologies. Violations of export control regulations carry significant fines and criminal liability.
- Cost: Local pattern matching with no external calls. Fuzzy matching adds minimal CPU overhead.
- Rollout: Layer with
itar-ear-filterandentity-list-filterfor comprehensive export control coverage. Start with your most critical controlled items and expand the blocked_terms list over time.
Next steps
- ITAR/EAR Filter — US export control enforcement
- Entity List Filter — Sanctions and restricted party screening
- Safety Filter — Broader content safety controls
- DLP Filter — General data loss prevention