Skip to content

Commit 20c8c3b

Browse files
committed
Update docs for v1.5.0, fix CI disk space, add new fuzz targets to CI
1 parent c6e56a1 commit 20c8c3b

File tree

5 files changed

+141
-11
lines changed

5 files changed

+141
-11
lines changed

.github/workflows/test.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ jobs:
99
test:
1010
runs-on: ubuntu-latest
1111
steps:
12+
- name: Free disk space
13+
run: |
14+
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
15+
sudo docker image prune --all --force
16+
df -h /
1217
- uses: actions/checkout@v4
1318
with:
1419
submodules: recursive
@@ -24,6 +29,11 @@ jobs:
2429
fuzz:
2530
runs-on: ubuntu-latest
2631
steps:
32+
- name: Free disk space
33+
run: |
34+
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
35+
sudo docker image prune --all --force
36+
df -h /
2737
- uses: actions/checkout@v4
2838
with:
2939
submodules: recursive
@@ -55,7 +65,13 @@ jobs:
5565
tool_substitution_detection \
5666
dsl_structure_aware \
5767
sse_jsonrpc_parsing \
58-
schemapin_keystore_roundtrip; do
68+
schemapin_keystore_roundtrip \
69+
dsl_evaluator \
70+
mattermost_signature_verification \
71+
crypto_roundtrip \
72+
webhook_verify_generic \
73+
api_key_store \
74+
policy_evaluation; do
5975
echo "--- Fuzzing $target (15s) ---"
6076
cargo fuzz run --fuzz-dir . "$target" -- -max_total_time=15 || exit 1
6177
done

CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,37 @@ All notable changes to the Symbiont project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [Unreleased]
9+
10+
### Added
11+
12+
#### ClawHavoc Scanner Expansion
13+
- **30 new detection rules** across 7 attack categories: reverse shells (7 rules), credential harvesting (6), network exfiltration (3), process injection (4), privilege escalation (5), symlink/path traversal (2), downloader chains (3)
14+
- **5-level severity model**: Critical, High, Medium, Warning, Info — scans fail on Critical or High findings (previously only Critical)
15+
- **`AllowedExecutablesOnly` custom rule type**: Whitelist-based executable filtering for strict sandboxed environments
16+
17+
#### Agent Registry & Lifecycle
18+
- **Persistent `AgentRegistry`**: Store and retrieve agent metadata with delete and re-execute lifecycle support
19+
20+
#### AGENTS.md Support
21+
- **Full bidirectional AGENTS.md**: Generate and parse agent manifest files for ecosystem interoperability
22+
23+
#### Performance Verification
24+
- **Benchmarked performance claims**: Policy evaluation <1ms, ECDSA P-256 <5ms, SchemaPin verification <5ms, 10k agent scheduling <2% CPU overhead
25+
- **Debug/release threshold split**: Relaxed thresholds for debug builds (unoptimized crypto) while preserving real claims for release
26+
27+
#### Fuzzing Expansion
28+
- **6 new fuzz targets**: `dsl_evaluator`, `mattermost_signature_verification`, `crypto_roundtrip`, `webhook_verify_generic`, `api_key_store`, `policy_evaluation` — total now 18 targets
29+
30+
#### Infrastructure
31+
- **Docker build optimization**: cargo-chef caching, split CI/release build profiles, nproc-based parallelism auto-detection
32+
- **v1.6.0 roadmap**: Agent discovery, remote transport, and DSL A2A primitives planned across 5 phases
33+
34+
### Fixed
35+
- **cargo-chef cook**: Create stub for `[[example]]` entries not handled by cargo-chef
36+
- **ECDSA benchmark threshold**: Debug builds no longer fail due to unoptimized crypto exceeding release-only 5ms threshold
37+
- **SchemaPin verification threshold**: Same debug/release split applied to pinned-key verification benchmark
38+
839
## [1.5.0] - 2026-02-22
940

1041
### Added

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,21 @@ cargo run -- mcp --port 8080
8181
***Cron Scheduling** – Persistent SQLite-backed cron engine with jitter, concurrency guards, dead-letter queues, and heartbeat pattern.
8282
* 🧠 **Persistent Memory** – Markdown-backed agent memory with facts, procedures, learned patterns, daily logs, and retention-based compaction.
8383
* 🪝 **Webhook Verification** – HMAC-SHA256 and JWT signature verification with GitHub, Stripe, and Slack presets.
84-
* 🛡️ **Skill Scanning** – ClawHavoc scanner with 10 rules detecting pipe-to-shell, env exfiltration, identity tampering, eval+fetch, and more.
84+
* 🛡️ **Skill Scanning** – ClawHavoc scanner with 40 rules across 10 attack categories (reverse shells, credential harvesting, process injection, privilege escalation, network exfiltration, and more). 5-level severity model (Critical/High/Medium/Warning/Info) with executable whitelisting.
8585
* 📈 **Metrics & Telemetry** – File and OTLP metric exporters with composite fan-out and background collection.
8686
* 🔒 **HTTP Security Hardening** – Loopback-only binding, CORS allow-lists, JWT EdDSA validation, health endpoint separation.
8787
* 🔒 **Sandboxing** – Tier-1 Docker isolation for agent execution.
8888
* 🔒 **SchemaPin Security** – Cryptographic verification of tools and schemas.
8989
* 🔒 **AgentPin Identity** – Domain-anchored cryptographic identity for scheduled agents.
9090
* 🔒 **Secrets Management** – HashiCorp Vault / OpenBao integration, AES-256-GCM encrypted storage.
9191
* 🔑 **Per-Agent API Keys** – Argon2-hashed API key authentication with per-IP rate limiting.
92+
* 🧠 **Context Compaction** – Automatic context window management with tiered compaction: LLM-driven summarization (Tier 1) and truncation (Tier 4). Multi-model token counting (OpenAI, Claude, Gemini, Llama, Mistral, and more).
9293
* 📊 **RAG Engine** – Vector search (LanceDB embedded) with hybrid semantic + keyword retrieval. Optional Qdrant backend for scaled deployments.
93-
* 🧩 **MCP Integration** – Native support for Model Context Protocol tools.
94+
* 🧩 **MCP Integration** – Native support for Model Context Protocol tools, plus Composio SSE integration for external tool access.
9495
* 📡 **Optional HTTP API** – Feature-gated REST interface for external integration.
9596
* 📋 **Delivery Routing** – Route scheduled agent output to webhooks, Slack, email, or custom channels.
97+
* 📝 **AGENTS.md Support** – Bidirectional agent manifest generation and parsing for interoperability.
98+
***Performance Verified** – Benchmarked claims: policy evaluation <1ms, ECDSA P-256 verification <5ms, 10k agent scheduling with <2% CPU overhead.
9699

97100
---
98101

docs/index.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -183,27 +183,33 @@ graph TB
183183

184184
## Project Status
185185

186-
### v1.4.0 Production
186+
### v1.5.0 Production
187187

188-
Symbiont v1.4.0 is the latest stable release, delivering a complete AI agent framework with production-grade capabilities:
188+
Symbiont v1.5.0 is the latest stable release, delivering a complete AI agent framework with production-grade capabilities:
189189

190+
- **LanceDB Embedded Vector Backend**: Zero-config vector search with no external services required. `VectorDb` trait abstraction with pluggable backends — LanceDB default, Qdrant optional via `vector-qdrant` feature flag
191+
- **Context Compaction Pipeline**: Automatic context window management with tiered compaction — LLM-driven summarization (Tier 1), truncation (Tier 4), and enterprise tiers for episodic compression and archival. Multi-model token counting covering OpenAI, Claude, Gemini, Llama, Mistral, and more
192+
- **ClawHavoc Scanner Expansion**: 40 detection rules across 10 attack categories — reverse shells, credential harvesting, process injection, privilege escalation, network exfiltration, symlink escapes, downloader chains, and more. 5-level severity model (Critical/High/Medium/Warning/Info) with `AllowedExecutablesOnly` executable whitelisting
193+
- **Composio MCP Integration**: Feature-gated SSE-based connection to Composio MCP server for external tool access
190194
- **Persistent Memory**: Markdown-backed agent memory with facts, procedures, and learned patterns — retention-based compaction, daily logs, DSL `memory` block
191195
- **Webhook Verification**: `SignatureVerifier` trait with HMAC-SHA256 and JWT implementations, built-in presets for GitHub, Stripe, Slack, and Custom providers — DSL `webhook` block
192196
- **HTTP Security Hardening**: Loopback-only default binding, explicit CORS origin allow-lists, JWT EdDSA validation, health endpoint separation
193-
- **Skill Scanning**: ClawHavoc scanner with 10 built-in rules detecting pipe-to-shell, env exfiltration, identity tampering, eval+fetch, base64 obfuscation, and destructive operations
194197
- **Metrics & Telemetry**: File and OTLP exporters with composite fan-out, background collection, `/metrics` API endpoint
195198
- **Scheduling Engine**: Cron-based task execution with session isolation, delivery routing, dead-letter queues, jitter, and concurrency limits
196199
- **Channel Adapters**: Slack (community), Microsoft Teams and Mattermost (enterprise) with webhook verification and HMAC signing
197-
- **HTTP Input Module**: Webhook server for external integrations with Bearer/JWT auth, rate limiting, and CORS
198-
- **DSL Extensions**: `schedule`, `channel`, `memory`, and `webhook` blocks for declarative agent configuration
200+
- **AGENTS.md Support**: Full bidirectional agent manifest generation and parsing for ecosystem interoperability
201+
- **Performance Benchmarks**: Verified claims — policy evaluation <1ms, ECDSA P-256 verification <5ms, 10k agent scheduling with <2% CPU overhead
202+
- **18 Fuzz Targets**: Comprehensive fuzzing coverage across DSL parsing, crypto, webhook verification, API keys, policy evaluation, and protocol handling
199203
- **AgentPin Identity**: Cryptographic agent identity verification via ES256 JWTs with domain-anchored well-known endpoints
200204
- **Secrets Management**: HashiCorp Vault, encrypted file, and OS keychain backends with runtime provider abstraction
201205
- **JavaScript & Python SDKs**: Full API clients covering scheduling, channels, webhooks, memory, skills, metrics, and more
202206

203-
### 🔮 Planned Features
207+
### 🔮 v1.6.0 Roadmap — Agent-to-Agent Communication
208+
- Agent discovery via `AgentRegistry` and `.well-known` endpoints
209+
- Remote transport enabling cross-process agent communication
210+
- DSL A2A primitives: `send_task()`, `send_message()`, `subscribe()`, `discover_agent()`
211+
- AgentPin-verified AgentCards for cryptographic inter-agent trust
204212
- Multi-modal RAG support (images, audio, structured data)
205-
- Cross-agent knowledge synthesis and collaboration
206-
- Federated agent networks with cross-domain trust
207213
- Additional channel adapters (Discord, Matrix)
208214

209215
---

docs/security-model.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,80 @@ impl SecurityAnalyzer {
592592

593593
---
594594

595+
## ClawHavoc Skill Scanner
596+
597+
The ClawHavoc scanner provides content-level defense for agent skills. Every skill file is scanned line-by-line before loading, and findings at Critical or High severity block the skill from executing.
598+
599+
### Severity Model
600+
601+
| Level | Action | Description |
602+
|-------|--------|-------------|
603+
| **Critical** | Fail scan | Active exploitation patterns (reverse shells, code injection) |
604+
| **High** | Fail scan | Credential theft, privilege escalation, process injection |
605+
| **Medium** | Warn | Suspicious but potentially legitimate (downloaders, symlinks) |
606+
| **Warning** | Warn | Low-risk indicators (env file references, chmod) |
607+
| **Info** | Log | Informational findings |
608+
609+
### Detection Categories (40 Rules)
610+
611+
**Original Defense Rules (10)**
612+
- `pipe-to-shell`, `wget-pipe-to-shell` — Remote code execution via piped downloads
613+
- `eval-with-fetch`, `fetch-with-eval` — Code injection via eval + network
614+
- `base64-decode-exec` — Obfuscated execution via base64 decoding
615+
- `soul-md-modification`, `memory-md-modification` — Identity tampering
616+
- `rm-rf-pattern` — Destructive filesystem operations
617+
- `env-file-reference`, `chmod-777` — Sensitive file access, world-writable permissions
618+
619+
**Reverse Shells (7)** — Critical severity
620+
- `reverse-shell-bash`, `reverse-shell-nc`, `reverse-shell-ncat`, `reverse-shell-mkfifo`, `reverse-shell-python`, `reverse-shell-perl`, `reverse-shell-ruby`
621+
622+
**Credential Harvesting (6)** — High severity
623+
- `credential-ssh-keys`, `credential-aws`, `credential-cloud-config`, `credential-browser-cookies`, `credential-keychain`, `credential-etc-shadow`
624+
625+
**Network Exfiltration (3)** — High severity
626+
- `exfil-dns-tunnel`, `exfil-dev-tcp`, `exfil-nc-outbound`
627+
628+
**Process Injection (4)** — Critical severity
629+
- `injection-ptrace`, `injection-ld-preload`, `injection-proc-mem`, `injection-gdb-attach`
630+
631+
**Privilege Escalation (5)** — High severity
632+
- `privesc-sudo`, `privesc-setuid`, `privesc-setcap`, `privesc-chown-root`, `privesc-nsenter`
633+
634+
**Symlink / Path Traversal (2)** — Medium severity
635+
- `symlink-escape`, `path-traversal-deep`
636+
637+
**Downloader Chains (3)** — Medium severity
638+
- `downloader-curl-save`, `downloader-wget-save`, `downloader-chmod-exec`
639+
640+
### Executable Whitelisting
641+
642+
The `AllowedExecutablesOnly` rule type restricts which executables an agent skill can invoke:
643+
644+
```rust
645+
// Only allow these executables — everything else is blocked
646+
ScanRule::AllowedExecutablesOnly(vec![
647+
"python3".into(),
648+
"node".into(),
649+
"cargo".into(),
650+
])
651+
```
652+
653+
### Custom Rules
654+
655+
Domain-specific patterns can be added alongside ClawHavoc defaults:
656+
657+
```rust
658+
let mut scanner = SkillScanner::new();
659+
scanner.add_custom_rule(
660+
"block-internal-api",
661+
r"internal\.corp\.example\.com",
662+
ScanSeverity::High,
663+
"References to internal API endpoints are not allowed in skills",
664+
);
665+
```
666+
667+
---
668+
595669
## Network Security
596670

597671
### Secure Communication

0 commit comments

Comments
 (0)