MCP Cybersec Watchdog README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the MCP Cybersec Watchdog listing page.

Chihuaudit

CI Lint CodeQL Trivy Snyk

OpenSSF Scorecard OpenSSF Best Practices SLSA Go Report Card


🎯 What is Chihuaudit?

A portable, single-binary system auditing tool for Linux. Like Lynis but faster and smarter.

No configuration needed. No dependencies. Just run.

bash
sudo ./chihuaudit audit

✨ Features

  • πŸ”’ Security: Firewall, SSH hardening, SSL/TLS, fail2ban, SUID binaries, open ports
  • πŸš€ Services: Systemd services, web servers, databases, Docker
  • πŸ’» Resources: CPU, RAM, disk usage, top processes
  • πŸ’Ύ Storage: SMART health, inode usage, filesystem errors
  • πŸ—„οΈ Databases: PostgreSQL, MySQL, Redis health checks
  • 🐳 Docker: Container status, resource usage, volumes
  • 🌐 Network: DNS resolution, latency, interfaces, connections
  • πŸ“¦ Backups: Backup detection and freshness checks
  • πŸ“ Logs: Error analysis, SSH attempts, service restarts
  • ⏰ Monitoring: Continuous mode with Discord webhook notifications

πŸ€– Claude Skill Alternative

Chihuaudit Skill

Don't want to install anything? Use the Claude Skill version instead!

Execute the same comprehensive system audit directly through Claude (Sonnet, Opus, or Haiku) using native shell commands - no binary installation required.

Key Benefits:

  • πŸš€ Zero Installation - Works immediately with sudo access
  • πŸ”„ Consistent Results - 1+ year of production use with extremely reliable output
  • πŸ“Š Same Coverage - All 87 checks, 10 categories, identical methodology
  • ⚑ Fast - 30-90 second execution time

Requirements: Linux with systemd, sudo NOPASSWD configured, Claude with shell access

Documentation: docs/skill/chihuaudit-skill.md


πŸš€ Quick Start

Build

bash
make build
# or
./build.sh

Run

bash
# Single audit
sudo ./bin/chihuaudit audit

# JSON output
sudo ./bin/chihuaudit audit --json

# Continuous monitoring
sudo ./bin/chihuaudit monitor --interval=5m

# Generate config
./bin/chihuaudit init-config

πŸ“Š Example Output

Terminal Output

Code
=== CHIHUAUDIT REPORT ===
Timestamp: 2026-02-05 12:38:27
Hostname: server.example.com
OS: Ubuntu 24.04.3 LTS

--- 1. SECURITY ---
Firewall: active (ufw) βœ“
SSH: active
SSH Port: 2244
SSH Password Auth: disabled βœ“
SSH Root Login: no βœ“
External Ports: [443, 80, 2244]
Localhost-Only Ports: [5432, 6379]
SSL Certificates: 5 (all valid)

--- 2. SERVICES ---
Total Running: 31
Failed: 0 βœ“
Web: caddy (active)
Database: postgresql (active)

[... 8 more categories ...]

Total Checks: 87

πŸ”§ Webhook Notifications

Chihuaudit supports webhook notifications for real-time monitoring alerts. While optimized for Discord, it works with any webhook-compatible service (Slack, Microsoft Teams, Mattermost, custom endpoints, etc.).

Discord Webhook Examples

Color-coded alerts: 🟒 Green (healthy), 🟑 Yellow (warnings), πŸ”΄ Red (critical)

Setup

bash
# Generate default config
./bin/chihuaudit init-config

# Edit configuration
nano ~/.chihuaudit/config.json

Configuration

config.json
{
  "discord_webhook": "https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN",
  "notification_whitelist": {
    "cpu_threshold": 70,
    "memory_threshold": 70,
    "disk_threshold": 85,
    "ignore_changes": ["uptime", "active_connections"]
  }
}

Webhook Compatibility

Discord (native support):

  • Rich embeds with color-coded alerts
  • Custom avatar and username
  • Timestamp and structured fields

Slack (works with minor format differences):

  • Use discord_webhook field with your Slack webhook URL
  • Embeds translate to Slack attachments
  • Colors and formatting preserved

Other services:

  • Any service accepting JSON POST with embeds field
  • Microsoft Teams incoming webhooks
  • Mattermost webhooks
  • Custom webhook handlers

Alert Thresholds

CPU Load: Trigger when load average exceeds threshold
Memory Usage: Alert on RAM usage percentage
Disk Space: Warning when disk usage crosses limit
Ignore List: Skip notifications for frequently changing metrics

Monitoring Mode

bash
# Monitor every 5 minutes with webhook alerts
sudo ./bin/chihuaudit monitor --interval=5m

Changes are detected and only significant events trigger notifications, reducing alert fatigue.

🎯 Design Philosophy

  • Universal: Works on any Linux distro without configuration
  • Portable: Single static binary, zero dependencies
  • Safe: Read-only checks, no system modifications
  • Fast: Parallel execution, ~1 second for full audit
  • Simple: Minimal code, maximum clarity
  • Automated: Perfect for CI/CD and monitoring

πŸ“– Documentation

πŸ—οΈ Architecture

Code
chihuaudit/
β”œβ”€β”€ main.go           # CLI entry point
β”œβ”€β”€ checks/           # 10 audit categories
β”‚   β”œβ”€β”€ security.go   # Firewall, SSH, SSL, ports
β”‚   β”œβ”€β”€ services.go   # Systemd, web, DB servers
β”‚   β”œβ”€β”€ resources.go  # CPU, RAM, disk
β”‚   └── ...
β”œβ”€β”€ detect/           # OS/tool detection
β”œβ”€β”€ notify/           # Discord webhooks
β”œβ”€β”€ report/           # Text/JSON formatters
└── state/            # Change tracking

🀝 Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

Keep code:

  • Simple: Minimal, readable, maintainable
  • Portable: Detection-based, no hardcoded paths
  • Safe: No shell injection, no user input in commands
  • Consistent: Follow existing patterns

πŸ“œ License

MIT License - see LICENSE for details


Made with ❀️ for sysadmins everywhere

License: MIT