Skip to main content

Defensive field-level trust analysis for AI-agent data paths

Project description

MONNA ADIP™

Agent Data Integrity Protocol Research Extension 01 · Open Core v0.2.0

MONNA ADIP is a defensive framework and command-line analyzer for finding trust-boundary failures inside AI-agent data. It audits tool responses, retrieved objects, metadata, mitigation evidence, and action arguments at field level so teams can see when attacker-influenced data may be mistaken for trusted agent state.

The project is research-informed by Choi et al., Agent Data Injection Attacks are Realistic Threats to AI Agents (arXiv:2607.05120v1, 2026). It is an independent defensive extension by MONNA Consulting™, not an official artifact of the paper and not endorsed by its authors.

What v0.2 adds

  • All seven public controls implemented, including ADIP-07 evidence checks
  • Optional JSON Schema validation while keeping the core dependency-free
  • JSON, text, Markdown, and SARIF output
  • Multiple files, directory scanning, and aggregate reports
  • --version, --output, --recursive, and --validate
  • Python 3.11–3.13 CI matrix
  • Before/after email-agent and code-agent examples
  • Trusted-publishing workflow for PyPI releases

Why this exists

Conventional prompt-injection defenses focus on separating instructions from data. Agent Data Injection (ADI) exposes a different boundary: trusted and untrusted values can coexist inside the same tool response, object, or context block. An agent may continue following the user's goal while acting on a forged identifier, origin, metadata field, or tool-history record.

MONNA ADIP operationalizes that problem through seven controls:

  1. Trust Origin Mapping
  2. Field-Level Trust Classification
  3. Boundary Collision Detection
  4. Structural Ambiguity Review
  5. Decision Dependency Tracing
  6. Action Integrity Gates
  7. Mitigation and Verification Mapping

See the framework specification for the full open-core method, and the OWASP mapping for how each control relates to the OWASP Top 10 for Agentic Applications 2026 (ASI01–ASI10).

Install

Requires Python 3.11 or later.

From a checkout:

python -m pip install -e .

Add optional standards-based schema validation:

python -m pip install -e ".[validation]"

The analyzer core has no runtime dependencies. The validation extra installs jsonschema only for --validate.

Quick start

Human-readable triage:

monna-adip examples/example-inventory.json --format text

Validate user input before analysis:

monna-adip examples/example-inventory.json --validate --format text

Scan a directory and write a Markdown report:

monna-adip examples --recursive --format markdown --output adip-report.md

Create SARIF for GitHub code scanning:

monna-adip inventories/ --format sarif --output adip.sarif

Draft an inventory from an MCP tool manifest instead of writing it by hand (the draft must pass human review before analysis):

monna-adip generate --from mcp examples/mcp-toolset/manifest.json --output draft.json

JSON remains the default for backward-compatible piping. See the CLI reference for formats and exit codes.

Example cases

The examples are synthetic and defensive. They do not include exploit payloads.

Repository map

docs/                         Framework, CLI, examples, and research mapping
schemas/                      Public machine-readable inventory contract
templates/                    Blank assessment template
examples/                     Safe synthetic before/after inventories
src/monna_adip/               Dependency-free analyzer and CLI
tests/                        Analyzer, validation, CLI, and renderer tests

Open-core boundary

This repository includes the public taxonomy, inventory model, deterministic baseline checks, safe examples, and integration guidance. It does not include MONNA's commercial scoring formula, exploit corpus, mitigation-selection engine, client report logic, or protected SecurityFortress implementation.

See Open Core Boundary.

Responsible use

This project is defensive. Do not submit exploit payloads, reproduction steps against live services, secrets, or vendor-confidential vulnerability details. See SECURITY.md.

Research citation

The paper is licensed CC BY 4.0. This repository does not redistribute its figures, payloads, benchmark, or source code.

License and marks

Original repository materials are licensed under Apache License 2.0. MONNA, MONNA ADIP, SecurityFortress, and related names and marks are not granted under that license. See NOTICE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

monna_adip-0.2.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

monna_adip-0.2.0-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file monna_adip-0.2.0.tar.gz.

File metadata

  • Download URL: monna_adip-0.2.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for monna_adip-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b13e39ef334d58d22d57c32ebfc92138c05e63554174d6442ff858cdc196fc79
MD5 5a3f6cfa705f2fd1b8f728441773b29e
BLAKE2b-256 66c1bd5c225bd0265a39c51ee19ee0150690673f84d80098204f0b3a90379bc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for monna_adip-0.2.0.tar.gz:

Publisher: publish.yml on emanalshazly/monna-adip

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file monna_adip-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: monna_adip-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for monna_adip-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed925942495b383a2dd35dc8bd82dbe041e59d3f7fb20281697a21ebcbd86243
MD5 8f46e6420b6d829d71d02fa66dd6f55a
BLAKE2b-256 a33f5a7fa3e8cf6b926a938657c2778fd8f48b53f599996076353057349c6b72

See more details on using hashes here.

Provenance

The following attestation bundles were made for monna_adip-0.2.0-py3-none-any.whl:

Publisher: publish.yml on emanalshazly/monna-adip

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page