
OpenClaw 에이전트를 위한 보안 및 규정 준수 보디가드
OpenClaw 에이전트를 위한 보안 보디가드
OpenClaw 에이전트를 위한 EDR 스타일의 보안 에이전트입니다. 14개 도메인에 걸쳐 41개의 보안 검사를 실행하고 신뢰 점수(0~100)를 계산하며, 중앙 집중식 트러스트 센터 대시보드로 텔레메트리를 전송하여 사람과 다른 에이전트가 신뢰성을 확인할 수 있도록 합니다.
무상태(Stateless) 설계 – 메모리에서만 실행되며 로컬에 아무것도 저장하지 않고 호스트에 흔적을 남기지 않습니다.
AI 에이전트는 강력하지만 불투명합니다. 에이전트가 시스템에서 실행될 때, 다음과 같은 일이 발생하지 않는다는 것을 어떻게 알 수 있습니까?
TrustMyAgent는 15분마다 이러한 질문에 답하고 결과를 공개 트러스트 센터에 게시하여 누구나 에이전트의 보안 상태를 확인할 수 있도록 합니다.
작업 공간 skills 디렉터리로 복사하세요:
# OpenClaw 워크스페이스에서
mkdir -p skills/trustmyagent
cp -r /path/to/trust-my-agent-ai/* skills/trustmyagent/
설치 후 에이전트에게 설정을 실행하도록 요청하세요:
"TrustMyAgent 설정"
에이전트는 SKILL.md의 설정 지침에 따라 의존성을 설치하고, 테스트 평가를 실행하며, agent:security:main 세션 스트림에 크론 작업(*/15 * * * *)을 생성합니다. 전체 설정 단계는 SKILL.md를 참조하세요.
# 평가 실행 및 텔레메트리 전송 (에이전트 이름은 IDENTITY.md에서 가져옴)
python3 run.py
openssl (TLS 검사용)Bash 검사 (20개) – 호스트 환경을 검사하는 셸 명령. checks/openclaw_checks.json에 정의됨.
Python/메시지 센서 (10개) – 비밀 정보, 세션 기록, MCP 설정, 스킬 매니페스트, Moltbook 게시물, 소유자 평판을 분석하는 프로그래밍 방식 검사. checks/message_checks.json에 정의됨.
OpenClaw 인프라 검사 (11개) – 노드 실행, 미디어 처리, 게이트웨이, 아이덴티티, 서브에이전트 보안을 위한 Python 검사. checks/nodes_media_checks.json에 정의됨.
모든 검사 유형은 macOS와 Linux를 자동으로 감지하여 플랫폼에 적합한 명령을 사용합니다.
┌─────────────────┐ POST /api/telemetry ┌──────────────────┐
│ Agent Host │ ─────────────────────────► │ 🛡️ TrustMyAgent Server│
│ │ │ (Cloudflare) │
│ run.py │ │ ├─ R2 storage │
│ ├─ bash checks │ │ ├─ agents index │
│ └─ python checks│ │ └─ trend history│
│ │ │ │
│ (no local state)│ └──────────────────┘
└─────────────────┘ │
trust-center.html
(public dashboard)
에이전트 이름은 IDENTITY.md 파일(# Name 섹션)에서 자동으로 읽어옵니다. 실패 시 OPENCLAW_AGENT_NAME 환경 변수, 그다음 "OpenClaw Agent"를 사용합니다.
| 환경 변수 | 설명 | 기본값 |
|---|---|---|
OPENCLAW_AGENT_ID |
| CLI 플래그 | 설명 |
|---|---|
--checks, -c | 사용자 정의 검사 JSON 경로 |
| , |
checks/openclaw_checks.json에 추가:
{
"check_id": "CUSTOM-001",
"name": "My custom check",
"description": "What this check verifies",
"category": "integrity",
"severity": "medium",
"command": "echo 'SAFE'",
"expected_output": "SAFE",
"pass_condition": "contains"
}
정의를 checks/message_checks.json에 추가하고 핸들러를 run.py에 추가:
@python_check("CUSTOM-002")
def check_something(check: dict) -> Tuple[bool, str]:
# Return (passed: bool, message: str)
return True, "Everything looks good"
자세한 내용은 CONTRIBUTING.md를 참조하세요. 다음을 환영합니다:
MIT – Anecdotes AI가 OpenClaw 생태계를 위해 제작.
| 도메인 | 검사 | 예시 |
|---|
| 물리적 환경 | PHY-001 ~ PHY-005 | 디스크 암호화, 컨테이너 격리, 루트가 아닌 실행 |
| 네트워크 | NET-001 ~ NET-005 | 위험한 포트, TLS/SSL, DNS 해상도, 인증서 |
| 비밀 정보 | SEC-001 ~ SEC-005, MSG-005 | 환경 변수 비밀, 클라우드 자격 증명, 개인 키, 대화 유출 |
| 코드 | COD-001 ~ COD-004 | Git 보안, 리포지토리에 비밀 없음 |
| 로그 | LOG-001 ~ LOG-004 | 시스템 로깅 활성화, 감사 준비 |
| 스킬 | SKL-001 ~ SKL-005, MSG-001, MSG-003 | 스킬 매니페스트, MCP 서버 신뢰 |
| 무결성 | INT-001 ~ INT-005, MSG-002, MSG-006 | 백도어, 의심스러운 도구 호출, URL 평판 |
| 소셜 가드 | SOC-001 ~ SOC-006, MSG-004 | 작업 로깅, 세션 투명성, Moltbook 무결성, 소유자 평판 |
| 사고 예방 | INC-001 ~ INC-005 | 프로세스 생성, 시스템 부하, 포트 스캔 |
| 노드 보안 | NODE-001 ~ NODE-005 | 원격 실행 승인, 토큰 권한, 실행 허용 목록 |
| 미디어 보안 | MEDIA-002 ~ MEDIA-003 | 임시 디렉터리 권한, 파일 유형 검증 |
| 게이트웨이 보안 | GATEWAY-001 ~ GATEWAY-002 | 바인딩 주소, 인증 |
| 아이덴티티 보안 | IDENTITY-001 ~ IDENTITY-002 | DM 페어링 허용 목록, 그룹 채팅 허용 목록 |
| 서브 에이전트 보안 | SUBAGENT-001 ~ SUBAGENT-002 | 동시성 제한, 대상 허용 목록 |
| 등급 | 점수 | 의미 |
|---|
| 높음 | 90-100 | 업무 준비 완료 |
| 중간 | 70-89 | 검토 필요 |
| 낮음 | 50-69 | 위험 증가 |
| 신뢰할 수 없음 | 0-49 | 심각한 보안 격차 |
| 에이전트 식별자 |
| 호스트명의 SHA256 |
OPENCLAW_AGENT_NAME | IDENTITY.md 이름 재정의 | — |
TRUSTMYAGENT_TELEMETRY_URL | 서버 엔드포인트 | https://www.trustmyagent.ai/api/telemetry |
--timeout-t| 검사별 타임아웃 (초) (기본값: 30) |
--quiet, -q | 최소 출력 |