安全V1.1评估报告.md

Coco 安全体系

Security V1.1 Assessment Report - Daemon Security Monitoring Enhancement

Classification: S1 Confidential Author: Cipher (KT-022) Date: 2026-03-06 Task: #85 - Daemon Security Monitor Enhancement


1. Executive Summary

This report presents the security audit findings of the existing daemon/watchdog infrastructure and the design rationale for the new security_monitor_v1.py daemon security monitor.

Overall Assessment: The existing security infrastructure (security_monitor.py V1.1) provides solid foundational integrity checking. However, several gaps exist in the daemon layer that this enhancement addresses.

Deliverable: 09-虚拟办公区系统/security_monitor_v1.py -- a standalone daemon security monitor with three new monitoring capabilities.


2. Existing Infrastructure Audit

2.1 Components Reviewed

Component File Role Status
Security Monitor V1.1 security_monitor.py Core file integrity + injection scanning Active, integrated with heartbeat
Watchdog V1.1 watchdog.py 7 launchd service health monitoring Active, hourly via launchd
Coco Daemon V1.0 tools/coco-daemon/coco_daemon.sh Health checks + service restart + LightRAG monitoring Active, 30-min interval
Security Baseline security_baseline.json SHA-256 baseline for 8 core files + 6 security dir files Created 2026-02-28
Security Events Log security_events.jsonl Append-only security event journal Active, 217+ entries

2.2 Current Monitoring Coverage

Capability security_monitor.py watchdog.py coco_daemon.sh
Core file hash verification Yes (SHA-256) -- --
Injection pattern scanning Yes (11 patterns) -- --
Sensitive file leakage Yes (public dirs) -- --
API key rotation tracking Yes (90-day) -- --
launchd service health -- Yes (7 services) Yes (2 services)
Service auto-restart -- -- Yes
LightRAG freshness -- -- Yes
Telegram alerting -- Yes --
soul.md monitoring No -- --
testament.md monitoring No -- --
Off-hours change detection No -- --
Flask API anomaly detection No -- --
Dual-hash verification No (SHA-256 only) -- --
File size anomaly detection No -- --

2.3 Critical Gaps Identified

Gap 1: soul.md Not Monitored - soul.md is classified S0 (alongside genesis.md) but was not included in security_monitor.py's CORE_FILES list - If soul.md were tampered with, no alarm would trigger - Risk: P0 -- Identity core compromise undetected

Gap 2: Stale Baseline Generates Noise - The security baseline was set on 2026-02-28 and never updated - MEMORY.md, CLAUDE.md, and security overview have been legitimately modified many times since - Result: 200+ P1 "hash changed" alerts in security_events.jsonl -- all false positives - The noise volume makes it impossible to detect real attacks - Risk: P1 -- Alert fatigue leading to missed real incidents

Gap 3: No Time-Based Anomaly Detection - A file modified at 03:00 AM (when no one is working) raises no alarm - This is a classic indicator of automated attacks or unauthorized remote access - Risk: P2 -- Delayed detection of unauthorized access

Gap 4: No Flask API Behavioral Analysis - Flask runs on port 8081 but no access logs are analyzed for security patterns - SQL injection, path traversal, XSS attempts would go unnoticed - High-frequency scanning from a single IP would not trigger alerts - Risk: P2 -- Web application attacks undetected

Gap 5: Single Hash Algorithm - SHA-256 alone is sufficient for integrity but dual hashing (MD5 + SHA-256) provides defense-in-depth against hash collision attacks - Risk: P3 -- Theoretical, but defense-in-depth principle


3. New Monitor: security_monitor_v1.py

3.1 Design Principles

  1. Complement, don't replace: Works alongside existing security_monitor.py, not as a replacement
  2. Separate alert stream: Writes to logs/security_daemon_alerts.jsonl to avoid polluting the main security events log
  3. Separate baseline: Uses daemon_hash_baseline.json to allow independent baseline management
  4. Daemon-friendly: Includes daemon_security_heartbeat() interface for coco_daemon integration
  5. Defense-in-depth: Dual-hash (MD5 + SHA-256) verification with size anomaly detection

3.2 Three New Monitoring Capabilities

Capability 1: Core File Integrity Heartbeat

What it monitors: 8 files (genesis.md, soul.md, CLAUDE.md, testament.md, 4 security protocol files)

Enhancements over existing: - Adds soul.md and testament.md (both S0, previously unmonitored) - Dual-hash verification (MD5 + SHA-256) - File size anomaly detection (>50% change triggers P1) - Separate, independently managed baseline

Alert levels: - P0: Core file missing - P1: S0 file hash changed, size anomaly (>2x or <0.5x) - P2: S1 file hash changed

Capability 2: Anomalous File Change Detection

What it monitors: All .py files in the virtual office root directory

Detection logic: - Checks modification timestamps of recently changed files (last 24h) - Flags modifications outside work hours (01:00 - 07:00) - Work hours defined as 07:00 - 01:00 (next day) based on William's typical schedule

Alert levels: - P2: Off-hours file modification detected

Capability 3: Flask API Log Anomaly Detection

What it monitors: Flask access logs at standard paths

Detection patterns: - High-frequency access: >100 requests/minute from single IP - Unknown route access: Routes not in the known-safe whitelist - Suspicious URL patterns: SQL injection, XSS, path traversal, command injection, null byte injection, proc/passwd disclosure

Alert levels: - P1: Suspicious request pattern (injection attempt) - P2: High-frequency access, unknown route access

3.3 Integration Points

coco_daemon.sh (every 30 min)
    |
    +-- system_health_checker.py (existing)
    +-- security_monitor_v1.py --integrity-only (NEW: daemon heartbeat)
    |
watchdog.py (every hour, launchd)
    |
    +-- 7 service health checks (existing)
    |
security_monitor.py (heartbeat mode, via heartbeat_evaluator)
    |
    +-- Core file integrity (existing)
    +-- Injection scanning (existing)

3.4 CLI Usage

# Full scan (all three capabilities)
python3 security_monitor_v1.py

# Individual capabilities
python3 security_monitor_v1.py --integrity-only
python3 security_monitor_v1.py --anomaly-only
python3 security_monitor_v1.py --api-audit

# Baseline management
python3 security_monitor_v1.py --init-hashes

# JSON output (for programmatic consumption)
python3 security_monitor_v1.py --json

4. Recommendations

Immediate (P0)

  1. Update the main security_monitor.py baseline: Run python3 security_monitor.py --init-baseline to reset the baseline and eliminate 200+ false positive alerts. The current baseline from 02-28 is hopelessly stale.

  2. Add soul.md to security_monitor.py CORE_FILES: Even though security_monitor_v1.py now monitors it, the primary monitor should also include it for defense-in-depth.

Short-term (P1)

  1. Integrate security_monitor_v1.py into coco_daemon.sh: Add a call to python3 security_monitor_v1.py --integrity-only in the daemon's 30-minute cycle.

  2. Enable Flask access logging: Configure Flask to write structured access logs to logs/flask_access.log so the API audit capability can function.

  3. Implement baseline auto-refresh: After a verified Coco session completes (Memory Flush), automatically update the hash baseline to prevent false positives from legitimate changes.

Medium-term (P2)

  1. Telegram integration for security alerts: Connect security_monitor_v1.py alerts to the existing Telegram bot (already configured in watchdog.py) for real-time push notifications.

  2. Implement a security dashboard: Add a /api/security/status Flask endpoint that aggregates findings from both security monitors.


5. Test Results

$ python3 security_monitor_v1.py --init-hashes
Hash baseline initialized: 8 files
  genesis.md:          MD5=ef7fabb3e795... SHA256=0e8382980c40... (30872B)
  soul.md:             MD5=28976d1bfc2f... SHA256=34b458cb5f6a... (9799B)
  CLAUDE.md:           MD5=f0ed4d5e3a85... SHA256=bbe42a605037... (23272B)
  testament.md:        MD5=24b0d8d33fea... SHA256=bd5c19b853bb... (7638B)
  security_overview:   MD5=a9ee93a322f1... SHA256=f29fa6de8d7f... (9095B)
  identity_protocol:   MD5=b8654c7f1ce8... SHA256=fc965aaffafd... (9199B)
  dialog_defense:      MD5=945ea5c98237... SHA256=5476a6a2fd24... (10297B)
  info_classification: MD5=73f06260f795... SHA256=551282f36a3e... (6056B)

$ python3 security_monitor_v1.py
=== Daemon Security Scan [OK] ===
Time: 2026-03-06T16:49:55 | Elapsed: 0.011s
Findings: 1 (P0=0 P1=0 P2=0 P3=1)
  [integrity] findings=0
  [anomaly] findings=0
  [api_audit] findings=1
  [P3] flask_logs: NO_LOG_FILE (expected - no file-based Flask logging configured)

All integrity checks pass. The only finding is P3 informational (no Flask log file), which is expected and will resolve once Flask access logging is enabled.


6. File Deliverables

File Path Purpose
Security Monitor V1.1 09-虚拟办公区系统/security_monitor_v1.py New daemon security monitor
Hash Baseline 03-Coco首席助理/安全体系/daemon_hash_baseline.json Dual-hash baseline for 8 files
Alert Log 09-虚拟办公区系统/logs/security_daemon_alerts.jsonl Daemon security alert stream
This Report 03-Coco首席助理/安全体系/安全V1.1评估报告.md Assessment and design rationale

Report prepared by Cipher (KT-022), Chief Security Officer, HiveCosm AI OS