Edictum
Security & Compliance

OWASP Agentic Starter

Starter runtime controls for common OWASP-style agentic risks.

AI Assistance

Right page if: you want a starter set of Edictum controls for common agentic risks such as tool misuse, excessive agency, identity abuse, unexpected code execution, and human approval gaps. Wrong page if: you need a formal compliance mapping -- see https://docs.edictum.ai/docs/security/compliance. Gotcha: this is a starter control set, not a certification or audit attestation. Edictum enforces tool-call behavior; model safety, OS sandboxing, network policy, and compliance process still matter.

This starter maps common agentic risks to concrete runtime controls.

Use it as a first pass before tailoring rulesets to your own tools, principals, data scopes, and approval process.

Starter Controls

RiskRuntime controlStart here
Tool misuseAllowlist tools, paths, commands, and domains with sandbox rulesSandbox rules
Excessive agencyCap attempts, executions, and per-tool calls with session rulesSession rulesets
Identity and privilege abuseRequire principal role, ticket, org, or claim fields before risky callsPrincipals
Unexpected code executionBlock destructive shell patterns and restrict command familiesChange control patterns
Sensitive data exposureBlock sensitive reads and redact sensitive outputData protection patterns
Human approval gapsUse ask for high-impact actions and record approval decisionsHuman-in-the-loop approvals
Process skippingUse Workflow Gates for read-before-write, verification, approval, and terminal stagesWorkflow Gates Runtime
Unreviewed rule changesUse observe mode, replay, and blast-radius preview before promotionObserve mode

Minimal Ruleset Shape

apiVersion: edictum/v1
kind: Ruleset
metadata:
  name: owasp-agentic-starter

rules:
  - id: require-ticket-for-production-write
    type: pre
    tool: "*"
    when:
      side_effect:
        in: [write, irreversible]
      environment:
        equals: production
      principal.ticket_ref:
        exists: false
    then:
      action: block
      message: "Production writes require a ticket reference."

  - id: ask-before-destructive-command
    type: pre
    tool: Bash
    when:
      args.command:
        matches: "(rm\\s+-rf|kubectl\\s+delete|terraform\\s+destroy)"
    then:
      action: ask
      message: "Destructive command requires human approval."
      timeout: 300
      timeout_action: block

  - id: redact-secrets-from-output
    type: post
    tool: "*"
    when:
      output:
        matches: "(sk-[A-Za-z0-9]+|AKIA[0-9A-Z]{16})"
    then:
      action: redact
      message: "Secret-like output was redacted."

Evidence To Keep

  • the ruleset YAML in version control
  • edictum validate output in CI
  • observe-mode decision logs before enforcement
  • replay or blast-radius preview before stricter rollout
  • approval records for ask decisions
  • audit events with policy_version, principal, decision_source, and reason

Last updated on

On this page