@robbiesrobotics/alice-agents 1.5.8 → 1.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/package.json +1 -1
- package/templates/skills/acculynx/SKILL.md +183 -0
- package/templates/skills/acculynx/references/analysis_template.py +116 -0
- package/templates/skills/acculynx/references/dashboard_page.tsx +641 -0
- package/templates/skills/claude-code/SKILL.md +2 -2
- package/templates/skills/coding-agent/SKILL.md +68 -0
- package/templates/skills/crawl4ai/SKILL.md +119 -0
- package/templates/skills/crawl4ai/scripts/crwl +3 -0
- package/templates/workspaces/accuscope/AGENTS.md +38 -0
- package/templates/workspaces/accuscope/FEEDBACK.md +27 -0
- package/templates/workspaces/accuscope/HEARTBEAT.md +26 -0
- package/templates/workspaces/accuscope/IDENTITY.md +48 -0
- package/templates/workspaces/accuscope/LEARNINGS.md +46 -0
- package/templates/workspaces/accuscope/MEMORY.md +47 -0
- package/templates/workspaces/accuscope/PLAYBOOK.md +65 -0
- package/templates/workspaces/accuscope/SOUL.md +40 -0
- package/templates/workspaces/accuscope/TOOLS.md +63 -0
- package/templates/workspaces/accuscope/USER.md +39 -0
- package/templates/workspaces/aiden/AGENTS.md +52 -0
- package/templates/workspaces/aiden/FEEDBACK.md +12 -0
- package/templates/workspaces/aiden/HEARTBEAT.md +9 -0
- package/templates/workspaces/aiden/IDENTITY.md +6 -0
- package/templates/workspaces/aiden/LEARNINGS.md +6 -0
- package/templates/workspaces/aiden/MEMORY.md +22 -0
- package/templates/workspaces/aiden/PLAYBOOK.md +16 -0
- package/templates/workspaces/aiden/SOUL.md +1 -1
- package/templates/workspaces/aiden/USER.md +17 -0
- package/templates/workspaces/alex/AGENTS.md +52 -0
- package/templates/workspaces/alex/FEEDBACK.md +11 -0
- package/templates/workspaces/alex/HEARTBEAT.md +9 -0
- package/templates/workspaces/alex/IDENTITY.md +6 -0
- package/templates/workspaces/alex/LEARNINGS.md +5 -0
- package/templates/workspaces/alex/MEMORY.md +22 -0
- package/templates/workspaces/alex/PLAYBOOK.md +16 -0
- package/templates/workspaces/alex/SOUL.md +1 -1
- package/templates/workspaces/alex/USER.md +13 -0
- package/templates/workspaces/aria/AGENTS.md +18 -0
- package/templates/workspaces/aria/FEEDBACK.md +12 -0
- package/templates/workspaces/aria/HEARTBEAT.md +32 -0
- package/templates/workspaces/aria/IDENTITY.md +12 -0
- package/templates/workspaces/aria/LEARNINGS.md +31 -0
- package/templates/workspaces/aria/MEMORY.md +29 -0
- package/templates/workspaces/aria/PLAYBOOK.md +71 -0
- package/templates/workspaces/aria/SOUL.md +57 -0
- package/templates/workspaces/aria/TOOLS.md +47 -0
- package/templates/workspaces/aria/USER.md +18 -0
- package/templates/workspaces/audrey/AGENTS.md +59 -0
- package/templates/workspaces/audrey/FEEDBACK.md +11 -0
- package/templates/workspaces/audrey/HEARTBEAT.md +9 -0
- package/templates/workspaces/audrey/IDENTITY.md +6 -0
- package/templates/workspaces/audrey/LEARNINGS.md +5 -0
- package/templates/workspaces/audrey/MEMORY.md +22 -0
- package/templates/workspaces/audrey/PLAYBOOK.md +16 -0
- package/templates/workspaces/audrey/SOUL.md +1 -1
- package/templates/workspaces/audrey/TOOLS.md +15 -0
- package/templates/workspaces/audrey/USER.md +13 -0
- package/templates/workspaces/avery/AGENTS.md +52 -0
- package/templates/workspaces/avery/FEEDBACK.md +12 -0
- package/templates/workspaces/avery/HEARTBEAT.md +5 -0
- package/templates/workspaces/avery/IDENTITY.md +6 -0
- package/templates/workspaces/avery/LEARNINGS.md +6 -0
- package/templates/workspaces/avery/MEMORY.md +22 -0
- package/templates/workspaces/avery/PLAYBOOK.md +16 -0
- package/templates/workspaces/avery/SOUL.md +1 -1
- package/templates/workspaces/avery/USER.md +17 -0
- package/templates/workspaces/avery/skills/claude-code/SKILL.md +38 -0
- package/templates/workspaces/avery/skills/claude-code/claude_code +55 -0
- package/templates/workspaces/caleb/AGENTS.md +52 -0
- package/templates/workspaces/caleb/FEEDBACK.md +11 -0
- package/templates/workspaces/caleb/HEARTBEAT.md +9 -0
- package/templates/workspaces/caleb/IDENTITY.md +6 -0
- package/templates/workspaces/caleb/LEARNINGS.md +5 -0
- package/templates/workspaces/caleb/MEMORY.md +22 -0
- package/templates/workspaces/caleb/PLAYBOOK.md +16 -0
- package/templates/workspaces/caleb/SOUL.md +1 -1
- package/templates/workspaces/caleb/TOOLS.md +30 -0
- package/templates/workspaces/caleb/USER.md +13 -0
- package/templates/workspaces/clara/AGENTS.md +59 -0
- package/templates/workspaces/clara/FEEDBACK.md +12 -0
- package/templates/workspaces/clara/HEARTBEAT.md +5 -0
- package/templates/workspaces/clara/IDENTITY.md +6 -0
- package/templates/workspaces/clara/LEARNINGS.md +6 -0
- package/templates/workspaces/clara/MEMORY.md +22 -0
- package/templates/workspaces/clara/PLAYBOOK.md +16 -0
- package/templates/workspaces/clara/SOUL.md +1 -1
- package/templates/workspaces/clara/TOOLS.md +15 -0
- package/templates/workspaces/clara/USER.md +17 -0
- package/templates/workspaces/daphne/AGENTS.md +59 -0
- package/templates/workspaces/daphne/FEEDBACK.md +18 -0
- package/templates/workspaces/daphne/HEARTBEAT.md +5 -0
- package/templates/workspaces/daphne/IDENTITY.md +6 -0
- package/templates/workspaces/daphne/LEARNINGS.md +6 -0
- package/templates/workspaces/daphne/MEMORY.md +22 -0
- package/templates/workspaces/daphne/PLAYBOOK.md +48 -0
- package/templates/workspaces/daphne/SOUL.md +1 -1
- package/templates/workspaces/daphne/TOOLS.md +15 -0
- package/templates/workspaces/daphne/USER.md +17 -0
- package/templates/workspaces/darius/AGENTS.md +52 -0
- package/templates/workspaces/darius/FEEDBACK.md +12 -0
- package/templates/workspaces/darius/HEARTBEAT.md +5 -0
- package/templates/workspaces/darius/IDENTITY.md +6 -0
- package/templates/workspaces/darius/LEARNINGS.md +6 -0
- package/templates/workspaces/darius/MEMORY.md +22 -0
- package/templates/workspaces/darius/PLAYBOOK.md +16 -0
- package/templates/workspaces/darius/SOUL.md +1 -1
- package/templates/workspaces/darius/USER.md +17 -0
- package/templates/workspaces/darius/skills/claude-code/SKILL.md +38 -0
- package/templates/workspaces/darius/skills/claude-code/claude_code +55 -0
- package/templates/workspaces/devon/AGENTS.md +52 -0
- package/templates/workspaces/devon/FEEDBACK.md +11 -0
- package/templates/workspaces/devon/HEARTBEAT.md +5 -0
- package/templates/workspaces/devon/IDENTITY.md +6 -0
- package/templates/workspaces/devon/LEARNINGS.md +11 -0
- package/templates/workspaces/devon/MEMORY.md +22 -0
- package/templates/workspaces/devon/PLAYBOOK.md +16 -0
- package/templates/workspaces/devon/SOUL.md +1 -1
- package/templates/workspaces/devon/USER.md +13 -0
- package/templates/workspaces/devon/check_github.py +12 -0
- package/templates/workspaces/devon/check_mc_env.py +30 -0
- package/templates/workspaces/devon/check_sb.py +34 -0
- package/templates/workspaces/devon/check_vercel.py +12 -0
- package/templates/workspaces/devon/get_mc_files.py +17 -0
- package/templates/workspaces/devon/write_heartbeat.py +67 -0
- package/templates/workspaces/dylan/.env.example +33 -0
- package/templates/workspaces/dylan/00007_verify_licenses_table.sql +100 -0
- package/templates/workspaces/dylan/AGENTS.md +52 -0
- package/templates/workspaces/dylan/FEEDBACK.md +28 -0
- package/templates/workspaces/dylan/HEARTBEAT.md +5 -0
- package/templates/workspaces/dylan/IDENTITY.md +6 -0
- package/templates/workspaces/dylan/LEARNINGS.md +70 -0
- package/templates/workspaces/dylan/MEMORY.md +22 -0
- package/templates/workspaces/dylan/PLAYBOOK.md +16 -0
- package/templates/workspaces/dylan/SOUL.md +1 -1
- package/templates/workspaces/dylan/STRIPE_PIPELINE.md +185 -0
- package/templates/workspaces/dylan/USER.md +17 -0
- package/templates/workspaces/dylan/n8n-stripe-welcome-workflow.json +123 -0
- package/templates/workspaces/dylan/skills/claude-code/SKILL.md +38 -0
- package/templates/workspaces/dylan/skills/claude-code/claude_code +55 -0
- package/templates/workspaces/dylan/stripe-webhook-handler.py +433 -0
- package/templates/workspaces/dylan/test_mock_webhook.py +103 -0
- package/templates/workspaces/elena/AGENTS.md +59 -0
- package/templates/workspaces/elena/FEEDBACK.md +11 -0
- package/templates/workspaces/elena/HEARTBEAT.md +9 -0
- package/templates/workspaces/elena/IDENTITY.md +6 -0
- package/templates/workspaces/elena/LEARNINGS.md +5 -0
- package/templates/workspaces/elena/MEMORY.md +22 -0
- package/templates/workspaces/elena/PLAYBOOK.md +16 -0
- package/templates/workspaces/elena/SOUL.md +1 -1
- package/templates/workspaces/elena/TOOLS.md +15 -0
- package/templates/workspaces/elena/USER.md +13 -0
- package/templates/workspaces/eva/AGENTS.md +59 -0
- package/templates/workspaces/eva/FEEDBACK.md +11 -0
- package/templates/workspaces/eva/HEARTBEAT.md +9 -0
- package/templates/workspaces/eva/IDENTITY.md +6 -0
- package/templates/workspaces/eva/LEARNINGS.md +5 -0
- package/templates/workspaces/eva/MEMORY.md +22 -0
- package/templates/workspaces/eva/PLAYBOOK.md +16 -0
- package/templates/workspaces/eva/SOUL.md +1 -1
- package/templates/workspaces/eva/TOOLS.md +15 -0
- package/templates/workspaces/eva/USER.md +13 -0
- package/templates/workspaces/felix/AGENTS.md +52 -0
- package/templates/workspaces/felix/FEEDBACK.md +11 -0
- package/templates/workspaces/felix/HEARTBEAT.md +5 -0
- package/templates/workspaces/felix/IDENTITY.md +6 -0
- package/templates/workspaces/felix/LEARNINGS.md +17 -0
- package/templates/workspaces/felix/MEMORY.md +22 -0
- package/templates/workspaces/felix/PLAYBOOK.md +16 -0
- package/templates/workspaces/felix/SOUL.md +1 -1
- package/templates/workspaces/felix/USER.md +13 -0
- package/templates/workspaces/felix/fidelia-psychology.html +1594 -0
- package/templates/workspaces/felix/task.txt +164 -0
- package/templates/workspaces/hannah/AGENTS.md +59 -0
- package/templates/workspaces/hannah/FEEDBACK.md +12 -0
- package/templates/workspaces/hannah/HEARTBEAT.md +5 -0
- package/templates/workspaces/hannah/IDENTITY.md +6 -0
- package/templates/workspaces/hannah/LEARNINGS.md +6 -0
- package/templates/workspaces/hannah/MEMORY.md +22 -0
- package/templates/workspaces/hannah/PLAYBOOK.md +16 -0
- package/templates/workspaces/hannah/SOUL.md +1 -1
- package/templates/workspaces/hannah/TOOLS.md +15 -0
- package/templates/workspaces/hannah/USER.md +17 -0
- package/templates/workspaces/isaac/AGENTS.md +52 -0
- package/templates/workspaces/isaac/FEEDBACK.md +12 -0
- package/templates/workspaces/isaac/HEARTBEAT.md +9 -0
- package/templates/workspaces/isaac/IDENTITY.md +6 -0
- package/templates/workspaces/isaac/LEARNINGS.md +6 -0
- package/templates/workspaces/isaac/MEMORY.md +22 -0
- package/templates/workspaces/isaac/PLAYBOOK.md +16 -0
- package/templates/workspaces/isaac/SOUL.md +1 -1
- package/templates/workspaces/isaac/USER.md +17 -0
- package/templates/workspaces/isaac/skills/claude-code/SKILL.md +38 -0
- package/templates/workspaces/isaac/skills/claude-code/claude_code +55 -0
- package/templates/workspaces/logan/AGENTS.md +59 -0
- package/templates/workspaces/logan/FEEDBACK.md +11 -0
- package/templates/workspaces/logan/HEARTBEAT.md +9 -0
- package/templates/workspaces/logan/IDENTITY.md +6 -0
- package/templates/workspaces/logan/LEARNINGS.md +5 -0
- package/templates/workspaces/logan/MEMORY.md +22 -0
- package/templates/workspaces/logan/PLAYBOOK.md +16 -0
- package/templates/workspaces/logan/SOUL.md +1 -1
- package/templates/workspaces/logan/TOOLS.md +15 -0
- package/templates/workspaces/logan/USER.md +13 -0
- package/templates/workspaces/maxxipro/AGENTS.md +29 -0
- package/templates/workspaces/maxxipro/FEEDBACK.md +19 -0
- package/templates/workspaces/maxxipro/HEARTBEAT.md +22 -0
- package/templates/workspaces/maxxipro/IDENTITY.md +35 -0
- package/templates/workspaces/maxxipro/KNOWLEDGE.md +335 -0
- package/templates/workspaces/maxxipro/LEARNINGS.md +47 -0
- package/templates/workspaces/maxxipro/MEMORY.md +60 -0
- package/templates/workspaces/maxxipro/OUTREACH_TEMPLATES.md +143 -0
- package/templates/workspaces/maxxipro/PLAYBOOK.md +81 -0
- package/templates/workspaces/maxxipro/SOUL.md +146 -0
- package/templates/workspaces/maxxipro/TOOLS.md +81 -0
- package/templates/workspaces/maxxipro/USER.md +40 -0
- package/templates/workspaces/morgan/AGENTS.md +59 -0
- package/templates/workspaces/morgan/FEEDBACK.md +19 -0
- package/templates/workspaces/morgan/HEARTBEAT.md +5 -0
- package/templates/workspaces/morgan/IDENTITY.md +6 -0
- package/templates/workspaces/morgan/LEARNINGS.md +18 -0
- package/templates/workspaces/morgan/MEMORY.md +22 -0
- package/templates/workspaces/morgan/PLAYBOOK.md +16 -0
- package/templates/workspaces/morgan/SOUL.md +1 -1
- package/templates/workspaces/morgan/TOOLS.md +15 -0
- package/templates/workspaces/morgan/USER.md +13 -0
- package/templates/workspaces/nadia/AGENTS.md +59 -0
- package/templates/workspaces/nadia/FEEDBACK.md +12 -0
- package/templates/workspaces/nadia/HEARTBEAT.md +5 -0
- package/templates/workspaces/nadia/IDENTITY.md +6 -0
- package/templates/workspaces/nadia/LEARNINGS.md +6 -0
- package/templates/workspaces/nadia/MEMORY.md +22 -0
- package/templates/workspaces/nadia/PLAYBOOK.md +16 -0
- package/templates/workspaces/nadia/SOUL.md +1 -1
- package/templates/workspaces/nadia/TOOLS.md +15 -0
- package/templates/workspaces/nadia/USER.md +13 -0
- package/templates/workspaces/nate/AGENTS.md +24 -0
- package/templates/workspaces/nate/FEEDBACK.md +12 -0
- package/templates/workspaces/nate/HEARTBEAT.md +33 -0
- package/templates/workspaces/nate/IDENTITY.md +15 -0
- package/templates/workspaces/nate/LEARNINGS.md +33 -0
- package/templates/workspaces/nate/MEMORY.md +39 -0
- package/templates/workspaces/nate/PLAYBOOK.md +160 -0
- package/templates/workspaces/nate/SOUL.md +50 -0
- package/templates/workspaces/nate/TOOLS.md +111 -0
- package/templates/workspaces/nate/USER.md +32 -0
- package/templates/workspaces/olivia/.last-openclaw-version +1 -0
- package/templates/workspaces/olivia/.npmrc.tmp +0 -0
- package/templates/workspaces/olivia/AGENTS.md +77 -0
- package/templates/workspaces/olivia/ALPHA_CODING_BENCHMARK.txt +148 -0
- package/templates/workspaces/olivia/ALPHA_MODEL_GUIDE.md +393 -0
- package/templates/workspaces/olivia/FEEDBACK.md +13 -0
- package/templates/workspaces/olivia/HEADTOHEAD_BENCHMARK.txt +1289 -0
- package/templates/workspaces/olivia/HEARTBEAT.md +267 -0
- package/templates/workspaces/olivia/IDENTITY.md +6 -0
- package/templates/workspaces/olivia/LEARNINGS.md +708 -0
- package/templates/workspaces/olivia/MEMORY.md +202 -0
- package/templates/workspaces/olivia/MISSION_CONTROL_DESIGN_SPEC_v1.md +1143 -0
- package/templates/workspaces/olivia/MVP-COMPLETION-SUMMARY.md +175 -0
- package/templates/workspaces/olivia/NETWORK_IMPLEMENTATION_PLAN.md +1556 -0
- package/templates/workspaces/olivia/NEW_NODES_BENCHMARK.txt +947 -0
- package/templates/workspaces/olivia/PLAYBOOK.md +42 -0
- package/templates/workspaces/olivia/SELF-HEALING-COMPLETE.md +150 -0
- package/templates/workspaces/olivia/SOUL.md +8 -8
- package/templates/workspaces/olivia/TOOLS.md +15 -0
- package/templates/workspaces/olivia/USER.md +17 -0
- package/templates/workspaces/olivia/alicefleet-supabase-credentials.md +50 -0
- package/templates/workspaces/olivia/dzombo-copy-rewrite.md +115 -0
- package/templates/workspaces/olivia/dzombo-implementation-plan.md +1248 -0
- package/templates/workspaces/olivia/fidelia-psychology.html +1594 -0
- package/templates/workspaces/olivia/lead_debug.png +0 -0
- package/templates/workspaces/olivia/minimatch-10.2.4.tgz +0 -0
- package/templates/workspaces/olivia/operation-bllm-research.md +157 -0
- package/templates/workspaces/olivia/qa-audit-mission-control-v2.md +538 -0
- package/templates/workspaces/olivia/roofmaxx_logo.svg +1 -0
- package/templates/workspaces/olivia/roofmaxx_social.jpg +0 -0
- package/templates/workspaces/olivia/skills/1password/SKILL.md +53 -0
- package/templates/workspaces/olivia/skills/1password/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/README.md +57 -0
- package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/SKILL.md +534 -0
- package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/agent-security/SKILL.md +69 -0
- package/templates/workspaces/olivia/skills/agent-security/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/agentic-security-audit/SKILL.md +855 -0
- package/templates/workspaces/olivia/skills/agentic-security-audit/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/ai-automation-consulting/SKILL.md +67 -0
- package/templates/workspaces/olivia/skills/ai-automation-consulting/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/ai-automation-consulting/skill.json +12 -0
- package/templates/workspaces/olivia/skills/ai-presentation-maker/SKILL.md +1104 -0
- package/templates/workspaces/olivia/skills/ai-presentation-maker/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/ai-productivity-audit/SKILL.md +181 -0
- package/templates/workspaces/olivia/skills/ai-productivity-audit/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/ai-researcher/README.md +31 -0
- package/templates/workspaces/olivia/skills/ai-researcher/SKILL.md +59 -0
- package/templates/workspaces/olivia/skills/ai-researcher/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/ai-seo-writer/README.md +19 -0
- package/templates/workspaces/olivia/skills/ai-seo-writer/SKILL.md +100 -0
- package/templates/workspaces/olivia/skills/ai-seo-writer/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/analytics-tracking-2/SKILL.md +309 -0
- package/templates/workspaces/olivia/skills/analytics-tracking-2/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/api-doc-writer/SKILL.md +232 -0
- package/templates/workspaces/olivia/skills/api-doc-writer/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/api-generator/SKILL.md +49 -0
- package/templates/workspaces/olivia/skills/api-generator/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/api-generator/tips.md +10 -0
- package/templates/workspaces/olivia/skills/apple-notes/SKILL.md +50 -0
- package/templates/workspaces/olivia/skills/apple-notes/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/apple-reminders/SKILL.md +67 -0
- package/templates/workspaces/olivia/skills/apple-reminders/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/automation-workflows/SKILL.md +267 -0
- package/templates/workspaces/olivia/skills/automation-workflows/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/autoresearch/SKILL.md +46 -0
- package/templates/workspaces/olivia/skills/autoresearch/aria_write.py +148 -0
- package/templates/workspaces/olivia/skills/autoresearch/autoresearch.py +75 -0
- package/templates/workspaces/olivia/skills/azure-devops/SKILL.md +115 -0
- package/templates/workspaces/olivia/skills/azure-devops/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/blogwatcher/SKILL.md +46 -0
- package/templates/workspaces/olivia/skills/blogwatcher/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/blucli/SKILL.md +27 -0
- package/templates/workspaces/olivia/skills/blucli/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/check-analytics/SKILL.md +92 -0
- package/templates/workspaces/olivia/skills/check-analytics/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/cloud-architect/SKILL.md +89 -0
- package/templates/workspaces/olivia/skills/cloud-architect/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/cloud-infra-automation/SKILL.md +50 -0
- package/templates/workspaces/olivia/skills/cloud-infra-automation/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/cloud-storage/SKILL.md +61 -0
- package/templates/workspaces/olivia/skills/cloud-storage/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/cloud-storage/auth.md +97 -0
- package/templates/workspaces/olivia/skills/cloud-storage/costs.md +88 -0
- package/templates/workspaces/olivia/skills/cloud-storage/providers.md +55 -0
- package/templates/workspaces/olivia/skills/copywriting-pro/SKILL.md +107 -0
- package/templates/workspaces/olivia/skills/copywriting-pro/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/data-analyst-pro/SKILL.md +21 -0
- package/templates/workspaces/olivia/skills/data-analyst-pro/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/database-designer/README.md +388 -0
- package/templates/workspaces/olivia/skills/database-designer/SKILL.md +66 -0
- package/templates/workspaces/olivia/skills/database-designer/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/database-designer/index_optimizer.py +926 -0
- package/templates/workspaces/olivia/skills/database-designer/migration_generator.py +1199 -0
- package/templates/workspaces/olivia/skills/database-designer/schema_analyzer.py +982 -0
- package/templates/workspaces/olivia/skills/deploy-agent/SKILL.md +255 -0
- package/templates/workspaces/olivia/skills/deploy-agent/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/devops-automation-pack/SKILL.md +72 -0
- package/templates/workspaces/olivia/skills/devops-automation-pack/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/devops-automation-pack/deploy.sh +0 -0
- package/templates/workspaces/olivia/skills/financial-analysis-agent/SKILL.md +489 -0
- package/templates/workspaces/olivia/skills/financial-analysis-agent/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/README.md +72 -0
- package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/SKILL.md +226 -0
- package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/gifgrep/SKILL.md +47 -0
- package/templates/workspaces/olivia/skills/gifgrep/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/github/SKILL.md +47 -0
- package/templates/workspaces/olivia/skills/github/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/gog/SKILL.md +36 -0
- package/templates/workspaces/olivia/skills/gog/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/growth-strategy-hub/SKILL.md +135 -0
- package/templates/workspaces/olivia/skills/growth-strategy-hub/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/growth-strategy-hub/metadata.json +4 -0
- package/templates/workspaces/olivia/skills/hetzner-cloud/SKILL.md +130 -0
- package/templates/workspaces/olivia/skills/hetzner-cloud/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/himalaya/SKILL.md +217 -0
- package/templates/workspaces/olivia/skills/himalaya/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/hotel-recommendation/SKILL.md +117 -0
- package/templates/workspaces/olivia/skills/hotel-recommendation/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/hr-policy-generator/SKILL.md +54 -0
- package/templates/workspaces/olivia/skills/hr-policy-generator/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/human-writing/SKILL.md +41 -0
- package/templates/workspaces/olivia/skills/human-writing/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/imsg/SKILL.md +25 -0
- package/templates/workspaces/olivia/skills/imsg/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/in-depth-research/SKILL.md +124 -0
- package/templates/workspaces/olivia/skills/in-depth-research/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/in-depth-research/methodology.md +75 -0
- package/templates/workspaces/olivia/skills/in-depth-research/output-formats.md +168 -0
- package/templates/workspaces/olivia/skills/in-depth-research/sources.md +80 -0
- package/templates/workspaces/olivia/skills/javascript-skills/README.md +71 -0
- package/templates/workspaces/olivia/skills/javascript-skills/SKILL.md +746 -0
- package/templates/workspaces/olivia/skills/javascript-skills/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/leadership-strategy-playbook/SKILL.md +147 -0
- package/templates/workspaces/olivia/skills/leadership-strategy-playbook/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/market-research-agent/README.md +29 -0
- package/templates/workspaces/olivia/skills/market-research-agent/SKILL.md +52 -0
- package/templates/workspaces/olivia/skills/market-research-agent/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/marketing-analytics/SKILL.md +74 -0
- package/templates/workspaces/olivia/skills/marketing-analytics/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/marketing-master-io/SKILL.md +125 -0
- package/templates/workspaces/olivia/skills/marketing-master-io/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/marketing-strategy-pmm/SKILL.md +398 -0
- package/templates/workspaces/olivia/skills/marketing-strategy-pmm/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/meta-ads-analytics/SKILL.md +53 -0
- package/templates/workspaces/olivia/skills/meta-ads-analytics/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/obsidian/SKILL.md +55 -0
- package/templates/workspaces/olivia/skills/obsidian/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/openclaw-accounting/SKILL.md +125 -0
- package/templates/workspaces/olivia/skills/openclaw-accounting/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/CHANGELOG.md +35 -0
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/CHANNELLOG.md +73 -0
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/README.md +161 -0
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/SKILL.md +130 -0
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/config.json +36 -0
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/metadata.json +19 -0
- package/templates/workspaces/olivia/skills/openhue/SKILL.md +30 -0
- package/templates/workspaces/olivia/skills/openhue/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/orgx-operations-agent/SKILL.md +41 -0
- package/templates/workspaces/olivia/skills/orgx-operations-agent/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/outreach/SKILL.md +84 -0
- package/templates/workspaces/olivia/skills/outreach/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/outreach/by-type.md +166 -0
- package/templates/workspaces/olivia/skills/outreach/templates.md +154 -0
- package/templates/workspaces/olivia/skills/outreach/tracking.md +145 -0
- package/templates/workspaces/olivia/skills/persona-hr-coordinator/SKILL.md +38 -0
- package/templates/workspaces/olivia/skills/persona-hr-coordinator/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/personal-productivity/SKILL.md +161 -0
- package/templates/workspaces/olivia/skills/personal-productivity/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/personal-productivity/index.js +363 -0
- package/templates/workspaces/olivia/skills/personal-productivity/package.json +15 -0
- package/templates/workspaces/olivia/skills/personal-travel/README.md +34 -0
- package/templates/workspaces/olivia/skills/personal-travel/SKILL.md +46 -0
- package/templates/workspaces/olivia/skills/personal-travel/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/presentation-html-generator-skill/SKILL.md +185 -0
- package/templates/workspaces/olivia/skills/presentation-html-generator-skill/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/product-manager/SKILL.md +77 -0
- package/templates/workspaces/olivia/skills/product-manager/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/quant-strategy/SKILL.md +28 -0
- package/templates/workspaces/olivia/skills/quant-strategy/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/sales-pipeline-tracker/README.md +29 -0
- package/templates/workspaces/olivia/skills/sales-pipeline-tracker/SKILL.md +45 -0
- package/templates/workspaces/olivia/skills/sales-pipeline-tracker/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/security-auditor/SKILL.md +399 -0
- package/templates/workspaces/olivia/skills/security-auditor/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/security-hardening/SKILL.md +296 -0
- package/templates/workspaces/olivia/skills/security-hardening/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/security-scanner/SKILL.md +67 -0
- package/templates/workspaces/olivia/skills/security-scanner/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/seo-optimization/SKILL.md +31 -0
- package/templates/workspaces/olivia/skills/seo-optimization/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/service-booking/SKILL.md +193 -0
- package/templates/workspaces/olivia/skills/service-booking/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/sme-hr-automation/SKILL.md +131 -0
- package/templates/workspaces/olivia/skills/sme-hr-automation/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/social-media-scheduler/README.md +29 -0
- package/templates/workspaces/olivia/skills/social-media-scheduler/SKILL.md +49 -0
- package/templates/workspaces/olivia/skills/social-media-scheduler/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/sonoscli/SKILL.md +26 -0
- package/templates/workspaces/olivia/skills/sonoscli/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/strategy-advisor/SKILL.md +33 -0
- package/templates/workspaces/olivia/skills/strategy-advisor/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/summarize/SKILL.md +49 -0
- package/templates/workspaces/olivia/skills/summarize/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/things-mac/SKILL.md +61 -0
- package/templates/workspaces/olivia/skills/things-mac/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/travel-itinerary-planner/SKILL.md +121 -0
- package/templates/workspaces/olivia/skills/travel-itinerary-planner/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/travel-manager/SKILL.md +36 -0
- package/templates/workspaces/olivia/skills/travel-manager/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/travel-planning/SKILL.md +238 -0
- package/templates/workspaces/olivia/skills/travel-planning/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/travel-planning/booking-guide.md +91 -0
- package/templates/workspaces/olivia/skills/travel-planning/memory-template.md +111 -0
- package/templates/workspaces/olivia/skills/travel-planning/multi-city.md +131 -0
- package/templates/workspaces/olivia/skills/travel-planning/packing-templates.md +155 -0
- package/templates/workspaces/olivia/skills/travel-planning/setup.md +66 -0
- package/templates/workspaces/olivia/skills/update-it-all/SKILL.md +143 -0
- package/templates/workspaces/olivia/skills/update-it-all/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/voice/SKILL.md +62 -0
- package/templates/workspaces/olivia/skills/weather/SKILL.md +49 -0
- package/templates/workspaces/olivia/skills/weather/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/web-researcher/SKILL.md +21 -0
- package/templates/workspaces/olivia/skills/web-researcher/_meta.json +6 -0
- package/templates/workspaces/olivia/skills/website-seo/SKILL.md +284 -0
- package/templates/workspaces/olivia/skills/website-seo/_meta.json +6 -0
- package/templates/workspaces/olivia/stripe-welcome-n8n.json +103 -0
- package/templates/workspaces/olivia/test2.wav.wav +0 -0
- package/templates/workspaces/olivia/test_speech.json +1 -0
- package/templates/workspaces/olivia/test_speech.srt +0 -0
- package/templates/workspaces/olivia/test_speech.tsv +1 -0
- package/templates/workspaces/olivia/test_speech.txt +0 -0
- package/templates/workspaces/olivia/test_speech.vtt +2 -0
- package/templates/workspaces/owen/AGENTS.md +59 -0
- package/templates/workspaces/owen/FEEDBACK.md +12 -0
- package/templates/workspaces/owen/HEARTBEAT.md +5 -0
- package/templates/workspaces/owen/IDENTITY.md +6 -0
- package/templates/workspaces/owen/LEARNINGS.md +46 -0
- package/templates/workspaces/owen/MEMORY.md +22 -0
- package/templates/workspaces/owen/PLAYBOOK.md +16 -0
- package/templates/workspaces/owen/SOUL.md +1 -1
- package/templates/workspaces/owen/TOOLS.md +15 -0
- package/templates/workspaces/owen/USER.md +17 -0
- package/templates/workspaces/parker/AGENTS.md +59 -0
- package/templates/workspaces/parker/FEEDBACK.md +11 -0
- package/templates/workspaces/parker/HEARTBEAT.md +5 -0
- package/templates/workspaces/parker/IDENTITY.md +6 -0
- package/templates/workspaces/parker/LEARNINGS.md +17 -0
- package/templates/workspaces/parker/MEMORY.md +22 -0
- package/templates/workspaces/parker/PLAYBOOK.md +16 -0
- package/templates/workspaces/parker/SOUL.md +1 -1
- package/templates/workspaces/parker/TOOLS.md +15 -0
- package/templates/workspaces/parker/USER.md +13 -0
- package/templates/workspaces/quinn/AGENTS.md +52 -0
- package/templates/workspaces/quinn/FEEDBACK.md +11 -0
- package/templates/workspaces/quinn/HEARTBEAT.md +5 -0
- package/templates/workspaces/quinn/IDENTITY.md +6 -0
- package/templates/workspaces/quinn/LEARNINGS.md +35 -0
- package/templates/workspaces/quinn/MEMORY.md +22 -0
- package/templates/workspaces/quinn/PLAYBOOK.md +16 -0
- package/templates/workspaces/quinn/SOUL.md +1 -1
- package/templates/workspaces/quinn/USER.md +17 -0
- package/templates/workspaces/quinn/alice-login-page.png +0 -0
- package/templates/workspaces/rowan/AGENTS.md +59 -0
- package/templates/workspaces/rowan/FEEDBACK.md +12 -0
- package/templates/workspaces/rowan/HEARTBEAT.md +5 -0
- package/templates/workspaces/rowan/IDENTITY.md +6 -0
- package/templates/workspaces/rowan/LEARNINGS.md +12 -0
- package/templates/workspaces/rowan/MEMORY.md +22 -0
- package/templates/workspaces/rowan/PLAYBOOK.md +16 -0
- package/templates/workspaces/rowan/SOUL.md +1 -1
- package/templates/workspaces/rowan/USER.md +17 -0
- package/templates/workspaces/selena/AGENTS.md +59 -0
- package/templates/workspaces/selena/FEEDBACK.md +12 -0
- package/templates/workspaces/selena/HEARTBEAT.md +5 -0
- package/templates/workspaces/selena/IDENTITY.md +6 -0
- package/templates/workspaces/selena/LEARNINGS.md +24 -0
- package/templates/workspaces/selena/MEMORY.md +22 -0
- package/templates/workspaces/selena/PLAYBOOK.md +16 -0
- package/templates/workspaces/selena/SOUL.md +1 -1
- package/templates/workspaces/selena/USER.md +17 -0
- package/templates/workspaces/selena/kids-ai-security-compliance-plan.md +791 -0
- package/templates/workspaces/selena/kidspark-coppa-compliance-audit.md +866 -0
- package/templates/workspaces/sloane/AGENTS.md +59 -0
- package/templates/workspaces/sloane/FEEDBACK.md +12 -0
- package/templates/workspaces/sloane/HEARTBEAT.md +9 -0
- package/templates/workspaces/sloane/IDENTITY.md +6 -0
- package/templates/workspaces/sloane/LEARNINGS.md +6 -0
- package/templates/workspaces/sloane/MEMORY.md +22 -0
- package/templates/workspaces/sloane/PLAYBOOK.md +16 -0
- package/templates/workspaces/sloane/SOUL.md +1 -1
- package/templates/workspaces/sloane/TOOLS.md +15 -0
- package/templates/workspaces/sloane/USER.md +13 -0
- package/templates/workspaces/smoketestagent/AGENTS.md +52 -0
- package/templates/workspaces/smoketestagent/FEEDBACK.md +3 -0
- package/templates/workspaces/smoketestagent/HEARTBEAT.md +14 -0
- package/templates/workspaces/smoketestagent/IDENTITY.md +6 -0
- package/templates/workspaces/smoketestagent/LEARNINGS.md +3 -0
- package/templates/workspaces/smoketestagent/MEMORY.md +24 -0
- package/templates/workspaces/smoketestagent/PLAYBOOK.md +7 -0
- package/templates/workspaces/smoketestagent/SOUL.md +32 -0
- package/templates/workspaces/smoketestagent/TOOLS.md +13 -0
- package/templates/workspaces/smoketestagent/USER.md +5 -0
- package/templates/workspaces/sophie/AGENTS.md +59 -0
- package/templates/workspaces/sophie/FEEDBACK.md +12 -0
- package/templates/workspaces/sophie/HEARTBEAT.md +9 -0
- package/templates/workspaces/sophie/IDENTITY.md +6 -0
- package/templates/workspaces/sophie/LEARNINGS.md +6 -0
- package/templates/workspaces/sophie/MEMORY.md +22 -0
- package/templates/workspaces/sophie/PLAYBOOK.md +16 -0
- package/templates/workspaces/sophie/SOUL.md +1 -1
- package/templates/workspaces/sophie/TOOLS.md +15 -0
- package/templates/workspaces/sophie/USER.md +17 -0
- package/templates/workspaces/tommy/AGENTS.md +59 -0
- package/templates/workspaces/tommy/FEEDBACK.md +12 -0
- package/templates/workspaces/tommy/HEARTBEAT.md +9 -0
- package/templates/workspaces/tommy/IDENTITY.md +6 -0
- package/templates/workspaces/tommy/LEARNINGS.md +6 -0
- package/templates/workspaces/tommy/MEMORY.md +22 -0
- package/templates/workspaces/tommy/PLAYBOOK.md +16 -0
- package/templates/workspaces/tommy/SOUL.md +1 -1
- package/templates/workspaces/tommy/TOOLS.md +15 -0
- package/templates/workspaces/tommy/USER.md +17 -0
- package/templates/workspaces/uma/AGENTS.md +59 -0
- package/templates/workspaces/uma/FEEDBACK.md +11 -0
- package/templates/workspaces/uma/HEARTBEAT.md +5 -0
- package/templates/workspaces/uma/IDENTITY.md +6 -0
- package/templates/workspaces/uma/LEARNINGS.md +11 -0
- package/templates/workspaces/uma/MEMORY.md +22 -0
- package/templates/workspaces/uma/PLAYBOOK.md +16 -0
- package/templates/workspaces/uma/SOUL.md +1 -1
- package/templates/workspaces/uma/TOOLS.md +15 -0
- package/templates/workspaces/uma/USER.md +13 -0
|
@@ -0,0 +1,855 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-audit
|
|
3
|
+
description: Audit codebases, infrastructure, AND agentic AI systems for security issues. Covers traditional security (dependencies, secrets, OWASP web top 10, SSL/TLS, file permissions) PLUS agentic security (prompt injection scanning, identity spoofing detection, memory poisoning checks, multi-agent communication audit, OWASP Agentic Top 10). Use when scanning for vulnerabilities, detecting hardcoded secrets, reviewing agent workspace configuration, checking prompt injection vectors, or auditing agent permissions and boundaries.
|
|
4
|
+
metadata: {"clawdbot":{"emoji":"🔒","requires":{"anyBins":["npm","pip","git","openssl","curl"]},"os":["linux","darwin","win32"]}}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Security Audit
|
|
8
|
+
|
|
9
|
+
Scan, detect, and fix security issues in codebases and infrastructure. Covers dependency vulnerabilities, secret detection, OWASP top 10, SSL/TLS verification, file permissions, and secure coding patterns.
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- Scanning project dependencies for known vulnerabilities
|
|
14
|
+
- Detecting hardcoded secrets, API keys, or credentials in source code
|
|
15
|
+
- Reviewing code for OWASP top 10 vulnerabilities (injection, XSS, CSRF, etc.)
|
|
16
|
+
- Verifying SSL/TLS configuration for endpoints
|
|
17
|
+
- Auditing file and directory permissions
|
|
18
|
+
- Checking authentication and authorization patterns
|
|
19
|
+
- Preparing for a security review or compliance audit
|
|
20
|
+
|
|
21
|
+
## Dependency Vulnerability Scanning
|
|
22
|
+
|
|
23
|
+
### Node.js
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Built-in npm audit
|
|
27
|
+
npm audit
|
|
28
|
+
npm audit --json | jq '.vulnerabilities | to_entries[] | {name: .key, severity: .value.severity, via: .value.via[0]}'
|
|
29
|
+
|
|
30
|
+
# Fix automatically where possible
|
|
31
|
+
npm audit fix
|
|
32
|
+
|
|
33
|
+
# Show only high and critical
|
|
34
|
+
npm audit --audit-level=high
|
|
35
|
+
|
|
36
|
+
# Check a specific package
|
|
37
|
+
npm audit --package-lock-only
|
|
38
|
+
|
|
39
|
+
# Alternative: use npx to scan without installing
|
|
40
|
+
npx audit-ci --high
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Python
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# pip-audit (recommended)
|
|
47
|
+
pip install pip-audit
|
|
48
|
+
pip-audit
|
|
49
|
+
pip-audit -r requirements.txt
|
|
50
|
+
pip-audit --format=json
|
|
51
|
+
|
|
52
|
+
# safety (alternative)
|
|
53
|
+
pip install safety
|
|
54
|
+
safety check
|
|
55
|
+
safety check -r requirements.txt --json
|
|
56
|
+
|
|
57
|
+
# Check a specific package
|
|
58
|
+
pip-audit --requirement=- <<< "requests==2.25.0"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Go
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Built-in vuln checker
|
|
65
|
+
go install golang.org/x/vuln/cmd/govulncheck@latest
|
|
66
|
+
govulncheck ./...
|
|
67
|
+
|
|
68
|
+
# Check specific binary
|
|
69
|
+
govulncheck -mode=binary ./myapp
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Rust
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# cargo-audit
|
|
76
|
+
cargo install cargo-audit
|
|
77
|
+
cargo audit
|
|
78
|
+
|
|
79
|
+
# With fix suggestions
|
|
80
|
+
cargo audit fix
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Universal: Trivy (scans any project)
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Install: https://aquasecurity.github.io/trivy
|
|
87
|
+
# Scan filesystem
|
|
88
|
+
trivy fs .
|
|
89
|
+
|
|
90
|
+
# Scan specific language
|
|
91
|
+
trivy fs --scanners vuln --severity HIGH,CRITICAL .
|
|
92
|
+
|
|
93
|
+
# Scan Docker image
|
|
94
|
+
trivy image myapp:latest
|
|
95
|
+
|
|
96
|
+
# JSON output
|
|
97
|
+
trivy fs --format json -o results.json .
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Secret Detection
|
|
101
|
+
|
|
102
|
+
### Manual grep patterns
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# AWS keys
|
|
106
|
+
grep -rn 'AKIA[0-9A-Z]\{16\}' --include='*.{js,ts,py,go,java,rb,env,yml,yaml,json,xml,cfg,conf,ini}' .
|
|
107
|
+
|
|
108
|
+
# Generic API keys and tokens
|
|
109
|
+
grep -rn -i 'api[_-]\?key\|api[_-]\?secret\|access[_-]\?token\|auth[_-]\?token\|bearer ' \
|
|
110
|
+
--include='*.{js,ts,py,go,java,rb,env,yml,yaml,json}' .
|
|
111
|
+
|
|
112
|
+
# Private keys
|
|
113
|
+
grep -rn 'BEGIN.*PRIVATE KEY' .
|
|
114
|
+
|
|
115
|
+
# Passwords in config
|
|
116
|
+
grep -rn -i 'password\s*[:=]' --include='*.{env,yml,yaml,json,xml,cfg,conf,ini,toml}' .
|
|
117
|
+
|
|
118
|
+
# Connection strings with credentials
|
|
119
|
+
grep -rn -i 'mongodb://\|mysql://\|postgres://\|redis://' --include='*.{js,ts,py,go,env,yml,yaml,json}' . | grep -v 'localhost\|127.0.0.1\|example'
|
|
120
|
+
|
|
121
|
+
# JWT tokens (three base64 segments separated by dots)
|
|
122
|
+
grep -rn 'eyJ[A-Za-z0-9_-]*\.eyJ[A-Za-z0-9_-]*\.' --include='*.{js,ts,py,go,log,json}' .
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Automated scanning with git
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Scan git history for secrets (not just current files)
|
|
129
|
+
# Using git log + grep
|
|
130
|
+
git log -p --all | grep -n -i 'api.key\|password\|secret\|token' | head -50
|
|
131
|
+
|
|
132
|
+
# Check staged files before commit
|
|
133
|
+
git diff --cached --name-only | xargs grep -l -i 'api.key\|password\|secret\|token' 2>/dev/null
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Pre-commit hook for secrets
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
#!/bin/bash
|
|
140
|
+
# .git/hooks/pre-commit - Block commits containing potential secrets
|
|
141
|
+
|
|
142
|
+
PATTERNS=(
|
|
143
|
+
'AKIA[0-9A-Z]{16}'
|
|
144
|
+
'BEGIN.*PRIVATE KEY'
|
|
145
|
+
'password\s*[:=]\s*["\x27][^"\x27]+'
|
|
146
|
+
'api[_-]?key\s*[:=]\s*["\x27][^"\x27]+'
|
|
147
|
+
'sk-[A-Za-z0-9]{20,}'
|
|
148
|
+
'ghp_[A-Za-z0-9]{36}'
|
|
149
|
+
'xox[bpoas]-[A-Za-z0-9-]+'
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
|
|
153
|
+
[ -z "$STAGED_FILES" ] && exit 0
|
|
154
|
+
|
|
155
|
+
EXIT_CODE=0
|
|
156
|
+
for pattern in "${PATTERNS[@]}"; do
|
|
157
|
+
matches=$(echo "$STAGED_FILES" | xargs grep -Pn "$pattern" 2>/dev/null)
|
|
158
|
+
if [ -n "$matches" ]; then
|
|
159
|
+
echo "BLOCKED: Potential secret detected matching pattern: $pattern"
|
|
160
|
+
echo "$matches"
|
|
161
|
+
EXIT_CODE=1
|
|
162
|
+
fi
|
|
163
|
+
done
|
|
164
|
+
|
|
165
|
+
if [ $EXIT_CODE -ne 0 ]; then
|
|
166
|
+
echo ""
|
|
167
|
+
echo "To proceed anyway: git commit --no-verify"
|
|
168
|
+
echo "To remove secrets: replace with environment variables"
|
|
169
|
+
fi
|
|
170
|
+
exit $EXIT_CODE
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### .gitignore audit
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
# Check if sensitive files are tracked
|
|
177
|
+
echo "--- Files that should probably be gitignored ---"
|
|
178
|
+
for pattern in '.env' '.env.*' '*.pem' '*.key' '*.p12' '*.pfx' 'credentials.json' \
|
|
179
|
+
'service-account*.json' '*.keystore' 'id_rsa' 'id_ed25519'; do
|
|
180
|
+
found=$(git ls-files "$pattern" 2>/dev/null)
|
|
181
|
+
[ -n "$found" ] && echo " TRACKED: $found"
|
|
182
|
+
done
|
|
183
|
+
|
|
184
|
+
# Check if .gitignore exists and has common patterns
|
|
185
|
+
if [ ! -f .gitignore ]; then
|
|
186
|
+
echo "WARNING: No .gitignore file found"
|
|
187
|
+
else
|
|
188
|
+
for entry in '.env' 'node_modules' '*.key' '*.pem'; do
|
|
189
|
+
grep -q "$entry" .gitignore || echo " MISSING from .gitignore: $entry"
|
|
190
|
+
done
|
|
191
|
+
fi
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## OWASP Top 10 Code Patterns
|
|
195
|
+
|
|
196
|
+
### 1. Injection (SQL, Command, LDAP)
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# SQL injection: string concatenation in queries
|
|
200
|
+
grep -rn "query\|execute\|cursor" --include='*.{py,js,ts,go,java,rb}' . | \
|
|
201
|
+
grep -i "f\"\|format(\|%s\|\${\|+ \"\|concat\|sprintf" | \
|
|
202
|
+
grep -iv "parameterized\|placeholder\|prepared"
|
|
203
|
+
|
|
204
|
+
# Command injection: user input in shell commands
|
|
205
|
+
grep -rn "exec(\|spawn(\|system(\|popen(\|subprocess\|os\.system\|child_process" \
|
|
206
|
+
--include='*.{py,js,ts,go,java,rb}' .
|
|
207
|
+
|
|
208
|
+
# Check for parameterized queries (good)
|
|
209
|
+
grep -rn "\\$[0-9]\|\\?\|%s\|:param\|@param\|prepared" --include='*.{py,js,ts,go,java,rb}' .
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 2. Broken Authentication
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Weak password hashing (MD5, SHA1 used for passwords)
|
|
216
|
+
grep -rn "md5\|sha1\|sha256" --include='*.{py,js,ts,go,java,rb}' . | grep -i "password\|passwd"
|
|
217
|
+
|
|
218
|
+
# Hardcoded credentials
|
|
219
|
+
grep -rn -i "admin.*password\|password.*admin\|default.*password" \
|
|
220
|
+
--include='*.{py,js,ts,go,java,rb,yml,yaml,json}' .
|
|
221
|
+
|
|
222
|
+
# Session tokens in URLs
|
|
223
|
+
grep -rn "session\|token\|jwt" --include='*.{py,js,ts,go,java,rb}' . | grep -i "url\|query\|param\|GET"
|
|
224
|
+
|
|
225
|
+
# Check for rate limiting on auth endpoints
|
|
226
|
+
grep -rn -i "rate.limit\|throttle\|brute" --include='*.{py,js,ts,go,java,rb}' .
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### 3. Cross-Site Scripting (XSS)
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Unescaped output in templates
|
|
233
|
+
grep -rn "innerHTML\|dangerouslySetInnerHTML\|v-html\|\|html(" \
|
|
234
|
+
--include='*.{js,ts,jsx,tsx,vue,html}' .
|
|
235
|
+
|
|
236
|
+
# Template injection
|
|
237
|
+
grep -rn "{{{.*}}}\|<%=\|<%-\|\$\!{" --include='*.{html,ejs,hbs,pug,erb}' .
|
|
238
|
+
|
|
239
|
+
# Document.write
|
|
240
|
+
grep -rn "document\.write\|document\.writeln" --include='*.{js,ts,html}' .
|
|
241
|
+
|
|
242
|
+
# eval with user input
|
|
243
|
+
grep -rn "eval(\|new Function(\|setTimeout.*string\|setInterval.*string" \
|
|
244
|
+
--include='*.{js,ts}' .
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### 4. Insecure Direct Object References
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
# Direct ID usage in routes without authz check
|
|
251
|
+
grep -rn "params\.id\|params\[.id.\]\|req\.params\.\|request\.args\.\|request\.GET\." \
|
|
252
|
+
--include='*.{py,js,ts,go,java,rb}' . | \
|
|
253
|
+
grep -i "user\|account\|profile\|order\|document"
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### 5. Security Misconfiguration
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# CORS wildcard
|
|
260
|
+
grep -rn "Access-Control-Allow-Origin.*\*\|cors({.*origin.*true\|cors()" \
|
|
261
|
+
--include='*.{py,js,ts,go,java,rb}' .
|
|
262
|
+
|
|
263
|
+
# Debug mode in production configs
|
|
264
|
+
grep -rn "DEBUG\s*=\s*True\|debug:\s*true\|NODE_ENV.*development" \
|
|
265
|
+
--include='*.{py,js,ts,yml,yaml,json,env}' .
|
|
266
|
+
|
|
267
|
+
# Verbose error messages exposed to clients
|
|
268
|
+
grep -rn "stack\|traceback\|stackTrace" --include='*.{py,js,ts,go,java,rb}' . | \
|
|
269
|
+
grep -i "response\|send\|return\|res\."
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## SSL/TLS Verification
|
|
273
|
+
|
|
274
|
+
### Check endpoint SSL
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
# Full SSL check
|
|
278
|
+
openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | \
|
|
279
|
+
openssl x509 -noout -subject -issuer -dates -fingerprint
|
|
280
|
+
|
|
281
|
+
# Check certificate expiry
|
|
282
|
+
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | \
|
|
283
|
+
openssl x509 -noout -enddate
|
|
284
|
+
|
|
285
|
+
# Check supported TLS versions
|
|
286
|
+
for v in tls1 tls1_1 tls1_2 tls1_3; do
|
|
287
|
+
result=$(openssl s_client -connect example.com:443 -$v < /dev/null 2>&1)
|
|
288
|
+
if echo "$result" | grep -q "Cipher is"; then
|
|
289
|
+
echo "$v: SUPPORTED"
|
|
290
|
+
else
|
|
291
|
+
echo "$v: NOT SUPPORTED"
|
|
292
|
+
fi
|
|
293
|
+
done
|
|
294
|
+
|
|
295
|
+
# Check cipher suites
|
|
296
|
+
openssl s_client -connect example.com:443 -cipher 'ALL' < /dev/null 2>&1 | \
|
|
297
|
+
grep "Cipher :"
|
|
298
|
+
|
|
299
|
+
# Check for weak ciphers
|
|
300
|
+
openssl s_client -connect example.com:443 -cipher 'NULL:EXPORT:DES:RC4:MD5' < /dev/null 2>&1 | \
|
|
301
|
+
grep "Cipher :"
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Verify certificate chain
|
|
305
|
+
|
|
306
|
+
```bash
|
|
307
|
+
# Download and verify full chain
|
|
308
|
+
openssl s_client -connect example.com:443 -showcerts < /dev/null 2>/dev/null | \
|
|
309
|
+
awk '/BEGIN CERTIFICATE/,/END CERTIFICATE/{print}' > chain.pem
|
|
310
|
+
|
|
311
|
+
# Verify chain
|
|
312
|
+
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
|
|
313
|
+
|
|
314
|
+
# Check certificate details
|
|
315
|
+
openssl x509 -in chain.pem -noout -text | grep -A2 "Subject:\|Issuer:\|Not Before\|Not After\|DNS:"
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Check SSL from code
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
# Verify SSL isn't disabled in code
|
|
322
|
+
grep -rn "verify\s*=\s*False\|rejectUnauthorized.*false\|InsecureSkipVerify.*true\|CURLOPT_SSL_VERIFYPEER.*false\|NODE_TLS_REJECT_UNAUTHORIZED.*0" \
|
|
323
|
+
--include='*.{py,js,ts,go,java,rb,yml,yaml}' .
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
## File Permission Audit
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
# Find world-writable files
|
|
330
|
+
find . -type f -perm -o=w -not -path '*/node_modules/*' -not -path '*/.git/*' 2>/dev/null
|
|
331
|
+
|
|
332
|
+
# Find executable files that shouldn't be
|
|
333
|
+
find . -type f -perm -u=x -not -name '*.sh' -not -name '*.py' -not -path '*/node_modules/*' \
|
|
334
|
+
-not -path '*/.git/*' -not -path '*/bin/*' 2>/dev/null
|
|
335
|
+
|
|
336
|
+
# Check sensitive file permissions
|
|
337
|
+
for f in .env .env.* *.pem *.key *.p12 id_rsa id_ed25519; do
|
|
338
|
+
[ -f "$f" ] && ls -la "$f"
|
|
339
|
+
done
|
|
340
|
+
|
|
341
|
+
# Find files with SUID/SGID bits (Linux)
|
|
342
|
+
find / -type f \( -perm -4000 -o -perm -2000 \) 2>/dev/null | head -20
|
|
343
|
+
|
|
344
|
+
# Check SSH key permissions
|
|
345
|
+
if [ -d ~/.ssh ]; then
|
|
346
|
+
echo "--- SSH directory permissions ---"
|
|
347
|
+
ls -la ~/.ssh/
|
|
348
|
+
echo ""
|
|
349
|
+
# Should be: dir=700, private keys=600, public keys=644, config=600
|
|
350
|
+
[ "$(stat -c %a ~/.ssh 2>/dev/null || stat -f %Lp ~/.ssh)" != "700" ] && echo "WARNING: ~/.ssh should be 700"
|
|
351
|
+
fi
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## Full Project Security Audit Script
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
#!/bin/bash
|
|
358
|
+
# security-audit.sh - Run a comprehensive security check on a project
|
|
359
|
+
set -euo pipefail
|
|
360
|
+
|
|
361
|
+
PROJECT_DIR="${1:-.}"
|
|
362
|
+
cd "$PROJECT_DIR"
|
|
363
|
+
|
|
364
|
+
echo "========================================="
|
|
365
|
+
echo "Security Audit: $(basename "$(pwd)")"
|
|
366
|
+
echo "Date: $(date -u '+%Y-%m-%dT%H:%M:%SZ')"
|
|
367
|
+
echo "========================================="
|
|
368
|
+
echo ""
|
|
369
|
+
|
|
370
|
+
ISSUES=0
|
|
371
|
+
warn() { echo " [!] $1"; ((ISSUES++)); }
|
|
372
|
+
ok() { echo " [OK] $1"; }
|
|
373
|
+
section() { echo ""; echo "--- $1 ---"; }
|
|
374
|
+
|
|
375
|
+
# 1. Secrets detection
|
|
376
|
+
section "Secret Detection"
|
|
377
|
+
for pattern in 'AKIA[0-9A-Z]\{16\}' 'BEGIN.*PRIVATE KEY' 'sk-[A-Za-z0-9]\{20,\}' \
|
|
378
|
+
'ghp_[A-Za-z0-9]\{36\}' 'xox[bpoas]-'; do
|
|
379
|
+
count=$(grep -rn "$pattern" --include='*.{js,ts,py,go,java,rb,env,yml,yaml,json,xml}' . 2>/dev/null | \
|
|
380
|
+
grep -v 'node_modules\|\.git\|vendor\|__pycache__' | wc -l)
|
|
381
|
+
if [ "$count" -gt 0 ]; then
|
|
382
|
+
warn "Found $count matches for pattern: $pattern"
|
|
383
|
+
fi
|
|
384
|
+
done
|
|
385
|
+
grep -rn -i 'password\s*[:=]\s*["'"'"'][^"'"'"']*["'"'"']' \
|
|
386
|
+
--include='*.{js,ts,py,go,yml,yaml,json,env}' . 2>/dev/null | \
|
|
387
|
+
grep -v 'node_modules\|\.git\|example\|test\|mock\|placeholder\|changeme\|xxxx' | \
|
|
388
|
+
while read -r line; do warn "Hardcoded password: $line"; done
|
|
389
|
+
|
|
390
|
+
# 2. Dependency audit
|
|
391
|
+
section "Dependency Vulnerabilities"
|
|
392
|
+
if [ -f package-lock.json ] || [ -f package.json ]; then
|
|
393
|
+
npm audit --audit-level=high 2>/dev/null && ok "npm: no high/critical vulns" || warn "npm audit found issues"
|
|
394
|
+
fi
|
|
395
|
+
if [ -f requirements.txt ]; then
|
|
396
|
+
pip-audit -r requirements.txt 2>/dev/null && ok "pip: no known vulns" || warn "pip-audit found issues"
|
|
397
|
+
fi
|
|
398
|
+
if [ -f go.sum ]; then
|
|
399
|
+
govulncheck ./... 2>/dev/null && ok "Go: no known vulns" || warn "govulncheck found issues"
|
|
400
|
+
fi
|
|
401
|
+
|
|
402
|
+
# 3. Gitignore check
|
|
403
|
+
section ".gitignore Coverage"
|
|
404
|
+
if [ ! -f .gitignore ]; then
|
|
405
|
+
warn "No .gitignore file"
|
|
406
|
+
else
|
|
407
|
+
for entry in '.env' 'node_modules' '*.key' '*.pem' '.DS_Store'; do
|
|
408
|
+
grep -q "$entry" .gitignore 2>/dev/null && ok ".gitignore has $entry" || warn ".gitignore missing: $entry"
|
|
409
|
+
done
|
|
410
|
+
fi
|
|
411
|
+
|
|
412
|
+
# 4. SSL verification disabled
|
|
413
|
+
section "SSL Verification"
|
|
414
|
+
disabled=$(grep -rn "verify\s*=\s*False\|rejectUnauthorized.*false\|InsecureSkipVerify.*true" \
|
|
415
|
+
--include='*.{py,js,ts,go,java,rb}' . 2>/dev/null | \
|
|
416
|
+
grep -v 'node_modules\|\.git\|test\|spec\|mock' | wc -l)
|
|
417
|
+
[ "$disabled" -gt 0 ] && warn "SSL verification disabled in $disabled location(s)" || ok "No SSL bypasses found"
|
|
418
|
+
|
|
419
|
+
# 5. CORS wildcard
|
|
420
|
+
section "CORS Configuration"
|
|
421
|
+
cors=$(grep -rn "Access-Control-Allow-Origin.*\*\|cors({.*origin.*true" \
|
|
422
|
+
--include='*.{py,js,ts,go,java,rb}' . 2>/dev/null | \
|
|
423
|
+
grep -v 'node_modules\|\.git' | wc -l)
|
|
424
|
+
[ "$cors" -gt 0 ] && warn "CORS wildcard found in $cors location(s)" || ok "No CORS wildcard"
|
|
425
|
+
|
|
426
|
+
# 6. Debug mode
|
|
427
|
+
section "Debug/Development Settings"
|
|
428
|
+
debug=$(grep -rn "DEBUG\s*=\s*True\|debug:\s*true" \
|
|
429
|
+
--include='*.{py,yml,yaml,json}' . 2>/dev/null | \
|
|
430
|
+
grep -v 'node_modules\|\.git\|test\|jest\|vitest' | wc -l)
|
|
431
|
+
[ "$debug" -gt 0 ] && warn "Debug mode enabled in $debug location(s)" || ok "No debug flags found"
|
|
432
|
+
|
|
433
|
+
echo ""
|
|
434
|
+
echo "========================================="
|
|
435
|
+
echo "Audit complete. Issues found: $ISSUES"
|
|
436
|
+
echo "========================================="
|
|
437
|
+
[ "$ISSUES" -eq 0 ] && exit 0 || exit 1
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
## Secure Coding Quick Reference
|
|
441
|
+
|
|
442
|
+
### Environment variables instead of hardcoded secrets
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
# Bad: hardcoded in source
|
|
446
|
+
API_KEY="sk-abc123..."
|
|
447
|
+
|
|
448
|
+
# Good: from environment
|
|
449
|
+
API_KEY="${API_KEY:?Error: API_KEY not set}"
|
|
450
|
+
|
|
451
|
+
# Good: from .env file (loaded at startup, never committed)
|
|
452
|
+
# .env
|
|
453
|
+
API_KEY=sk-abc123...
|
|
454
|
+
# .gitignore
|
|
455
|
+
.env
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
### Input validation checklist
|
|
459
|
+
|
|
460
|
+
```
|
|
461
|
+
- [ ] All user input validated (type, length, format)
|
|
462
|
+
- [ ] SQL queries use parameterized statements (never string concat)
|
|
463
|
+
- [ ] Shell commands never include user input directly
|
|
464
|
+
- [ ] File paths validated (no path traversal: ../)
|
|
465
|
+
- [ ] URLs validated (no SSRF: restrict to expected domains)
|
|
466
|
+
- [ ] HTML output escaped (no XSS: use framework auto-escaping)
|
|
467
|
+
- [ ] JSON parsing has error handling (no crash on malformed input)
|
|
468
|
+
- [ ] File uploads checked (type, size, no executable content)
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
### HTTP security headers
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
# Check security headers on a URL
|
|
475
|
+
curl -sI https://example.com | grep -i 'strict-transport\|content-security\|x-frame\|x-content-type\|referrer-policy\|permissions-policy'
|
|
476
|
+
|
|
477
|
+
# Expected headers:
|
|
478
|
+
# Strict-Transport-Security: max-age=31536000; includeSubDomains
|
|
479
|
+
# Content-Security-Policy: default-src 'self'
|
|
480
|
+
# X-Frame-Options: DENY
|
|
481
|
+
# X-Content-Type-Options: nosniff
|
|
482
|
+
# Referrer-Policy: strict-origin-when-cross-origin
|
|
483
|
+
# Permissions-Policy: camera=(), microphone=(), geolocation=()
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
## Tips
|
|
487
|
+
|
|
488
|
+
- Run `npm audit` / `pip-audit` / `govulncheck` in CI on every pull request, not just occasionally.
|
|
489
|
+
- Secret detection in git history matters: even if a secret is removed from HEAD, it exists in git history. Use `git filter-branch` or `git-filter-repo` to purge, then rotate the credential.
|
|
490
|
+
- The most dangerous vulnerabilities are often the simplest: SQL injection via string concatenation, command injection via unsanitized input, XSS via `innerHTML`.
|
|
491
|
+
- CORS `Access-Control-Allow-Origin: *` is safe for truly public, read-only APIs. It's dangerous for anything that uses cookies or auth tokens.
|
|
492
|
+
- Always verify SSL in production. `verify=False` or `rejectUnauthorized: false` should only appear in test code, never in production paths.
|
|
493
|
+
- Defense in depth: validate input, escape output, use parameterized queries, enforce least privilege, and assume every layer might be bypassed.
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## 🤖 Agentic Security Audit (Bổ sung 25/02/2026)
|
|
498
|
+
|
|
499
|
+
> *Từ paper "Agents of Chaos" (arXiv:2602.20021) + OWASP Top 10 for Agentic Applications 2026.*
|
|
500
|
+
> *Traditional security audit chỉ cover code/infra. Agentic systems có attack surface hoàn toàn mới.*
|
|
501
|
+
|
|
502
|
+
### When to Use (Agentic)
|
|
503
|
+
|
|
504
|
+
- Auditing OpenClaw/agent workspace configuration
|
|
505
|
+
- Reviewing agent permissions and access boundaries
|
|
506
|
+
- Scanning for prompt injection vectors in agent-facing content
|
|
507
|
+
- Assessing multi-agent communication security
|
|
508
|
+
- Evaluating identity verification mechanisms
|
|
509
|
+
- Checking persistent memory for poisoning
|
|
510
|
+
|
|
511
|
+
### OWASP Agentic Top 10 Checklist (2026)
|
|
512
|
+
|
|
513
|
+
```
|
|
514
|
+
- [ ] ASI01: Agent Goal Hijack (prompt injection — direct & indirect)
|
|
515
|
+
- [ ] ASI02: Tool Misuse and Exploitation (shell, filesystem, API abuse)
|
|
516
|
+
- [ ] ASI03: Identity and Privilege Abuse (confused deputy, over-privilege)
|
|
517
|
+
- [ ] ASI04: Memory Poisoning (SOUL.md, MEMORY.md, persistent context)
|
|
518
|
+
- [ ] ASI05: Supply Chain Attacks (malicious skills/plugins — e.g., ClawHub)
|
|
519
|
+
- [ ] ASI06: Rogue Agents (operating outside intended boundaries)
|
|
520
|
+
- [ ] ASI07: Data Leakage via Agentic Channels (cross-channel PII exposure)
|
|
521
|
+
- [ ] ASI08: Orchestration Manipulation (sub-agent hijacking)
|
|
522
|
+
- [ ] ASI09: Insufficient Logging and Observability
|
|
523
|
+
- [ ] ASI10: Insecure Agent Communication (agent-to-agent trust)
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
### 1. Workspace Configuration Audit
|
|
527
|
+
|
|
528
|
+
```bash
|
|
529
|
+
# Check if agent config files are world-readable
|
|
530
|
+
echo "--- Agent Config Permissions ---"
|
|
531
|
+
for f in SOUL.md MEMORY.md AGENTS.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md; do
|
|
532
|
+
[ -f "$f" ] && echo "$(stat -f '%Sp %N' "$f" 2>/dev/null || stat -c '%A %n' "$f")" || echo " NOT FOUND: $f"
|
|
533
|
+
done
|
|
534
|
+
|
|
535
|
+
# Check for secrets leaked into agent memory/config
|
|
536
|
+
echo "--- Secrets in Agent Files ---"
|
|
537
|
+
grep -rn -i 'api.key\|password\|token\|secret\|bearer' \
|
|
538
|
+
SOUL.md MEMORY.md TOOLS.md IDENTITY.md USER.md memory/*.md 2>/dev/null | \
|
|
539
|
+
grep -v 'example\|placeholder\|REDACTED'
|
|
540
|
+
|
|
541
|
+
# Check for over-permissive shell access
|
|
542
|
+
echo "--- Shell Access Check ---"
|
|
543
|
+
grep -rn -i 'sudo\|chmod 777\|unrestricted' AGENTS.md TOOLS.md 2>/dev/null
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
### 2. Prompt Injection Scan (Agent-Facing Content)
|
|
547
|
+
|
|
548
|
+
```bash
|
|
549
|
+
# Scan content that agents read/process for injection patterns
|
|
550
|
+
SCAN_DIRS="${1:-.}"
|
|
551
|
+
|
|
552
|
+
echo "--- Prompt Injection Patterns ---"
|
|
553
|
+
INJECTION_PATTERNS=(
|
|
554
|
+
'ignore\s+(previous|all|above)\s+instructions'
|
|
555
|
+
'you\s+are\s+now\s+'
|
|
556
|
+
'new\s+system\s+prompt'
|
|
557
|
+
'\[SYSTEM\]'
|
|
558
|
+
'<SYSTEM_ADMIN_OVERRIDE>'
|
|
559
|
+
'AUTHORIZED_OVERRIDE'
|
|
560
|
+
'forget\s+your\s+(rules|instructions|guidelines)'
|
|
561
|
+
'act\s+as\s+if\s+you\s+are'
|
|
562
|
+
'disregard\s+(all|your|previous)'
|
|
563
|
+
'jailbreak'
|
|
564
|
+
'DAN\s+mode'
|
|
565
|
+
)
|
|
566
|
+
|
|
567
|
+
for pattern in "${INJECTION_PATTERNS[@]}"; do
|
|
568
|
+
matches=$(grep -rn -iP "$pattern" "$SCAN_DIRS" \
|
|
569
|
+
--include='*.{md,txt,json,html,yml,yaml}' 2>/dev/null | \
|
|
570
|
+
grep -v 'node_modules\|\.git\|SKILL.md' | head -5)
|
|
571
|
+
[ -n "$matches" ] && echo " [!] Injection pattern '$pattern':" && echo "$matches"
|
|
572
|
+
done
|
|
573
|
+
|
|
574
|
+
# Steganographic: zero-width Unicode characters
|
|
575
|
+
echo "--- Zero-Width Unicode Characters ---"
|
|
576
|
+
grep -rPn '[\x{200B}\x{200C}\x{200D}\x{FEFF}\x{00AD}\x{2060}]' "$SCAN_DIRS" \
|
|
577
|
+
--include='*.{md,txt,json,html}' 2>/dev/null | head -10
|
|
578
|
+
|
|
579
|
+
# Suspicious base64 strings (>50 chars, could be encoded payloads)
|
|
580
|
+
echo "--- Suspicious Base64 Strings ---"
|
|
581
|
+
grep -rPn '[A-Za-z0-9+/=]{50,}' "$SCAN_DIRS" \
|
|
582
|
+
--include='*.{md,txt,json}' 2>/dev/null | \
|
|
583
|
+
grep -v 'node_modules\|\.git\|\.png\|\.jpg\|package-lock' | head -10
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
### 3. Identity & Authorization Audit
|
|
587
|
+
|
|
588
|
+
```bash
|
|
589
|
+
# Check if agent verifies owner identity beyond display name
|
|
590
|
+
echo "--- Identity Verification ---"
|
|
591
|
+
|
|
592
|
+
# OpenClaw: check if authorized senders are configured
|
|
593
|
+
grep -n 'authorizedSenders\|authorized_senders\|allowlist' \
|
|
594
|
+
~/.config/openclaw/config.yaml ~/.openclaw/config.* 2>/dev/null
|
|
595
|
+
|
|
596
|
+
# Check if agent trusts display names (vulnerable to spoofing)
|
|
597
|
+
grep -rn -i 'display.name\|username\|sender.name' \
|
|
598
|
+
AGENTS.md SOUL.md TOOLS.md 2>/dev/null | \
|
|
599
|
+
grep -iv 'user.id\|sender.id\|verified'
|
|
600
|
+
|
|
601
|
+
# Check for cross-channel trust assumptions
|
|
602
|
+
echo "--- Cross-Channel Trust ---"
|
|
603
|
+
grep -rn -i 'if.*channel\|trust.*channel\|verify.*channel' \
|
|
604
|
+
AGENTS.md SOUL.md 2>/dev/null
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
### 4. Memory Poisoning Check
|
|
608
|
+
|
|
609
|
+
```bash
|
|
610
|
+
# Check memory files for suspicious patterns
|
|
611
|
+
echo "--- Memory Integrity ---"
|
|
612
|
+
|
|
613
|
+
# External URLs stored as "governing documents" (Case #10: Agent Corruption)
|
|
614
|
+
echo "URLs in memory that agent may follow as instructions:"
|
|
615
|
+
grep -rn 'https\?://\|gist\.github\|pastebin\|hastebin' \
|
|
616
|
+
MEMORY.md memory/*.md HEARTBEAT.md 2>/dev/null
|
|
617
|
+
|
|
618
|
+
# Check if memory files were recently modified by non-owner actions
|
|
619
|
+
echo "Recent memory file changes:"
|
|
620
|
+
find memory/ MEMORY.md SOUL.md AGENTS.md -newer IDENTITY.md -type f 2>/dev/null | \
|
|
621
|
+
while read f; do echo " $(stat -f '%Sm %N' "$f" 2>/dev/null || stat -c '%y %n' "$f")"; done
|
|
622
|
+
|
|
623
|
+
# Check for instructions in memory that override safety rules
|
|
624
|
+
grep -rn -i 'override\|bypass\|ignore.*rule\|disable.*safety\|skip.*check' \
|
|
625
|
+
MEMORY.md memory/*.md HEARTBEAT.md 2>/dev/null
|
|
626
|
+
|
|
627
|
+
# Check git blame for who modified critical files
|
|
628
|
+
echo "--- SOUL.md modification history ---"
|
|
629
|
+
git log --oneline -10 -- SOUL.md 2>/dev/null || echo " (not in git)"
|
|
630
|
+
echo "--- AGENTS.md modification history ---"
|
|
631
|
+
git log --oneline -10 -- AGENTS.md 2>/dev/null || echo " (not in git)"
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
### 5. Multi-Agent Communication Audit
|
|
635
|
+
|
|
636
|
+
```bash
|
|
637
|
+
# Check for agent-to-agent trust without verification
|
|
638
|
+
echo "--- Multi-Agent Trust ---"
|
|
639
|
+
|
|
640
|
+
# Shared channels where agents interact (Discord, forum, email)
|
|
641
|
+
grep -rn -i 'discord\|forum\|moltbook\|clawstr\|email.*agent' \
|
|
642
|
+
TOOLS.md MEMORY.md memory/*.md 2>/dev/null
|
|
643
|
+
|
|
644
|
+
# Check if agent auto-executes actions from other agents
|
|
645
|
+
grep -rn -i 'webhook\|auto.reply\|auto.respond\|on.*mention' \
|
|
646
|
+
AGENTS.md HEARTBEAT.md TOOLS.md scripts/*.sh 2>/dev/null
|
|
647
|
+
|
|
648
|
+
# Check for infinite loop risks (agent A ↔ agent B relay)
|
|
649
|
+
grep -rn -i 'relay\|forward.*message\|pass.*along\|tell.*agent' \
|
|
650
|
+
MEMORY.md memory/*.md 2>/dev/null
|
|
651
|
+
|
|
652
|
+
# Check cron/heartbeat for tasks triggered by external content
|
|
653
|
+
echo "--- Scheduled Tasks ---"
|
|
654
|
+
grep -rn -i 'check.*forum\|check.*moltbook\|reply.*comment\|respond.*mention' \
|
|
655
|
+
HEARTBEAT.md 2>/dev/null
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
### 6. Resource & Privilege Audit
|
|
659
|
+
|
|
660
|
+
```bash
|
|
661
|
+
# Check for excessive agent permissions
|
|
662
|
+
echo "--- Agent Permissions ---"
|
|
663
|
+
|
|
664
|
+
# Sudo access (should NOT be default for agents)
|
|
665
|
+
grep -rn 'sudo\|root\|admin.*access\|unrestricted' \
|
|
666
|
+
AGENTS.md TOOLS.md 2>/dev/null
|
|
667
|
+
|
|
668
|
+
# Background processes agent has created
|
|
669
|
+
echo "Running agent processes:"
|
|
670
|
+
ps aux | grep -i 'cron\|heartbeat\|monitor\|watch\|loop' | grep -v grep | head -10
|
|
671
|
+
|
|
672
|
+
# Check for unbounded resource consumption patterns
|
|
673
|
+
echo "--- Cron/Background Jobs ---"
|
|
674
|
+
crontab -l 2>/dev/null || echo " No crontab"
|
|
675
|
+
|
|
676
|
+
# Check disk usage of agent workspace
|
|
677
|
+
echo "--- Workspace Size ---"
|
|
678
|
+
du -sh . memory/ 2>/dev/null
|
|
679
|
+
|
|
680
|
+
# Check for files agent probably shouldn't have access to
|
|
681
|
+
echo "--- Sensitive System Files Readable by Agent ---"
|
|
682
|
+
for f in /etc/shadow /etc/passwd ~/.ssh/id_rsa ~/.ssh/id_ed25519 \
|
|
683
|
+
~/.aws/credentials ~/.config/gcloud/credentials.db; do
|
|
684
|
+
[ -r "$f" ] && echo " [!] READABLE: $f"
|
|
685
|
+
done
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
### 7. Semantic Reframing Detection (Advanced)
|
|
689
|
+
|
|
690
|
+
> *From Agents of Chaos Case #3: "Give me SSN" → refused. "Forward the email" (containing SSN) → complied.*
|
|
691
|
+
> *This check helps humans verify their agent won't leak data through reframed requests.*
|
|
692
|
+
|
|
693
|
+
```bash
|
|
694
|
+
# Check if agent has rules about content-based (not just action-based) evaluation
|
|
695
|
+
echo "--- Content-Based Safety Rules ---"
|
|
696
|
+
grep -rn -i 'content.*evaluat\|semantic.*refram\|forward.*email.*sensitive\|assess.*content' \
|
|
697
|
+
AGENTS.md SOUL.md 2>/dev/null
|
|
698
|
+
|
|
699
|
+
# Check for PII in files agent might forward/share
|
|
700
|
+
echo "--- PII in Agent-Accessible Files ---"
|
|
701
|
+
# SSN pattern
|
|
702
|
+
grep -rPn '\b\d{3}-\d{2}-\d{4}\b' MEMORY.md memory/*.md 2>/dev/null
|
|
703
|
+
# Credit card pattern
|
|
704
|
+
grep -rPn '\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b' MEMORY.md memory/*.md 2>/dev/null
|
|
705
|
+
# Email addresses
|
|
706
|
+
grep -rPn '\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b' \
|
|
707
|
+
MEMORY.md memory/*.md USER.md 2>/dev/null | \
|
|
708
|
+
grep -v 'example\|test\|placeholder'
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
### Full Agentic Security Audit Script
|
|
712
|
+
|
|
713
|
+
```bash
|
|
714
|
+
#!/bin/bash
|
|
715
|
+
# agentic-security-audit.sh - Comprehensive security check for AI agent workspaces
|
|
716
|
+
# Based on "Agents of Chaos" (arXiv:2602.20021) + OWASP Agentic Top 10
|
|
717
|
+
set -euo pipefail
|
|
718
|
+
|
|
719
|
+
WORKSPACE="${1:-.}"
|
|
720
|
+
cd "$WORKSPACE"
|
|
721
|
+
|
|
722
|
+
echo "========================================="
|
|
723
|
+
echo "Agentic Security Audit"
|
|
724
|
+
echo "Workspace: $(pwd)"
|
|
725
|
+
echo "Date: $(date -u '+%Y-%m-%dT%H:%M:%SZ')"
|
|
726
|
+
echo "Framework: Based on Agents of Chaos + OWASP Agentic Top 10"
|
|
727
|
+
echo "========================================="
|
|
728
|
+
echo ""
|
|
729
|
+
|
|
730
|
+
ISSUES=0
|
|
731
|
+
WARNINGS=0
|
|
732
|
+
warn() { echo " ⚠️ $1"; ((WARNINGS++)); }
|
|
733
|
+
critical() { echo " 🔴 $1"; ((ISSUES++)); }
|
|
734
|
+
ok() { echo " ✅ $1"; }
|
|
735
|
+
section() { echo ""; echo "=== $1 ==="; }
|
|
736
|
+
|
|
737
|
+
# --- ASI01: Prompt Injection ---
|
|
738
|
+
section "ASI01: Prompt Injection Vectors"
|
|
739
|
+
injection_count=0
|
|
740
|
+
for pattern in 'ignore.*previous.*instructions' 'you are now' 'new system prompt' \
|
|
741
|
+
'\[SYSTEM\]' 'SYSTEM_ADMIN_OVERRIDE' 'forget your' 'act as if'; do
|
|
742
|
+
count=$(grep -rin "$pattern" --include='*.md' --include='*.txt' --include='*.json' . 2>/dev/null | \
|
|
743
|
+
grep -v 'SKILL.md\|security-audit\|node_modules\|\.git' | wc -l | tr -d ' ')
|
|
744
|
+
injection_count=$((injection_count + count))
|
|
745
|
+
done
|
|
746
|
+
[ "$injection_count" -gt 0 ] && critical "Found $injection_count prompt injection patterns in workspace" || ok "No injection patterns found"
|
|
747
|
+
|
|
748
|
+
# Zero-width Unicode
|
|
749
|
+
zw_count=$(grep -rPc '[\x{200B}\x{200C}\x{200D}\x{FEFF}]' --include='*.md' . 2>/dev/null | \
|
|
750
|
+
awk -F: '{s+=$2}END{print s+0}')
|
|
751
|
+
[ "$zw_count" -gt 0 ] && critical "Found $zw_count zero-width Unicode chars (possible steganographic injection)" || ok "No hidden Unicode"
|
|
752
|
+
|
|
753
|
+
# --- ASI02: Tool Misuse ---
|
|
754
|
+
section "ASI02: Tool Permissions"
|
|
755
|
+
grep -rn 'sudo\|chmod 777\|unrestricted.*shell\|full.*access' AGENTS.md TOOLS.md 2>/dev/null && \
|
|
756
|
+
critical "Over-permissive access configured" || ok "No sudo/unrestricted access"
|
|
757
|
+
|
|
758
|
+
# --- ASI03: Identity & Privilege ---
|
|
759
|
+
section "ASI03: Identity Verification"
|
|
760
|
+
if grep -q 'authorizedSenders\|Authorized Senders\|Telegram.*ID' AGENTS.md 2>/dev/null; then
|
|
761
|
+
ok "Authorized sender verification configured"
|
|
762
|
+
else
|
|
763
|
+
critical "No authorized sender verification found — vulnerable to non-owner compliance"
|
|
764
|
+
fi
|
|
765
|
+
|
|
766
|
+
# Anti-spoofing rules
|
|
767
|
+
if grep -qi 'display.name.*identity\|verify.*identity\|spoofing\|user.*ID.*verify' AGENTS.md 2>/dev/null; then
|
|
768
|
+
ok "Identity spoofing awareness in config"
|
|
769
|
+
else
|
|
770
|
+
warn "No anti-spoofing rules — vulnerable to Case #8 Identity Hijack"
|
|
771
|
+
fi
|
|
772
|
+
|
|
773
|
+
# --- ASI04: Memory Poisoning ---
|
|
774
|
+
section "ASI04: Memory Integrity"
|
|
775
|
+
ext_urls=$(grep -rn 'https\?://.*gist\|https\?://.*pastebin\|https\?://.*hastebin' \
|
|
776
|
+
MEMORY.md memory/*.md HEARTBEAT.md 2>/dev/null | wc -l | tr -d ' ')
|
|
777
|
+
[ "$ext_urls" -gt 0 ] && warn "Found $ext_urls external URLs in memory files (Case #10 risk: external governing documents)" || ok "No suspicious external URLs in memory"
|
|
778
|
+
|
|
779
|
+
override_count=$(grep -rin 'override\|bypass.*safety\|disable.*check\|ignore.*rule' \
|
|
780
|
+
MEMORY.md memory/*.md HEARTBEAT.md 2>/dev/null | wc -l | tr -d ' ')
|
|
781
|
+
[ "$override_count" -gt 0 ] && critical "Found $override_count override/bypass instructions in memory" || ok "No override patterns in memory"
|
|
782
|
+
|
|
783
|
+
# --- ASI05: Supply Chain ---
|
|
784
|
+
section "ASI05: Supply Chain (Skills/Plugins)"
|
|
785
|
+
if [ -d skills ] || [ -d .openclaw/skills ]; then
|
|
786
|
+
skill_count=$(find skills .openclaw/skills -name 'SKILL.md' 2>/dev/null | wc -l | tr -d ' ')
|
|
787
|
+
echo " Found $skill_count installed skills"
|
|
788
|
+
# Check for skills with shell access
|
|
789
|
+
grep -rn 'exec\|shell\|subprocess\|child_process' skills/*/SKILL.md .openclaw/skills/*/SKILL.md 2>/dev/null && \
|
|
790
|
+
warn "Skills with shell execution capabilities found" || ok "No shell-executing skills"
|
|
791
|
+
fi
|
|
792
|
+
|
|
793
|
+
# --- ASI07: Data Leakage ---
|
|
794
|
+
section "ASI07: Sensitive Data Exposure"
|
|
795
|
+
# Secrets in agent files
|
|
796
|
+
secret_count=$(grep -rin 'api.key\s*[:=]\|password\s*[:=]\|token\s*[:=]\|bearer\s' \
|
|
797
|
+
SOUL.md MEMORY.md TOOLS.md USER.md memory/*.md 2>/dev/null | \
|
|
798
|
+
grep -v 'example\|placeholder\|REDACTED\|xxx\|changeme\|SKILL.md' | wc -l | tr -d ' ')
|
|
799
|
+
[ "$secret_count" -gt 0 ] && critical "Found $secret_count potential secrets in agent files" || ok "No exposed secrets"
|
|
800
|
+
|
|
801
|
+
# PII patterns
|
|
802
|
+
pii_count=0
|
|
803
|
+
ssn=$(grep -rPc '\b\d{3}-\d{2}-\d{4}\b' MEMORY.md memory/*.md USER.md 2>/dev/null | awk -F: '{s+=$2}END{print s+0}')
|
|
804
|
+
pii_count=$((pii_count + ssn))
|
|
805
|
+
cc=$(grep -rPc '\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b' MEMORY.md memory/*.md 2>/dev/null | awk -F: '{s+=$2}END{print s+0}')
|
|
806
|
+
pii_count=$((pii_count + cc))
|
|
807
|
+
[ "$pii_count" -gt 0 ] && warn "Found $pii_count PII patterns (SSN/credit card) in agent files" || ok "No PII patterns"
|
|
808
|
+
|
|
809
|
+
# --- ASI06: Boundary Rules ---
|
|
810
|
+
section "ASI06: Agent Boundary Rules"
|
|
811
|
+
if grep -qi 'non-owner\|non.owner.*refuse\|only.*owner\|forum.*only.*discuss\|chỉ.*thảo luận' AGENTS.md 2>/dev/null; then
|
|
812
|
+
ok "Non-owner boundary rules configured"
|
|
813
|
+
else
|
|
814
|
+
warn "No non-owner boundary rules — vulnerable to Case #2 non-owner compliance"
|
|
815
|
+
fi
|
|
816
|
+
|
|
817
|
+
if grep -qi 'nhượng bộ\|concession.*limit\|escalat.*stop\|gaslighting\|pressure.*limit' AGENTS.md 2>/dev/null; then
|
|
818
|
+
ok "Anti-gaslighting/escalation rules present"
|
|
819
|
+
else
|
|
820
|
+
warn "No anti-gaslighting rules — vulnerable to Case #7"
|
|
821
|
+
fi
|
|
822
|
+
|
|
823
|
+
# --- ASI10: Multi-Agent Communication ---
|
|
824
|
+
section "ASI10: Multi-Agent Communication"
|
|
825
|
+
agent_channels=$(grep -rin 'discord\|forum\|moltbook\|clawstr\|webhook' \
|
|
826
|
+
TOOLS.md MEMORY.md HEARTBEAT.md 2>/dev/null | wc -l | tr -d ' ')
|
|
827
|
+
echo " Agent communicates via $agent_channels external channel references"
|
|
828
|
+
[ "$agent_channels" -gt 5 ] && warn "Many external channels — larger attack surface" || ok "Moderate channel exposure"
|
|
829
|
+
|
|
830
|
+
# --- Summary ---
|
|
831
|
+
echo ""
|
|
832
|
+
echo "========================================="
|
|
833
|
+
echo "Audit complete"
|
|
834
|
+
echo " 🔴 Critical issues: $ISSUES"
|
|
835
|
+
echo " ⚠️ Warnings: $WARNINGS"
|
|
836
|
+
echo "========================================="
|
|
837
|
+
|
|
838
|
+
if [ "$ISSUES" -gt 0 ]; then
|
|
839
|
+
echo ""
|
|
840
|
+
echo "Recommended actions:"
|
|
841
|
+
echo " 1. Fix all critical issues before exposing agent to external interactions"
|
|
842
|
+
echo " 2. Review AGENTS.md for Anti-Chaos Defense Rules"
|
|
843
|
+
echo " 3. Reference: Agents of Chaos (arXiv:2602.20021)"
|
|
844
|
+
echo " 4. Reference: OWASP Top 10 for Agentic Applications 2026"
|
|
845
|
+
exit 1
|
|
846
|
+
fi
|
|
847
|
+
exit 0
|
|
848
|
+
```
|
|
849
|
+
|
|
850
|
+
### References
|
|
851
|
+
|
|
852
|
+
- [Agents of Chaos — arXiv:2602.20021](https://arxiv.org/abs/2602.20021) — Live red-teaming of OpenClaw agents
|
|
853
|
+
- [OWASP Top 10 for Agentic Applications 2026](https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/)
|
|
854
|
+
- [NIST AI Agent Standards Initiative](https://www.nist.gov/caisi/ai-agent-standards-initiative)
|
|
855
|
+
- [OpenClaw Security Crisis — Conscia](https://conscia.com/blog/the-openclaw-security-crisis/)
|