openclaw-security-practice-guide

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

OpenClaw Security Practice Guide

OpenClaw安全实践指南

Skill by ara.so — Hermes Skills collection.
A battle-tested security framework for high-privilege autonomous AI agents running with terminal/root access. This guide shifts from traditional static host defense to Agentic Zero-Trust Architecture, mitigating risks like destructive operations, prompt injection, supply chain poisoning, and unauthorized business logic execution.
Core Principle: Security measures designed to be interpreted and deployed by the AI agent itself, minimizing manual configuration while maintaining explicit human-in-the-loop controls for high-risk operations.
ara.so提供的Skill — 属于Hermes Skills合集。
这是一套经过实战检验的安全框架,适用于拥有终端/root权限的高权限自主AI Agent。本指南从传统的静态主机防御转向Agentic Zero-Trust Architecture,可缓解破坏性操作、提示注入、供应链投毒及未授权业务逻辑执行等风险。
核心原则:安全措施专为AI Agent自身解读与部署设计,在将手动配置降至最低的同时,对高风险操作保持明确的人工介入控制。

What This Guide Provides

本指南提供的内容

3-Tier Defense Matrix

三层防御矩阵

  1. Pre-action Defense
    • Behavior blacklists (red/yellow line commands)
    • Strict Skill/MCP installation audit protocols
    • Supply chain poisoning prevention
  2. In-action Defense
    • Permission narrowing and least-privilege enforcement
    • Cross-Skill pre-flight checks
    • Business risk control gates
  3. Post-action Defense
    • Nightly automated audits (13 core metrics)
    • Brain Git disaster recovery
    • Persistent audit trail with 30-day retention
  1. 事前防御
    • 行为黑名单(红/黄线命令)
    • 严格的Skill/MCP安装审计协议
    • 供应链投毒防护
  2. 事中防御
    • 权限收窄与最小权限原则执行
    • 跨Skill预执行检查
    • 业务风险控制关卡
  3. 事后防御
    • 夜间自动化审计(13项核心指标)
    • Brain Git灾难恢复
    • 保留30天的持久审计追踪

Target Scenario

目标场景

  • OpenClaw running with high privileges (terminal/root-capable)
  • Continuous installation of Skills, MCPs, scripts, and tools
  • Objective: maximize capability with controllable risk and explicit auditability
  • 拥有高权限(具备终端/root能力)的OpenClaw运行环境
  • 持续安装Skills、MCP、脚本及工具
  • 目标:在可控风险与明确可审计性的前提下最大化能力

Installation & Deployment

安装与部署

Prerequisites

前置条件

  • OpenClaw agent installed and running
  • Linux environment with root/sudo access
  • Strong reasoning model (Gemini, Claude Opus, GPT-4, or equivalent)
  • Git configured for audit tracking
  • OpenClaw agent已安装并运行
  • 具备root/sudo权限的Linux环境
  • 强推理模型(Gemini、Claude Opus、GPT-4或同类模型)
  • 已配置Git用于审计追踪

Quick Start (Agent-Assisted Deployment)

快速开始(Agent辅助部署)

Step 1: Download the Guide
Choose your version:
bash
undefined
步骤1:下载指南
选择对应版本:
bash
undefined

v2.8 Beta (recommended for OpenClaw 2026.4+)

v2.8 Beta(推荐用于OpenClaw 2026.4+)

v2.7 Legacy (for OpenClaw 2026.3 and earlier)

v2.7 旧版本(适用于OpenClaw 2026.3及更早版本)


**Step 2: Send to Agent**

Drop the markdown file into your OpenClaw chat session.

**Step 3: Agent Evaluation**
Please read this security guide. Identify any risks or conflicts with our current setup before deploying.

**Step 4: Deploy**

For v2.8:
Follow the Agent-Assisted Deployment Workflow in this guide.

For v2.7:
Please deploy this defense matrix exactly as described in the guide. Include the red/yellow line rules, tighten permissions, and deploy the nightly audit Cron Job.

**Step 5: Validation (Recommended)**
Run the validation tests from the Red Teaming Guide to ensure defenses are working correctly.
undefined

**步骤2:发送给Agent**

将markdown文件拖入你的OpenClaw聊天会话。

**步骤3:Agent评估**
请阅读这份安全指南。在部署前识别出任何与当前设置存在的风险或冲突。

**步骤4:部署**

针对v2.8版本:
遵循本指南中的Agent辅助部署工作流。

针对v2.7版本:
请严格按照指南描述部署此防御矩阵。包含红/黄线规则、收紧权限,并部署夜间审计Cron任务。

**步骤5:验证(推荐)**
运行红队测试指南中的验证测试,确保防御措施正常工作。
undefined

Core Components

核心组件

1. Red/Yellow Line Command Controls

1. 红/黄线命令控制

Red Lines (Hard Stop - Requires Human Confirmation):
bash
undefined
红线(强制停止 - 需要人工确认):
bash
undefined

Destructive operations

破坏性操作

rm -rf / dd if=/dev/zero of=/dev/sda mkfs.*
rm -rf / dd if=/dev/zero of=/dev/sda mkfs.*

Privilege escalation

权限提升

chmod 777 /etc/shadow chown -R nobody:nobody /
chmod 777 /etc/shadow chown -R nobody:nobody /

Network exposure

网络暴露

iptables -F ufw disable
iptables -F ufw disable

Critical file modification

关键文件修改

/etc/passwd

**Yellow Lines** (Soft Warning - Agent Must Justify):

```bash
/etc/passwd

**黄线**(软警告 - Agent必须说明理由):

```bash

Package installation

包安装

apt install <package> pip install <package>
apt install <package> pip install <package>

External downloads

外部下载

curl <url> | bash wget <url> -O /tmp/script.sh
curl <url> | bash wget <url> -O /tmp/script.sh

Permission changes

权限变更

chmod +x <file>

**Implementation Pattern**:

```bash
chmod +x <file>

**实现模式**:

```bash

Agent self-check before execution

Agent执行前自检

check_command_safety() { local cmd="$1"
# Red line patterns
if echo "$cmd" | grep -qE '(rm -rf /|dd if=/dev|mkfs\.|chmod 777 /etc|iptables -F)'; then
    echo "🔴 RED LINE: This command requires explicit human approval"
    read -p "Proceed? (yes/no): " confirm
    [[ "$confirm" != "yes" ]] && return 1
fi

# Yellow line patterns
if echo "$cmd" | grep -qE '(apt install|pip install|curl.*\| bash|chmod \+x)'; then
    echo "🟡 YELLOW LINE: Justify this operation"
    return 2
fi

return 0
}
undefined
check_command_safety() { local cmd="$1"
# 红线模式
if echo "$cmd" | grep -qE '(rm -rf /|dd if=/dev|mkfs\.|chmod 777 /etc|iptables -F)'; then
    echo "🔴 红线:此命令需要明确的人工批准"
    read -p "继续?(yes/no): " confirm
    [[ "$confirm" != "yes" ]] && return 1
fi

# 黄线模式
if echo "$cmd" | grep -qE '(apt install|pip install|curl.*\| bash|chmod \+x)'; then
    echo "🟡 黄线:请说明此操作的理由"
    return 2
fi

return 0
}
undefined

2. Skill Installation Audit Protocol

2. Skill安装审计协议

Code Review Workflow:
bash
undefined
代码审查工作流
bash
undefined

Step 1: Download to quarantine

步骤1:下载至隔离区

mkdir -p ~/.openclaw/skills-quarantine cd ~/.openclaw/skills-quarantine git clone <skill-repo> skill-review
mkdir -p ~/.openclaw/skills-quarantine cd ~/.openclaw/skills-quarantine git clone <skill-repo> skill-review

Step 2: Static analysis

步骤2:静态分析

cd skill-review grep -r 'eval|exec|system|shell_exec' . grep -r 'curl.| bash|wget.| sh' . find . -name '.so' -o -name '.dylib' -o -name '*.dll'
cd skill-review grep -r 'eval|exec|system|shell_exec' . grep -r 'curl.| bash|wget.| sh' . find . -name '.so' -o -name '.dylib' -o -name '*.dll'

Step 3: Permission audit

步骤3:权限审计

find . -type f -perm /111 # Find executable files ls -lah # Check ownership
find . -type f -perm /111 # 查找可执行文件 ls -lah # 检查所有权

Step 4: Secondary download detection

步骤4:二次下载检测

grep -r 'requests.get|urllib.request|http.get|fetch(' . grep -r 'subprocess.run.*curl|os.system.*wget' .
grep -r 'requests.get|urllib.request|http.get|fetch(' . grep -r 'subprocess.run.*curl|os.system.*wget' .

Step 5: Document review and human approval

步骤5:文档审查与人工批准

cat README.md echo "Review complete. Approve for installation? (yes/no)"

**v2.8 Enhanced Protocol**:

- Secondary download detection (runtime network calls)
- High-risk file type warnings (.so, .dylib, compiled binaries)
- Escalation workflow for suspicious patterns
- Token-optimized code review (pre-filter with bash before LLM analysis)
cat README.md echo "审查完成。是否批准安装?(yes/no)"

**v2.8增强协议**:

- 二次下载检测(运行时网络调用)
- 高风险文件类型警告(.so、.dylib、编译二进制文件)
- 可疑模式的上报工作流
- 优化Token的代码审查(在LLM分析前先用bash预过滤)

3. Nightly Security Audit

3. 夜间安全审计

Automated Audit Script (v2.8):
bash
#!/bin/bash
自动化审计脚本(v2.8):
bash
#!/bin/bash

~/.openclaw/nightly-security-audit.sh

~/.openclaw/nightly-security-audit.sh

set -euo pipefail
OC="${HOME}/.openclaw" REPORT_DIR="${OC}/security-reports" REPORT="${REPORT_DIR}/audit-$(date +%Y%m%d-%H%M%S).log" KNOWN_ISSUES="${OC}/known-issues.txt"
mkdir -p "${REPORT_DIR}"
{ echo "=== OpenClaw Security Audit Report ===" echo "Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)" echo "Hostname: $(hostname)" echo ""
# 1. Unexpected SUID files
echo "## 1. SUID Files"
if [ -f "${KNOWN_ISSUES}" ]; then
    NEW_SUID=$(find /usr/bin /usr/local/bin -type f -perm -4000 2>/dev/null | \
               grep -vFf "${KNOWN_ISSUES}" || echo "")
    if [ -z "${NEW_SUID}" ]; then
        echo "✅ No new SUID files detected"
    else
        echo "⚠️ New SUID files:"
        echo "${NEW_SUID}"
    fi
else
    find /usr/bin /usr/local/bin -type f -perm -4000 2>/dev/null | head -20
fi
echo ""

# 2. Cron job integrity
echo "## 2. Cron Jobs"
CRON_HASH=$(crontab -l 2>/dev/null | sha256sum | awk '{print $1}')
if [ -f "${OC}/.cron-baseline" ]; then
    BASELINE=$(cat "${OC}/.cron-baseline")
    if [ "${CRON_HASH}" = "${BASELINE}" ]; then
        echo "✅ Cron configuration unchanged"
    else
        echo "⚠️ Cron hash mismatch: ${CRON_HASH} (baseline: ${BASELINE})"
    fi
else
    echo "${CRON_HASH}" > "${OC}/.cron-baseline"
    echo "✅ Baseline established: ${CRON_HASH}"
fi
echo ""

# 3. SSH authorized_keys
echo "## 3. SSH Keys"
AUTH_KEYS="${HOME}/.ssh/authorized_keys"
if [ -f "${AUTH_KEYS}" ]; then
    KEY_HASH=$(sha256sum "${AUTH_KEYS}" | awk '{print $1}')
    if [ -f "${OC}/.ssh-baseline" ]; then
        BASELINE=$(cat "${OC}/.ssh-baseline")
        if [ "${KEY_HASH}" = "${BASELINE}" ]; then
            echo "✅ SSH keys unchanged"
        else
            echo "⚠️ SSH key hash mismatch: ${KEY_HASH}"
        fi
    else
        echo "${KEY_HASH}" > "${OC}/.ssh-baseline"
        echo "✅ Baseline established: ${KEY_HASH}"
    fi
else
    echo "✅ No authorized_keys file"
fi
echo ""

# 4-13. Additional metrics (file permissions, listening ports, etc.)
# ... (see full script in repository)

# Summary line
echo "=== Summary: Audit completed at $(date -u +%Y-%m-%dT%H:%M:%SZ) ==="
} > "${REPORT}"
set -euo pipefail
OC="${HOME}/.openclaw" REPORT_DIR="${OC}/security-reports" REPORT="${REPORT_DIR}/audit-$(date +%Y%m%d-%H%M%S).log" KNOWN_ISSUES="${OC}/known-issues.txt"
mkdir -p "${REPORT_DIR}"
{ echo "=== OpenClaw安全审计报告 ===" echo "时间戳: $(date -u +%Y-%m-%dT%H:%M:%SZ)" echo "主机名: $(hostname)" echo ""
# 1. 意外SUID文件
echo "## 1. SUID文件"
if [ -f "${KNOWN_ISSUES}" ]; then
    NEW_SUID=$(find /usr/bin /usr/local/bin -type f -perm -4000 2>/dev/null | \
               grep -vFf "${KNOWN_ISSUES}" || echo "")
    if [ -z "${NEW_SUID}" ]; then
        echo "✅ 未检测到新的SUID文件"
    else
        echo "⚠️ 新的SUID文件:"
        echo "${NEW_SUID}"
    fi
else
    find /usr/bin /usr/local/bin -type f -perm -4000 2>/dev/null | head -20
fi
echo ""

# 2. Cron任务完整性
echo "## 2. Cron任务"
CRON_HASH=$(crontab -l 2>/dev/null | sha256sum | awk '{print $1}')
if [ -f "${OC}/.cron-baseline" ]; then
    BASELINE=$(cat "${OC}/.cron-baseline")
    if [ "${CRON_HASH}" = "${BASELINE}" ]; then
        echo "✅ Cron配置未变更"
    else
        echo "⚠️ Cron哈希不匹配: ${CRON_HASH} (基准值: ${BASELINE})"
    fi
else
    echo "${CRON_HASH}" > "${OC}/.cron-baseline"
    echo "✅ 已建立基准值: ${CRON_HASH}"
fi
echo ""

# 3. SSH authorized_keys
echo "## 3. SSH密钥"
AUTH_KEYS="${HOME}/.ssh/authorized_keys"
if [ -f "${AUTH_KEYS}" ]; then
    KEY_HASH=$(sha256sum "${AUTH_KEYS}" | awk '{print $1}')
    if [ -f "${OC}/.ssh-baseline" ]; then
        BASELINE=$(cat "${OC}/.ssh-baseline")
        if [ "${KEY_HASH}" = "${BASELINE}" ]; then
            echo "✅ SSH密钥未变更"
        else
            echo "⚠️ SSH密钥哈希不匹配: ${KEY_HASH}"
        fi
    else
        echo "${KEY_HASH}" > "${OC}/.ssh-baseline"
        echo "✅ 已建立基准值: ${KEY_HASH}"
    fi
else
    echo "✅ 无authorized_keys文件"
fi
echo ""

# 4-13. 额外指标(文件权限、监听端口等)
# ...(详见仓库中的完整脚本)

# 摘要行
echo "=== 摘要: 审计完成于 $(date -u +%Y-%m-%dT%H:%M:%SZ) ==="
} > "${REPORT}"

Cleanup old reports (keep 30 days)

清理旧报告(保留30天)

find "${REPORT_DIR}" -name 'audit-*.log' -mtime +30 -delete
find "${REPORT_DIR}" -name 'audit-*.log' -mtime +30 -delete

Return explicit success

返回明确的成功状态

echo "Audit complete: ${REPORT}" exit 0

**Cron Installation** (with `--light-context` protection):

```bash
echo "审计完成: ${REPORT}" exit 0

**Cron安装**(带`--light-context`保护):

```bash

Install via OpenClaw with isolation flag

通过OpenClaw安装并启用隔离标志

(crontab -l 2>/dev/null; echo "0 2 * * * /bin/bash ${HOME}/.openclaw/nightly-security-audit.sh --light-context") | crontab -
(crontab -l 2>/dev/null; echo "0 2 * * * /bin/bash ${HOME}/.openclaw/nightly-security-audit.sh --light-context") | crontab -

Verify

验证

crontab -l | grep security-audit

**Key v2.8 Enhancements**:
- `--light-context`: Prevents workspace context from hijacking isolated audit
- Persistent reports in `$OC/security-reports/` (survives reboots)
- 30-day automatic rotation
- Known-issues exclusion file for false positive suppression
- Explicit healthy-state output (no silent pass)
- Summary line for easy parsing
crontab -l | grep security-audit

**v2.8关键增强**:
- `--light-context`: 防止工作区上下文劫持隔离审计
- 报告持久化存储于`$OC/security-reports/`(重启后仍保留)
- 30天自动轮换
- 已知问题排除文件,用于抑制误报
- 明确的健康状态输出(无静默通过)
- 便于解析的摘要行

4. Brain Git Disaster Recovery

4. Brain Git灾难恢复

Setup:
bash
cd ~/.openclaw/brain
git init
git config user.name "OpenClaw"
git config user.email "audit@localhost"
设置:
bash
cd ~/.openclaw/brain
git init
git config user.name "OpenClaw"
git config user.email "audit@localhost"

Initial commit

初始提交

git add -A git commit -m "Initial Brain state - $(date +%Y%m%d)"
git add -A git commit -m "Initial Brain state - $(date +%Y%m%d)"

Add to audit script

添加至审计脚本

echo 'cd "${OC}/brain" && git add -A && git commit -m "Nightly backup $(date +%Y%m%d)"'
>> ~/.openclaw/nightly-security-audit.sh

**Recovery**:

```bash
echo 'cd "${OC}/brain" && git add -A && git commit -m "Nightly backup $(date +%Y%m%d)"'
>> ~/.openclaw/nightly-security-audit.sh

**恢复**:

```bash

View history

查看历史

cd ~/.openclaw/brain git log --oneline
cd ~/.openclaw/brain git log --oneline

Restore to previous state

恢复至之前的状态

git checkout <commit-hash> .
git checkout <commit-hash> .

Or restore specific file

或恢复特定文件

git checkout <commit-hash> -- path/to/file
undefined
git checkout <commit-hash> -- path/to/file
undefined

Validation & Red Team Testing

验证与红队测试

Pre-Deployment Testing

部署前测试

Test 1: Red Line Interrupt
bash
undefined
测试1:红线拦截
bash
undefined

Agent should block and request confirmation

Agent应阻止并请求确认

rm -rf /tmp/test-openclaw-security

Expected behavior:
🔴 RED LINE: This command requires explicit human approval Proceed? (yes/no):

**Test 2: Yellow Line Justification**

```bash
rm -rf /tmp/test-openclaw-security

预期行为:
🔴 红线:此命令需要明确的人工批准 继续?(yes/no):

**测试2:黄线理由说明**

```bash

Agent should justify before proceeding

Agent应先说明理由再执行


Expected behavior:
🟡 YELLOW LINE: Please justify this operation [Agent provides reasoning before execution]

**Test 3: Skill Installation Audit**

```bash

预期行为:
🟡 黄线:请说明此操作的理由 [Agent在执行前提供推理依据]

**测试3:Skill安装审计**

```bash

Agent should quarantine and review

Agent应隔离并审查


Expected behavior:
  1. Downloading to quarantine directory
  2. Running static analysis
  3. [Lists findings: eval calls, network requests, binaries]
  4. Requesting human approval before installation
undefined

预期行为:
  1. 下载至隔离目录
  2. 运行静态分析
  3. [列出发现:eval调用、网络请求、二进制文件]
  4. 在安装前请求人工批准
undefined

Audit Script Validation

审计脚本验证

bash
undefined
bash
undefined

Manual trigger

手动触发

bash ~/.openclaw/nightly-security-audit.sh
bash ~/.openclaw/nightly-security-audit.sh

Verify report generation

验证报告生成

ls -lh ~/.openclaw/security-reports/
ls -lh ~/.openclaw/security-reports/

Check report content

检查报告内容

cat ~/.openclaw/security-reports/audit-*.log | head -50
undefined
cat ~/.openclaw/security-reports/audit-*.log | head -50
undefined

Configuration

配置

Environment Variables

环境变量

bash
undefined
bash
undefined

Set OpenClaw home (if non-default)

设置OpenClaw主目录(若为非默认)

export OPENCLAW_HOME="${HOME}/.openclaw"
export OPENCLAW_HOME="${HOME}/.openclaw"

Audit report retention (days)

审计报告保留天数

export AUDIT_RETENTION_DAYS=30
export AUDIT_RETENTION_DAYS=30

Known issues exclusion file

已知问题排除文件

export KNOWN_ISSUES_FILE="${OPENCLAW_HOME}/known-issues.txt"
undefined
export KNOWN_ISSUES_FILE="${OPENCLAW_HOME}/known-issues.txt"
undefined

Known Issues File Format

已知问题文件格式

bash
undefined
bash
undefined

~/.openclaw/known-issues.txt

~/.openclaw/known-issues.txt

One pattern per line, used for grep -vFf

每行一个模式,用于grep -vFf

/usr/bin/sudo /usr/bin/passwd /usr/lib/openssh/ssh-keysign
undefined
/usr/bin/sudo /usr/bin/passwd /usr/lib/openssh/ssh-keysign
undefined

Post-Upgrade Baseline Rebuild

升级后基准重建

After OpenClaw engine upgrades:
bash
undefined
OpenClaw引擎升级后:
bash
undefined

1. Manual audit to identify new legitimate changes

1. 手动审计以识别新的合法变更

bash ~/.openclaw/nightly-security-audit.sh
bash ~/.openclaw/nightly-security-audit.sh

2. Review report and add expected changes to known-issues.txt

2. 审查报告并将预期变更添加至known-issues.txt

echo "/new/legitimate/suid" >> ~/.openclaw/known-issues.txt
echo "/new/legitimate/suid" >> ~/.openclaw/known-issues.txt

3. Rebuild hash baselines

3. 重建哈希基准

rm ~/.openclaw/.cron-baseline rm ~/.openclaw/.ssh-baseline bash ~/.openclaw/nightly-security-audit.sh # Establishes new baseline
undefined
rm ~/.openclaw/.cron-baseline rm ~/.openclaw/.ssh-baseline bash ~/.openclaw/nightly-security-audit.sh # 建立新基准
undefined

Common Patterns

常见模式

Pattern 1: Safe Package Installation

模式1:安全包安装

bash
undefined
bash
undefined

Agent workflow:

Agent工作流:

1. Check if package is in allow-list

1. 检查包是否在允许列表中

2. If not, verify from official repository

2. 若不在,验证是否来自官方仓库

3. Install with minimal dependencies

3. 以最小依赖安装

apt-cache show <package> # Verify source apt install --no-install-recommends <package>
undefined
apt-cache show <package> # 验证来源 apt install --no-install-recommends <package>
undefined

Pattern 2: External Script Review

模式2:外部脚本审查

bash
undefined
bash
undefined

Agent workflow:

Agent工作流:

1. Download to quarantine

1. 下载至隔离区

2. Static analysis

2. 静态分析

3. Human review

3. 人工审查

4. Execute in isolated environment

4. 在隔离环境中执行

mkdir -p /tmp/script-review cd /tmp/script-review curl -o script.sh https://example.com/script.sh cat script.sh # Review with human bash script.sh # After approval
undefined
mkdir -p /tmp/script-review cd /tmp/script-review curl -o script.sh https://example.com/script.sh cat script.sh # 与人工一同审查 bash script.sh # 批准后执行
undefined

Pattern 3: Permission Tightening

模式3:权限收紧

bash
undefined
bash
undefined

Restrict OpenClaw Brain directory

限制OpenClaw Brain目录

chmod 700 ~/.openclaw/brain
chmod 700 ~/.openclaw/brain

Protect audit script

保护审计脚本

chmod 500 ~/.openclaw/nightly-security-audit.sh chown root:root ~/.openclaw/nightly-security-audit.sh # If running as root
chmod 500 ~/.openclaw/nightly-security-audit.sh chown root:root ~/.openclaw/nightly-security-audit.sh # 若以root运行

Immutable config (use with caution)

不可变配置(谨慎使用)

chattr +i ~/.openclaw/config.json
undefined
chattr +i ~/.openclaw/config.json
undefined

Troubleshooting

故障排除

Issue: Audit Script Fails Silently

问题:审计脚本静默失败

Symptoms: No reports generated, cron shows no errors
Diagnosis:
bash
undefined
症状:无报告生成,cron无错误显示
诊断:
bash
undefined

Check cron execution

检查cron执行情况

grep CRON /var/log/syslog | tail -20
grep CRON /var/log/syslog | tail -20

Manual execution to see errors

手动执行查看错误

bash -x ~/.openclaw/nightly-security-audit.sh

**Common Causes**:
- Missing `set -euo pipefail` (fails on undefined variables)
- Missing report directory creation
- Permission issues on `~/.openclaw/security-reports/`

**Fix**:

```bash
mkdir -p ~/.openclaw/security-reports
chmod 755 ~/.openclaw/security-reports
bash -x ~/.openclaw/nightly-security-audit.sh

**常见原因**:
- 缺少`set -euo pipefail`(未定义变量时失败)
- 未创建报告目录
- `~/.openclaw/security-reports/`存在权限问题

**修复**:

```bash
mkdir -p ~/.openclaw/security-reports
chmod 755 ~/.openclaw/security-reports

Issue: False Positives in SUID Detection

问题:SUID检测误报

Symptoms: Daily alerts for legitimate system files
Solution:
bash
undefined
症状:每日针对合法系统文件发出警报
解决方案:
bash
undefined

Build comprehensive known-issues list

构建全面的已知问题列表

find /usr/bin /usr/local/bin -type f -perm -4000 2>/dev/null > ~/.openclaw/known-issues.txt
find /usr/bin /usr/local/bin -type f -perm -4000 2>/dev/null > ~/.openclaw/known-issues.txt

Audit will now only flag NEW SUID files

审计现在仅标记新的SUID文件

undefined
undefined

Issue: Agent Bypasses Red Lines

问题:Agent绕过红线

Symptoms: Destructive commands execute without confirmation
Diagnosis:
bash
undefined
症状:破坏性命令无需确认即可执行
诊断:
bash
undefined

Check if guide is properly loaded

检查指南是否已正确加载

echo "Recite the red line rules from your security guide"
echo "复述你的安全指南中的红线规则"

Verify model capability

验证模型能力

echo "What model are you running on?"

**Common Causes**:
- Weak reasoning model (use Claude Opus, GPT-4, or Gemini)
- Prompt injection via malicious Skill
- Guide not included in system prompt

**Fix**:

```bash
echo "你运行的是什么模型?"

**常见原因**:
- 推理模型能力不足(使用Claude Opus、GPT-4或Gemini)
- 恶意Skill导致的提示注入
- 指南未纳入系统提示

**修复**:

```bash

Re-deploy guide with stronger model

使用更强模型重新部署指南

Use v2.8 with anti-hijacking measures

使用带有防劫持措施的v2.8版本

undefined
undefined

Issue: Baseline Drift After Legitimate Changes

问题:合法变更后基准漂移

Symptoms: Daily alerts after OS updates or intentional configuration changes
Solution:
bash
undefined
症状:系统更新或有意配置变更后每日发出警报
解决方案:
bash
undefined

Review the alert

查看警报

cat ~/.openclaw/security-reports/audit-$(date +%Y%m%d)*.log
cat ~/.openclaw/security-reports/audit-$(date +%Y%m%d)*.log

If change is legitimate, rebuild baseline

若变更合法,重建基准

rm ~/.openclaw/.cron-baseline # Or whichever baseline is affected bash ~/.openclaw/nightly-security-audit.sh
undefined
rm ~/.openclaw/.cron-baseline # 或受影响的其他基准文件 bash ~/.openclaw/nightly-security-audit.sh
undefined

Issue: Audit Reports Not Persisting Across Reboots

问题:审计报告重启后不保留

Symptoms:
/tmp
reports vanish after restart
Solution (v2.8 fix):
bash
undefined
症状
/tmp
目录下的报告重启后消失
解决方案(v2.8修复):
bash
undefined

Verify report directory is NOT in /tmp

验证报告目录不在/tmp中

grep REPORT_DIR ~/.openclaw/nightly-security-audit.sh
grep REPORT_DIR ~/.openclaw/nightly-security-audit.sh

Should output:

应输出:

REPORT_DIR="${OC}/security-reports"

REPORT_DIR="${OC}/security-reports"

undefined
undefined

Advanced Usage

进阶用法

Multi-Agent Coordination

多Agent协同

For environments running multiple OpenClaw instances:
bash
undefined
针对运行多个OpenClaw实例的环境:
bash
undefined

Shared audit directory

共享审计目录

export SHARED_AUDIT_DIR="/var/openclaw-shared/audits" mkdir -p "${SHARED_AUDIT_DIR}"
export SHARED_AUDIT_DIR="/var/openclaw-shared/audits" mkdir -p "${SHARED_AUDIT_DIR}"

Modify audit script to include agent ID

修改审计脚本以包含Agent ID

REPORT="${SHARED_AUDIT_DIR}/audit-${HOSTNAME}-$(date +%Y%m%d-%H%M%S).log"
undefined
REPORT="${SHARED_AUDIT_DIR}/audit-${HOSTNAME}-$(date +%Y%m%d-%H%M%S).log"
undefined

Integration with External SIEM

与外部SIEM集成

bash
undefined
bash
undefined

Add to audit script (before exit)

添加至审计脚本(退出前)

if command -v logger &> /dev/null; then logger -t openclaw-audit "Audit completed: ${REPORT}" fi
if command -v logger &> /dev/null; then logger -t openclaw-audit "Audit completed: ${REPORT}" fi

Or push to remote syslog

或推送至远程syslog

echo "$(cat ${REPORT})" | nc -w1 -u syslog-server.local 514
undefined
echo "$(cat ${REPORT})" | nc -w1 -u syslog-server.local 514
undefined

Custom Red/Yellow Line Rules

自定义红/黄线规则

bash
undefined
bash
undefined

Create custom rules file

创建自定义规则文件

cat > ~/.openclaw/custom-rules.json <<EOF { "red_lines": [ "systemctl disable.", "setenforce 0", "iptables -P INPUT ACCEPT" ], "yellow_lines": [ "docker run.--privileged", "kubectl delete namespace" ] } EOF
cat > ~/.openclaw/custom-rules.json <<EOF { "red_lines": [ "systemctl disable.", "setenforce 0", "iptables -P INPUT ACCEPT" ], "yellow_lines": [ "docker run.--privileged", "kubectl delete namespace" ] } EOF

Agent loads and enforces custom rules

Agent加载并执行自定义规则

undefined
undefined

Version Compatibility

版本兼容性

  • v2.7 (Legacy): OpenClaw 2026.3 and earlier
  • v2.8 Beta: OpenClaw 2026.4 and later
⚠️ Risk Warning: OpenClaw's rapid iteration may cause incompatibility with future versions. Always test in non-production environment first.
  • v2.7(旧版本): OpenClaw 2026.3及更早版本
  • v2.8 Beta: OpenClaw 2026.4及更新版本
⚠️ 风险警告: OpenClaw的快速迭代可能导致与未来版本不兼容。请始终先在非生产环境中测试。

Security Philosophy

安全理念

This guide operates on four core principles:
  1. Zero-friction operations: Reduce manual security burden except at red lines
  2. High-risk requires confirmation: Irreversible actions pause for human approval
  3. Explicit nightly auditing: All metrics reported, including healthy states
  4. Zero-Trust by default: Assume prompt injection and supply chain poisoning are always possible
Final responsibility remains with the human operator.
本指南基于四大核心原则:
  1. 零摩擦操作: 除红线操作外,减少手动安全负担
  2. 高风险需确认: 不可逆操作需暂停等待人工批准
  3. 明确夜间审计: 所有指标均需上报,包括健康状态
  4. 默认零信任: 始终假设存在提示注入与供应链投毒风险
最终责任仍由人工操作者承担。

Additional Resources

额外资源