Skip to main content

agentshield/rules/builtin/
mod.rs

1mod arbitrary_file_access;
2mod archive_traversal;
3mod capability_mismatch;
4mod command_injection;
5mod composite_toxic_flow;
6mod credential_exfil;
7mod download_exec;
8mod dynamic_exec;
9mod excessive_permissions;
10pub(crate) mod metadata_ssrf;
11mod no_lockfile;
12mod overbroad_fs;
13mod prompt_injection;
14mod runtime_install;
15mod secret_leakage;
16mod self_modification;
17mod ssrf;
18mod typosquat;
19mod unpinned_deps;
20mod unsafe_deser;
21mod unsafe_deser_patterns;
22
23use super::{ContextDetector, Detector};
24
25/// Returns all built-in target-only detectors (SHIELD-001..019).
26pub fn all_detectors() -> Vec<Box<dyn Detector>> {
27    vec![
28        Box::new(command_injection::CommandInjectionDetector),
29        Box::new(credential_exfil::CredentialExfilDetector),
30        Box::new(ssrf::SsrfDetector),
31        Box::new(arbitrary_file_access::ArbitraryFileAccessDetector),
32        Box::new(runtime_install::RuntimeInstallDetector),
33        Box::new(self_modification::SelfModificationDetector),
34        Box::new(prompt_injection::PromptInjectionDetector),
35        Box::new(excessive_permissions::ExcessivePermissionsDetector),
36        Box::new(unpinned_deps::UnpinnedDepsDetector),
37        Box::new(typosquat::TyposquatDetector),
38        Box::new(dynamic_exec::DynamicExecDetector),
39        Box::new(no_lockfile::NoLockfileDetector),
40        Box::new(metadata_ssrf::MetadataSsrfDetector),
41        Box::new(download_exec::DownloadExecDetector),
42        Box::new(overbroad_fs::OverbroadFsDetector),
43        Box::new(unsafe_deser::UnsafeDeserDetector),
44        Box::new(archive_traversal::ArchiveTraversalDetector),
45        Box::new(secret_leakage::SecretLeakageDetector),
46        Box::new(capability_mismatch::CapabilityMismatchDetector),
47    ]
48}
49
50/// Returns all built-in contextual scanners (not target-only).
51pub(crate) fn all_context_detectors() -> Vec<Box<dyn ContextDetector>> {
52    vec![Box::new(
53        composite_toxic_flow::ArbitraryReadExfiltrationDetector,
54    )]
55}