Phishing and security alert enrichment
Capability-gated, auditable analysis where the tool cannot quietly grow network access through a transitive dependency.
The problem
Phishing triage enriches URLs, headers, and attachments. Security teams need to prove the enrichment pipeline only talks to approved intel feeds - and that a library update did not add a second, undeclared egress path.
Why Ecko
- Declared capabilities
- Manifests list
net,fs:read, and so on. The importer'sgrantis the enforced subset. Reviewers read grants, not lockfiles. - Secrets for IOCs
- User-submitted content and live credentials stay in
secretvalues through enrichment so a debug log cannot leak a clicked link with session tokens. - Trace for IR
- JSONL traces document which model classified a message as malicious when legal asks six months later.
In practice
import intel grant [net]
import classify grant []
fn enrich(msg: secret(str)) {
classify.label(intel.lookup(reveal(msg)))
}
Try it on your workload.