Loading blog posts...
Loading blog posts...
Laden...

Het zelf hosten van OpenClaw (voorheen Moltbot/Clawdbot) kan snel uitdraaien op een incident. Ik heb dit patroon vaak zien gebeuren: één blootgestelde poort, één onveilige modus, of één "handige" skill-installatie en plotseling heeft een aanvaller tool-uitvoering plus uw tokens. Publieke rapportages tonen internetblootstelling op grote schaal, waaronder één telling van ongeveer 42.665 bereikbare instanties, dus opportunistische scans zijn hier de basislijn bedreiging, geen zeldzaam randgeval.
Deze gids schetst een hardeningspad dat ervan uitgaat dat u de kracht van OpenClaw wilt zonder de standaard blast radius over te nemen.
textRoot: Kan de agent containergrensen doorbreken of de host bereiken? Agency: Kan de agent meer doen dan het zou moeten (tools, netwerk, skills)? Keys: Kan de agent of aanvaller credentials stelen (env, logs, mounts, disk)?
Ik vind dit model handig omdat het bruikbaar blijft zelfs als advisories veranderen. Een nieuwe CVE belandt bijna altijd in één van deze categorieën, wat u snel vertelt welke controle het had kunnen stoppen (of in ieder geval veel moeilijker had kunnen maken).
Root-fouten komen meestal van geprivilegieerde containers, Docker socket mounts, brede Linux capabilities, en beschrijfbare host mounts. Agency-fouten komen vaak van "tool sprawl" (te veel toegestane acties) en "network sprawl" (de agent kan alles bereiken). Keys-fouten zijn de klassieke zaken die teams nog steeds bijten: tokens in omgevingsvariabelen, debug logs, plaintext lokale opslag, en te ruim opgezette cloud credentials.
Ernstige problemen en actieve misbruikpatronen verhoogden de urgentie begin 2026, waaronder een one-click chain gerapporteerd als gepatcht in v2026.1.29 met advies om te upgraden en tokens te roteren: The Hacker News, University of Toronto advisory. Andere gerapporteerde kwetsbaarheden omvatten command injection en RCE-paden (voorbeeld: CVE-2026-24763) en gateway plus sandbox handling zorgen besproken door Tenable.
Warning
[!WARNING] Debug of onveilige modi worden herhaaldelijk genoemd als een ernstige beveiligingsverslechtering. Behandel ze als "break glass": kortdurend, geïsoleerd, en gemonitord.

bash# Minimale blootstellingspatroon: bind de gateway alleen aan loopback # Vervang [OPENCLAW_PORT] met uw poort (voorbeeld: 3000) docker run --rm -p 127.0.0.1:[OPENCLAW_PORT]:[OPENCLAW_PORT] [IMAGE]:[TAG]
Binden aan 127.0.0.1 dwingt alle toegang via de lokale host. Eerlijk gezegd elimineert die ene actie de meest voorkomende "shodan-grade" foutmodus: een publieke listener met zwakke authenticatie.
Als u externe toegang nodig heeft, termineer TLS en dwing authenticatie af bij een reverse proxy. Houd OpenClaw privé erachter.

nginx## /etc/nginx/conf.d/openclaw.conf server { listen 443 ssl; server_name [OPENCLAW_FQDN]; ssl_certificate /etc/letsencrypt/live/[OPENCLAW_FQDN]/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/[OPENCLAW_FQDN]/privkey.pem; # Basis hardening headers add_header X-Content-Type-Options nosniff always; add_header X-Frame-Options DENY always; add_header Referrer-Policy no-referrer always; location / { proxy_pass http://127.0.0.1:[OPENCLAW_PORT]; # Correcte forwarding zodat de app origin en scheme kan valideren proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket ondersteuning (gebruikelijk voor agent UI's) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
Deze configuratie is belangrijk omdat veel real-world chains beginnen met iets saais zoals "gebruiker klikt op een link" of "aanvaller kan de gateway bereiken," en dan escaleert het naar token-diefstal of session hijack. Zelfs wanneer de applicatie snel patcht, geeft de proxy-laag u een tweede poort: TLS, allowlists, en consistente header-afhandeling.
Zet er nu een netwerkbeleid voor. Als u een vast admin IP-bereik heeft, dwing het af bij de firewall.
bash# Voorbeeld: sta alleen een bedrijfs-CIDR toe om 443 te bereiken ufw default deny incoming ufw allow from [CORP_CIDR] to any port 443 proto tcp ufw enable
Nog één controle die echt loont in de praktijk: scheid admin UI-toegang van agent execution traffic. Stel de UI alleen bloot via VPN, en houd runtime API's privé. Die scheiding stopt vaak "drive-by UI exploitation" van het worden van "agent draait tools in prod."
bash## Inventariseer draaiende versies (voorbeeld voor Docker) docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.RunningFor}}' # Pull en rol naar een bekende gefixte tag docker pull [IMAGE]:v2026.1.29 docker stop [CONTAINER] docker run -d --name [CONTAINER] [OTHER_FLAGS] [IMAGE]:v2026.1.29
Upgraden is basiswerk, maar token-rotatie is wat persistentie afsnijdt. Als een aanvaller vorige week een gateway token heeft gestolen, maakt patchen vandaag het niet magisch ongeldig.
Roteer op drie plaatsen, in deze volgorde: gateway/session tokens, API keys gebruikt door skills/tools, dan cloud provider credentials. Houd alleen een kort overlap-venster als uw service geen onmiddellijke invalidatie kan verdragen.
bash# Snelle "vind waarschijnlijke secrets" sweep voor rotatiewerk # Dit vangt de veelgemaakte fout: secrets per ongeluk gecommit of gelogd. rg -n --hidden -S "OPENCLAW|CLAWDBOT|MOLTBOT|token|apikey|api_key|secret|bearer|Authorization" . # Als logs op disk staan, zoek daar ook sudo rg -n -S "bearer|token|Authorization" /var/log
Het punt is: het ondergewaardeerde risico is dat agent-systemen nieuwe secret-paden creëren. Een normale web app heeft een paar bekende secrets. Een agent heeft model provider keys, tool credentials, skill registry tokens, en soms "tijdelijke" debugging tokens die nooit worden opgeruimd (ja, dat gebeurt vaker dan mensen toegeven).
Voor een diepere lezing over de one-click chain en de fix-versie, zie: The Hacker News en UofT advisory. Voor bredere mitigatiestappen en meerdere CVE's, gebruik Tenable's gids.

bash## Beleid: installeer skills alleen van een interne allowlist repository ## Voorbeeld: blokkeer uitgaande toegang naar publieke registries van het runtime netwerk iptables -A OUTPUT -p tcp -d [PUBLIC_REGISTRY_IP_OR_CIDR] --dport 443 -j REJECT
Ik zou beginnen vanuit een deny-houding omdat het ecosysteem al op grote schaal is misbruikt. Rapporten beschrijven 400+ kwaadaardige skills gedistribueerd via het ClawHub registry (386 bevestigd), vaak vermommd als crypto tooling en gebruikt om credentials en keys te stelen: Security Affairs, plus enterprise targeting coverage van Bitdefender.
De unieke twist met agent skills is dat dependency confusion niet het enige probleem is. Een kwaadaardige skill hoeft geen memory corruption uit te voeren. Het hoeft alleen de tools aan te roepen die u al toestond, en dan stilletjes de resultaten via HTTPS naar buiten te sturen.
Laat skills een poort passeren voordat ze ooit de runtime bereiken. Een praktische poort is: pin versies, verifieer hashes, scan het pakket, en vereist code review. Als u niet alle vier kunt doen, doe dan pinning plus review minimaal (het is niet perfect, maar het helpt).
yaml# skills-allowlist.yaml allowed_skills: - name: [SKILL_NAME] version: "[PINNED_VERSION]" source: "[INTERNAL_REPO_URL]" sha256: "[EXPECTED_SHA256]" blocked_patterns: - "crypto" - "wallet" - "seed"
Ja, dit ziet er streng uit, maar het is eigenlijk hoe volwassen teams CI plugins en Terraform providers behandelen. Skills zijn code-uitvoering met branding.
Important
[!IMPORTANT] Als een skill het netwerk kan bereiken, kan het secrets exfiltreren. Als het bestanden kan lezen, kan het keys stelen. Keur skills niet goed op basis van hun beschrijving. Keur goed op basis van hun permissies en code-pad.
json{ "tools": { "filesystem": { "allow": true, "read_paths": ["/workspace"], "write_paths": ["/workspace/out"], "deny_paths": ["/", "/etc", "/home", "/root", "/var/run/docker.sock"] }, "shell": { "allow": true, "allowed_commands": ["git", "python", "node", "npm", "pip"], "deny_flags": ["-c", "--eval"] }, "network": { "allow": true, "egress_allowlist": ["api.github.com:443", "[INTERNAL_API_FQDN]:443"] } }, "high_risk_actions": { "require_human_approval": ["shell", "filesystem.write", "network.external"] } }
De meeste OpenClaw incidenten zijn niet "AI werd rebels." Ze zijn meer zoals: de agent had toestemming om het gevaarlijke ding te doen, en een prompt of een skill duwde het daarheen. Een tool budget dwingt u te beslissen waar de agent werkelijk voor is (en waar het absoluut niet voor is).
De deny_paths lijst blokkeert klassieke foot-guns: lezen van /etc, aanraken van host sockets, of wandelen door home directories. De allowed_commands lijst voorkomt "shell als universele backdoor," waar elke prompt injection willekeurige command execution wordt. De egress allowlist maakt van data-diefstal een geblokkeerde verbinding in plaats van een postmortem.
Een bevestigingspoort is niet alleen een UI prompt. Het zou een auditeerbare gebeurtenis moeten creëren met de exacte actie, argumenten, en diff van wat zal veranderen.
python# Minimaal bevestigingspoort patroon: hash de geplande actie payload import hashlib, json, time def approval_payload(action: dict) -> dict: body = json.dumps(action, sort_keys=True).encode() return { "action": action, "sha256": hashlib.sha256(body).hexdigest(), "requested_at": int(time.time()) } planned = { "tool": "filesystem.write", "path": "/workspace/out/report.md", "bytes": 4812 } print(json.dumps(approval_payload(planned), indent=2))
Het hashen van de payload stopt "approve write" van stilletjes "approve write plus exfil" worden. De goedkeurder kan verifiëren dat de hash overeenkomt met wat ze zagen in de UI of ticket.
Voor meer over Zero Trust patronen die goed mappen naar agent tools (identiteit, device posture, en beleidspoorten), zie onze Zero Trust Security: A Comprehensive Guide.

yaml## docker-compose.yml (hardening baseline) services: openclaw: image: [IMAGE]:v2026.1.29 user: "10001:10001" read_only: true security_opt: - no-new-privileges:true cap_drop: - ALL tmpfs: - /tmp:rw,noexec,nosuid,size=256m ports: - "127.0.0.1:[OPENCLAW_PORT]:[OPENCLAW_PORT]" volumes: - type: bind source: ./workspace target: /workspace read_only: true - type: bind source: ./out target: /workspace/out read_only: false environment: - OPENCLAW_LOG_LEVEL=info
Dit is waar "Root" wordt ingeperkt. De user: "10001:10001" directive verwijdert standaard root binnen de container. cap_drop: ALL elimineert de meeste kernel-niveau privilege paden. read_only: true laat veel exploit chains falen omdat ze geen binaries kunnen droppen of configs kunnen bewerken.
De gesplitste mounts zijn opzettelijk. Een read-only /workspace voorkomt dat de agent zijn eigen code of build scripts bewerkt. Een beschrijfbare /workspace/out geeft het een veilige plek om artefacten te produceren. Ik heb teams zien mounten van de hele repo read-write en dan verbaasd zijn wanneer een gecompromitteerde agent CI kan backdooren.
Als iemand voorstelt om /var/run/docker.sock te mounten zodat de agent "containers kan beheren," behandel dat als host-niveau toegang. Docker socket toegang is effectief root op de host.
bash# Snelle check voor de gevaarlijkste mount in de vloot docker inspect $(docker ps -q) | rg -n "/var/run/docker.sock"
Netwerk egress controle is de andere runtime hardening hendel. Als de agent slechts een paar endpoints kan bereiken, wordt prompt injection veel minder waardevol.
bash## Voorbeeld: creëer een dedicated Docker netwerk en blokkeer uitgaand behalve allowlist via host firewall docker network create openclaw_net docker network connect openclaw_net [CONTAINER]
De exacte handhavingsmethode varieert (iptables, cloud security groups, Kubernetes NetworkPolicies), maar het doel blijft hetzelfde: de runtime zou geen standaard internettoegang moeten hebben.
json{ "event": "tool.call", "request_id": "[REQ_ID]", "actor": "agent", "tool": "shell", "args": ["git", "remote", "-v"], "cwd": "/workspace", "egress": null, "result": "success", "ts": "2026-02-11T12:34:56Z" }
Traditionele app logs vertellen u wie inlogde en welk endpoint ze raakten. Agent incidenten gebeuren vaak na login, met legitieme features. Tool-call logging geeft u de ontbrekende laag: wat de agent uitvoerde, wat het las, en waar het probeerde te verbinden.
Alert op patronen die zelden thuishoren in normale operatie: base64 encoding, archief creatie, credential bestand toegang, en onverwachte uitgaande domeinen. Alert ook op "tool denied" gebeurtenissen. Uit wat ik heb gezien betekent een piek in weigeringen vaak dat prompt injection pogingen al bezig zijn.
bash## Voorbeeld hunting queries op JSON logs (jq) jq -c 'select(.event=="tool.call" and .tool=="shell")' /var/log/openclaw/events.jsonl | head jq -c 'select(.event=="tool.call" and .tool=="filesystem" and (.path|test("id_rsa|\\.aws|\\.ssh|kubeconfig")))' /var/log/openclaw/events.jsonl
Koppel dit aan uw SIEM als u er een heeft, maar wacht niet op SIEM-werk om te beginnen. Een lokaal JSONL bestand met rotatie is genoeg om uw eerste incident te onderzoeken (en u zult dat papieren spoor willen).
| Tool | Wat het doet | Voordelen | Nadelen | Het beste voor |
|---|---|---|---|---|
| Trivy | Scant container images en IaC voor bekende CVE's | Snel, makkelijke CI integratie | Heeft tuning nodig om alert fatigue te vermijden | Vangen van kwetsbare base images |
| Falco | Runtime detectie voor verdachte syscalls in containers | Ziet gedrag, niet alleen pakketten | Vereist regel tuning | Detecteren van container escapes en vreemde exec |
| OPA Gatekeeper | Beleidshandhaving voor Kubernetes objecten | Blokkeert riskante configs voor deploy | Alleen Kubernetes | Voorkomen van geprivilegieerde pods en slechte mounts |
| HashiCorp Vault | Centrale secrets opslag met kortlevende creds | Sterke rotatie workflows | Setup overhead | Doden van langlevende tokens en statische keys |
| Cilium | Netwerkbeleid en eBPF zichtbaarheid | Fijnmazige egress controle | Leercurve | Vergrendelen van agent egress paden |
| Cosign | Ondertekent en verifieert container images | Supply chain integriteit | Heeft key management nodig | Zorgen dat alleen vertrouwde images draaien |
Dit zijn geen generieke "security stack" keuzes. Ze mappen netjes naar Root (Falco, Gatekeeper), Agency (Cilium), en Keys (Vault), plus patch hygiëne (Trivy) en image vertrouwen (Cosign).
Als u slechts één ding toevoegt, zou ik egress controle toevoegen, omdat het veel data-diefstal pogingen in ruis verandert.
Spotify behaalde een 50% reductie in mean time to recovery (MTTR) door incident response automatisering en gestandaardiseerde runbooks aan te nemen, gerapporteerd in engineering talks en SRE practice samenvattingen. Diezelfde discipline geldt hier: pre-approve veilige tool paden, en laat gevoelige acties een expliciete workflow vereisen.
Netflix draait grootschalige gecontaineriseerde workloads met sterke runtime isolatie en continue patching praktijken beschreven in hun beveiliging en SRE publicaties. De takeaway voor OpenClaw is simpel: behandel de agent als een niet-vertrouwde workload, zelfs wanneer het "uw" agent is.
Stripe wordt veel geciteerd voor strikte toegangscontrole en sterke secrets management patronen in high-compliance omgevingen. Voor OpenClaw mapt dat naar kortlevende credentials en smalle scopes, niet "één API key om ze allemaal te regeren."
Dit zijn geen "kopieer hun toolchain" voorbeelden. Ze tonen de richting: automatisering plus guardrails verslaat hopen dat prompts schoon blijven.
Begin hier (uw eerste stap)
Upgrade OpenClaw naar v2026.1.29 of later, roteer dan alle gateway tokens binnen 60 minuten.
Snelle winsten (onmiddellijke impact)
127.0.0.1 en zet TLS + auth ervoor binnen 1 dag.OPENCLAW_LOG_LEVEL=info in met tool-call logging binnen 2 uur.Diepgaand (voor degenen die meer willen)
cap_drop: ALL, read_only: true, en geen Docker socket mounts in alle omgevingen binnen 1 week.OpenClaw beveiliging komt neer op het controleren van Root, Agency, en Keys met gelaagde wrijving: privé binding, strikte proxy auth, snelle patching plus token rotatie, skills allowlists, least-privilege tools, en geharde containers met beperkte egress.
De bedreiging is niet hypothetisch. Publieke rapportages koppelen echt misbruik aan blootgestelde gateways, ernstige bugs, en kwaadaardige skills in het ecosysteem. Als uw team een gestructureerde hardening review en DevSecOps uitrol nodig heeft voor agentische systemen, kan Joulyan IT Solutions een beveiligingsassessment uitvoeren dat deze controles omzet in een herhaalbare baseline over omgevingen.