Agent Economy Report

Skill code audit

CAUTION version 1.0.0 · audited 2026-09-03

clawsec @chrisochrisochriso-cmyk

This package is documentation only: a single skill.md file that tells an AI agent how to operate a separate program called "ClawSec Monitor" — a local man-in-the-middle proxy that decrypts and inspects all of an agent's HTTP/HTTPS traffic looking for leaked credentials and injected shell commands. No executable code ships with the skill; the Python script, Dockerfile and test suite it describes (clawsec-monitor.py and friends) are listed as files but are not in the package, and the only external link is a GitHub repo, so an agent following these instructions would have to fetch the real code from somewhere else. The instructions ask the user to install a locally generated root certificate authority into the system trust store using sudo, and to point all agent traffic at 127.0.0.1:8888 — legitimate for a traffic inspector, but it is a permanent, machine-wide trust change and it makes all encrypted agent traffic readable in cleartext. The tool is also documented as writing snippets of detected secrets (for example a partial Anthropic API key in an Authorization header) into plaintext log files under /tmp. Nothing in the text sends data to a remote server, and the shell commands that appear in the file (curl | bash, nc, rm -rf /) are only listed as detection patterns, not executed. Overall the described behavior matches the stated security-monitoring purpose, but the capabilities involved are unusually invasive and the actual program is not included for review.

Declared purposeGuide an AI agent in managing and interpreting "ClawSec Monitor v3.0", a transparent HTTP/HTTPS MITM proxy that inspects agent traffic for credential exfiltration and prompt/command injection and logs detections.
Observed behaviorThe file contains only prose, tables, config reference and example shell/docker commands. It instructs the agent to start/stop a local Python proxy, read /tmp/clawsec/threats.jsonl, install a generated root CA into the OS trust store via sudo, and set HTTP_PROXY/HTTPS_PROXY to the local proxy. Dangerous-looking binaries (curl|bash, nc, rm -rf /) appear solely as descriptions of detection rules. No network exfiltration, no obfuscated code, no download-and-execute, no wallet or payment logic, no environment-variable harvesting is present in the shipped text.
Verdict, rules onlyCAUTION · downloads and pipes to a shell (curl|sh); uses sudo, rm -rf or dd
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
shellneededInstructs the agent to run python3 clawsec-monitor.py start/stop/status/threats, docker compose commands, and sudo certificate-trust commands (skill.md lines 45-64, 74-79, 150-161).
networkneededSets up a local proxy on 127.0.0.1:8888 and redirects all agent HTTP/HTTPS traffic through it (lines 91-92). Only other remote reference is the project GitHub URL on line 197.
credentialsneededBy design the proxy decrypts TLS and scans for API keys, AWS keys, private keys and .env content; detection snippets containing partial secrets are written to a plaintext log (lines 22-27, 127, 139).
filesystem_writeneededWrites CA key/cert, threats.jsonl and rotating logs under /tmp/clawsec (lines 70, 119, 143).
persistenceexceeds purposeInstalling a root CA into the macOS System keychain or /usr/local/share/ca-certificates permanently changes machine-wide TLS trust and survives removal of the skill (lines 74-79).
otherexceeds purposeThe main program (clawsec-monitor.py, Dockerfile, requirements) is referenced but not included in the package, so the code that actually handles decrypted traffic cannot be audited from this package (lines 172-176).

Findings

severityfinding
mediumTool decrypts all agent TLS traffic
The described program breaks end-to-end encryption for every request the agent makes, meaning all tokens, cookies and payloads pass through it in cleartext. This is inherent to its stated purpose but gives the tool total visibility over the agent's secrets.
skill.md:11 **HTTPS interception** is done via full MITM: a local CA signs per-host certificates, and `asyncio.start_tls()` upgrades the client connection server-side so pl
mediumInstructs installing a root CA into the system trust store with sudo
Adding the generated CA to the macOS System keychain (line 74-75) or to /usr/local/share/ca-certificates (lines 78-79) is a machine-wide, persistent change to TLS trust. Anyone holding the corresponding private key in /tmp/clawsec can impersonate any HTTPS site to this machine.
skill.md:74 sudo security add-trusted-cert -d -r trustRoot \
mediumCA private key stored in /tmp
Storing a trusted certificate authority key in a world-traversable temporary directory means any local process or user able to read it can forge certificates for the now-trusted CA.
skill.md:70 After first `start`, a CA key and cert are generated at `/tmp/clawsec/ca.crt`.
mediumDetected secrets are written into a plaintext log
The threat log records up to 200 characters of surrounding context (line 139) for each detection, which by the tool's own example includes Authorization headers and API-key fragments. This concentrates credential material into /tmp/clawsec/threats.jsonl.
skill.md:127 "snippet": "Authorization: Bearer sk-ant-api01-...",
lowCredential-bearing log kept in a shared temp directory
/tmp is typically readable by other local users and processes, so the log of detected secrets is not protected.
skill.md:119 Threats are appended to `/tmp/clawsec/threats.jsonl` (one JSON object per line):
mediumCore executable code is referenced but not shipped
The skill documents commands for clawsec-monitor.py, run_tests.py, Dockerfile.clawsec, docker-compose.clawsec.yml and requirements.clawsec.txt (lines 172-176), none of which are in the package. The behavior of the component that actually handles decrypted traffic and secrets cannot be verified from this package; it would have to be obtained separately, e.g. from the GitHub link on line 197.
skill.md:172 | `clawsec-monitor.py` | Main script (876 lines) |
infoSingle external code source is a personal GitHub repository
The only off-machine destination in the package is this repository, which is the implied source of the missing proxy code. It is an unverified third-party account rather than an established vendor.
skill.md:197 *GitHub: https://github.com/chrisochrisochriso-cmyk/clawsec-monitor*
lowRedirects all agent traffic through a local proxy
Setting HTTP_PROXY/HTTPS_PROXY funnels every outbound request through the tool. Destination is localhost only in this documentation, but a misconfigured or malicious proxy binary at that port would see and could alter all agent traffic.
skill.md:91 export HTTP_PROXY=http://127.0.0.1:8888
infoShell-pipe and destructive commands appear only as detection patterns
curl|bash, nc reverse shells and rm -rf / (lines 33-36) are listed in a table of strings the proxy searches for, not commands the skill executes. Automated scanners will flag these; they are descriptive, not operational.
skill.md:33 | `pipe_to_shell` | `curl <url> \| bash`, `wget <url> \| sh` |

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
127.0.0.1not in the service indexskill.md:91
github.comnot in the service indexskill.md:197

Other facts

Binaries invokedbash, curl, docker, nc, ncat, python3, rm -rf, sh, sudo, wget
Environment variables readnone
Hard-coded walletsnone
Pipes a download to a shell1
eval / exec / subprocess0
base64 blobs0
File writes0
Persistence0

Files audited

filelinessha256
_meta.json61bc92c24a21bc64e…
skill.md197e62dd18b1f9949b5…

For agents

JSON: https://agenteconomy.report/k/clawsec.audit.json · badge: https://agenteconomy.report/k/clawsec.audited.svg · skill rating: /k/clawsec · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: amostra.