agentshield/rules/builtin/
mod.rs1mod 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
25pub 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
50pub(crate) fn all_context_detectors() -> Vec<Box<dyn ContextDetector>> {
52 vec![Box::new(
53 composite_toxic_flow::ArbitraryReadExfiltrationDetector,
54 )]
55}