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:
- Trust Origin Mapping
- Field-Level Trust Classification
- Boundary Collision Detection
- Structural Ambiguity Review
- Decision Dependency Tracing
- Action Integrity Gates
- 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
- Woohyuk Choi, Juhee Kim, Taehyun Kang, Jihyeon Jeong, Luyi Xing, and Byoungyoung Lee. "Agent Data Injection Attacks are Realistic Threats to AI Agents." arXiv:2607.05120v1, 2026.
- Paper: https://arxiv.org/abs/2607.05120
- DOI: https://doi.org/10.48550/arXiv.2607.05120
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b13e39ef334d58d22d57c32ebfc92138c05e63554174d6442ff858cdc196fc79
|
|
| MD5 |
5a3f6cfa705f2fd1b8f728441773b29e
|
|
| BLAKE2b-256 |
66c1bd5c225bd0265a39c51ee19ee0150690673f84d80098204f0b3a90379bc2
|
Provenance
The following attestation bundles were made for monna_adip-0.2.0.tar.gz:
Publisher:
publish.yml on emanalshazly/monna-adip
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
monna_adip-0.2.0.tar.gz -
Subject digest:
b13e39ef334d58d22d57c32ebfc92138c05e63554174d6442ff858cdc196fc79 - Sigstore transparency entry: 2185603510
- Sigstore integration time:
-
Permalink:
emanalshazly/monna-adip@7452b2eee624189d60f4a51b6e011756b3378c8d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/emanalshazly
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7452b2eee624189d60f4a51b6e011756b3378c8d -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed925942495b383a2dd35dc8bd82dbe041e59d3f7fb20281697a21ebcbd86243
|
|
| MD5 |
8f46e6420b6d829d71d02fa66dd6f55a
|
|
| BLAKE2b-256 |
a33f5a7fa3e8cf6b926a938657c2778fd8f48b53f599996076353057349c6b72
|
Provenance
The following attestation bundles were made for monna_adip-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on emanalshazly/monna-adip
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
monna_adip-0.2.0-py3-none-any.whl -
Subject digest:
ed925942495b383a2dd35dc8bd82dbe041e59d3f7fb20281697a21ebcbd86243 - Sigstore transparency entry: 2185603885
- Sigstore integration time:
-
Permalink:
emanalshazly/monna-adip@7452b2eee624189d60f4a51b6e011756b3378c8d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/emanalshazly
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7452b2eee624189d60f4a51b6e011756b3378c8d -
Trigger Event:
release
-
Statement type: