Seu agente IA roda em device (compromised = botnet vector)
Agente IA roda em device customer (browser, app). Device pode ser compromised. Agente vira attack vector. Liability.
Equipe OpenClaw · Time de Engenharia & Produto
A Equipe OpenClaw é formada por engenheiros, designers e especialistas em IA dedicados a construir a melhor plataforma de agentes conversacionais para negócios brasileiros. Combinamos expertise…
Seu agente IA roda em device (compromised = botnet vector)
Você tem SaaS.
Seu SaaS: agente IA (roda em device customer—browser, app, local server).
Sua arquitetura:
"Agente IA roda localmente:
- Browser: Agente roda em JavaScript (customer's browser)
- App: Agente roda no smartphone/tablet do customer
- Local server: Agente roda em servidor on-premises (customer's data center)
Benefit:
- Privacidade (data stays local, não vai pra cloud)
- Performance (agente roda rápido, sem latência de network)
- Control (customer controls agente, pode customizar)
- Offline (agente funciona sem internet)
Customer assumption:
- Device dele é seguro (seu laptop, seu servidor, seu app)
- Se device é seguro, agente é seguro (runs on secure device)
- Agente é tool pra automation (não é threat)
Vida é boa (agente roda local, customer é happy, você tem advantage vs. cloud-based competitors)."
Then:
You read:
"Dutch authorities dismantle botnet with 17 million infected devices.
"Botnet: Network of compromised devices controlled by attackers.
"Devices included: Computers, tablets, smartphones, IoT devices.
"How it works: Attacker infects device (malware), gains remote control, uses device for attacks (DDoS, spam, data theft).
"Scale: 17 million devices = 17 million attack vectors.
"Implication: If devices CAN be compromised at scale, YOUR agente-enabled device COULD be compromised too."
You think:
"Wait.
Botnet = compromised devices controlled by attacker.
17 million devices = real precedent (proves devices can be compromised at scale).
My agente runs locally on customer device.
If customer device is compromised (botnet infiltrates, malware installed) = my agente is now controlled by attacker.
If agente is controlled by attacker = agente becomes attack tool:
- Attacker uses agente to steal data (customer data, passwords, secrets)
- Attacker uses agente to spread malware (to other devices)
- Attacker uses agente to launch DDoS (customer's device becomes DDoS bot)
- Attacker uses agente to execute code (whatever attacker wants)
Customer's device = now part of botnet.
My agente = now attack vector.
Customer loses control of device (attacker has it).
Customer blames me ("Your agente was used by attacker to compromise my device").
I'm liable (my agente enabled the compromise).
I'm exposed (devices CAN be compromised, my agente can be weaponized).
Why this matters:
If agente runs local = agente is only as secure as device it runs on.
If device is compromised = agente is compromised.
If agente is compromised = attacker has access to everything agente can access.
If agente is weaponized = customer's device becomes attack vector.
Result: Local agente = if device is hacked, agente is hacked.
BOTNET CASE STUDY (17 MILLION DEVICES):
What happened:
Attackers created botnet (network of compromised devices).
Devices: Computers, tablets, smartphones, IoT devices.
How it started:
- Attacker releases malware (Trojan, worm, virus)
- User downloads infected file (phishing, malicious link, compromised website)
- Malware installs on device (user doesn't notice)
- Malware gives attacker remote access (user is now compromised)
- Device joins botnet (attacker adds it to botnet network)
What attacker uses botnet for:
- DDoS attacks (use 17M devices to attack website)
- Spam distribution (send millions of spam emails)
- Data theft (steal passwords, credit cards, secrets)
- Ransomware distribution (spread ransomware to other devices)
- Cryptomining (use device's CPU to mine cryptocurrency)
Scale:
- 17 million devices infected
- Each device is compromised (attacker has control)
- Each device can be used for attacks
- Victims don't know they're compromised
Impact:
- Users: Their devices are controlled by attacker (privacy, security broken)
- Organizations: Their infrastructure is compromised (data stolen, systems attacked)
- Internet: Botnet attacks damage internet infrastructure (DDoS, spam)
- Attackers: Massive profit (sell botnet access, use for attacks, monetize)
APPLIED TO YOUR AGENTE IA (LOCAL DEVICE):
Scenario 1: Agente in browser (JavaScript)
Setup:
- Customer uses your SaaS (agente runs in browser)
- Agente: Processes customer data, makes decisions, executes actions
- Browser: Supposed to be secure (customer's computer)
What could go wrong:
- Customer's browser is infected (malware running in background)
- Malware injects code into page (intercepts agente's JavaScript)
- Attacker now controls agente (or at least sees what agente does)
Attacker possibilities:
-
Steal data (agente accesses customer data, malware steals it)
- Example: Agente reads customer's CRM data from browser
- Malware intercepts data (steals customer list, email addresses, passwords)
- Attacker sells stolen data
-
Modify agente behavior (attacker changes what agente does)
- Example: Agente is supposed to send email to customer
- Attacker modifies agente code (sends email to attacker instead)
- Customer never knows (email went to attacker, not customer)
- Attacker impersonates customer (uses stolen credentials)
-
Use agente as attack tool (agente becomes malicious)
- Example: Agente API calls (agente calls your SaaS API)
- Attacker modifies calls (uses stolen session token)
- Attacker impersonates customer (customer's agente makes requests as customer)
- Attacker gains access to customer's account
-
Spread malware (agente becomes distribution vector)
- Example: Agente downloads files (updates, plugins)
- Malware modifies downloads (injects malware)
- Customer installs malware-infected updates
- Malware spreads to other devices
Impact:
- Customer's browser is compromised (malware present)
- Customer's data is stolen (agente reads it, malware captures it)
- Customer's account is hacked (attacker impersonates customer)
- Customer's device is part of botnet (malware uses device for attacks)
Liability:
- Customer blames your agente ("Your agente was used to steal my data")
- Customer sues (agente enabled the compromise)
- You're liable (agente ran on compromised device, didn't protect against compromise)
Scenario 2: Agente in app (mobile)
Setup:
- Customer uses your mobile app (agente runs in app)
- Agente: Accesses phone data, makes decisions, takes actions
- Phone: Customer's personal device (should be secure)
What could go wrong:
- Customer's phone is infected (malware running in background, in different app)
- Malware exploits OS vulnerability (gains access to other apps, data)
- Attacker can see what agente does (access phone's data, agente's data)
Attacker possibilities:
-
Access agente's data (malware reads agente's memory)
- Example: Agente stores API token (to authenticate with your SaaS)
- Malware reads agente's memory (steals API token)
- Attacker impersonates customer (uses stolen token)
- Attacker has full access to customer's account
-
Intercept agente communications (malware reads network traffic)
- Example: Agente makes API calls (sends data to SaaS server)
- Malware intercepts calls (reads what agente sends)
- Attacker sees customer's sensitive data (passwords, secrets, financial info)
- Attacker uses stolen data for attacks
-
Modify agente behavior (malware modifies agente's code/memory)
- Example: Agente is supposed to send money to vendor
- Attacker modifies amount (changes R$ 1000 to R$ 100000)
- Attacker modifies recipient (changes vendor to attacker's account)
- Customer sends money to attacker (thinks they sent to vendor)
-
Use phone for DDoS (malware uses agente's network connection)
- Example: Agente makes API calls (legitimate traffic)
- Malware hijacks network connection (adds malicious traffic)
- Phone becomes DDoS bot (sends attack traffic to victim)
- Customer's phone is part of botnet
Impact:
- Customer's phone is compromised (malware present)
- Customer's data is stolen (agente reads it, malware captures it)
- Customer's money is stolen (agente transactions are intercepted/modified)
- Customer's phone is weaponized (becomes DDoS bot, attack vector)
Liability:
- Customer blames your agente ("Your agente was used to steal my money")
- Customer sues (agente enabled the compromise, agente didn't protect data)
- You're liable (agente ran on compromised device, should have protected against compromise)
Scenario 3: Agente on local server (on-premises)
Setup:
- Customer runs your agente on their server (on-premises deployment)
- Agente: Accesses customer's database, makes decisions, executes actions
- Server: Customer's own data center (should be secure)
What could go wrong:
- Customer's server is compromised (attacker gains access via vulnerability, weak password, etc.)
- Attacker exploits vulnerability (gains shell access to server)
- Attacker finds agente (agente is running on server)
Attacker possibilities:
-
Access agente's memory/files (attacker reads agente's code, data, configuration)
- Example: Agente is configured with database credentials (username, password)
- Attacker reads agente's config file (steals database credentials)
- Attacker connects to database (uses stolen credentials)
- Attacker has direct access to all customer data
-
Modify agente code (attacker edits agente executable/script)
- Example: Agente is supposed to process orders
- Attacker modifies agente code (adds malicious code)
- Agente now does: Process order + exfiltrate data to attacker
- Attacker steals data using agente as channel
-
Use agente as pivot point (attacker uses compromised agente to attack other systems)
- Example: Agente has access to internal network (customer's VPN, internal servers)
- Attacker uses agente to scan internal network (find other servers)
- Attacker uses agente to attack internal servers (lateral movement)
- Attacker compromises entire customer infrastructure
-
Use server for botnet (attacker adds server to botnet)
- Example: Server is now compromised (agente is running there)
- Attacker installs botnet malware (on same server as agente)
- Server becomes bot (joins botnet, sends attack traffic)
- Customer's business is disrupted (server is part of botnet, consumed by attack traffic)
Impact:
- Customer's server is compromised (attacker has access)
- Customer's database is compromised (attacker steals data)
- Customer's infrastructure is compromised (attacker pivots to other systems)
- Customer's server is weaponized (becomes part of botnet)
Liability:
- Customer blames your agente ("Your agente ran on compromised server, attacker used it to pivot")
- Customer sues (agente enabled the compromise, agente didn't protect against insider threats)
- You're liable (agente ran on compromised server, should have protected data, should have detected compromise)
O problema (seu agente é tão seguro quanto o device que roda)
Why local agente has security risks
RISK 1: DEVICE COMPROMISE IS INEVITABLE
Statistics:
- 1.5 billion devices are compromised globally (estimate)
- 17 million devices in single botnet (Dutch authorities took down)
- Devices get compromised: Malware, phishing, vulnerabilities, weak passwords
- Prevention is hard: Users click malicious links, don't patch, use weak passwords
Reality:
- You can't guarantee customer's device is secure (it's customer's responsibility)
- Customer's device WILL be compromised (sooner or later, statistically likely)
- When device is compromised, agente is compromised (agente runs on device)
Example:
- 1000 customers use your agente (runs local on their devices)
- 50-100 of them will have compromised devices (5-10% compromise rate is normal)
- If 50 devices are compromised, agente is compromised on 50 devices
- If agente is compromised, attacker can use agente for attacks
- You have 50 agentes that have been weaponized
Result:
- Local agente = exposed to device compromise risk
- You can't prevent device compromise (customer's responsibility)
- When device compromised, agente is attacked vector
RISK 2: AGENTE IS ONLY AS SECURE AS ITS ENVIRONMENT
Security model:
- Cloud-based agente: Runs on your secure server (you control security)
- Local agente: Runs on customer's device (customer controls security)
Implications:
- Cloud-based: You can defend (update security, patch vulnerabilities, detect attacks)
- Local: You can't defend (attacker controls customer's device, your agente can't fight back)
Example:
- Attacker compromises customer device (installs malware)
- Attacker modifies agente code (agente now exfiltrates data)
- You can't detect this (agente is running on customer's device, you have no visibility)
- You can't prevent this (agente has no way to authenticate itself, verify it's unmodified)
- Attacker successfully weaponizes agente (customer's agente is now attack tool)
Result:
- Local agente = no defense against device compromise
- You're blind (can't see if agente is modified, compromised)
- You're helpless (can't prevent attacks, can't patch in real-time)
RISK 3: ATTACKER CAN CHAIN COMPROMISES
Chain of compromise:
- Attacker compromises customer device (malware, botnet)
- Attacker finds agente (agente is running on compromised device)
- Attacker uses agente as pivot point (agente has access to other systems)
- Attacker compromises other systems (database, internal servers, external APIs)
- Attacker has full access (entire customer infrastructure is compromised)
Example:
- Customer device is compromised (malware)
- Agente is running on device (agente has database credentials)
- Attacker reads agente's memory (steals database credentials)
- Attacker connects to database (bypassing all security measures)
- Attacker has access to all customer data (1M+ records)
- Customer is destroyed (data breach, regulatory fines, lawsuit)
Result:
- Local agente = pivot point for attacks
- Agente can be used to compromise other systems
- Domino effect (one compromised device = entire infrastructure compromised)
RISK 4: LIABILITY IS AMBIGUOUS
When agente is used in attack, responsibility is unclear:
- You claim: "Device was compromised by attacker, not our fault"
- Customer claims: "Your agente was running, agente should have protected us"
- Court: "You deployed agente on customer's device, you're responsible for security consequences"
Example:
- Agente runs on customer device (local deployment)
- Device gets compromised (attacker installs malware)
- Attacker uses agente to steal data (exfiltrates customer database)
- Customer sues: "Your agente was used to steal our data, you're liable"
- You defend: "The device was compromised, we can't control customer's security"
- Court: "You chose to run agente on customer's device, you accepted the risk. You should have implemented protections. You're liable."
Result:
- Local agente = liability is on you
- You can't shift responsibility to customer (you chose local deployment)
- You can't claim ignorance (you knew device could be compromised)
Why this is existential risk
FINANCIAL:
- Customer device compromised, agente is used in attack: R$ 500K - R$ 50M damage
- Customer sues: R$ 100K - R$ 10M settlement
- Regulatory fine (if data breach): R$ 10M - R$ 50M (LGPD)
- Customer churn: R$ 1K - R$ 10K/month × 12 months
- Total per incident: R$ 1M - R$ 100M+
OPERATIONAL:
- Incident response: R$ 50K - R$ 500K
- Forensics investigation: R$ 20K - R$ 100K
- Customer support (incident management): R$ 50K - R$ 200K
- System remediation: R$ 100K - R$ 1M
LEGAL:
- Lawsuits from affected customers: Multiple, R$ 1M+ each
- Regulatory investigation: Mandatory audit, proof of security
- Criminal charges: If data breach is severe, criminal liability possible
- Insurance claims: May not cover ("You deployed on insecure customer device")
REPUTATION:
- Negative press ("Agente was used in massive data breach")
- Social media backlash (customers post about compromise)
- Competitor advantage ("Their local agente is security risk, use us")
- Market loss (customers avoid local deployment, demand cloud-based)
Result:
- One compromised agente = R$ 1M - R$ 100M damage
- Multiple compromises = bankruptcy (if 10 customers compromised = R$ 10M - R$ 1B+ liability)
A solução (defense in depth: encrypt, verify, monitor, isolate)
Option 1: ENCRYPT SENSITIVE DATA AT REST (agente can't access cleartext)
Approach:
- Agente handles encrypted data (never has access to cleartext)
- Keys are stored separately (customer controls keys, not agente)
- If agente is compromised: Attacker gets encrypted data (useless without keys)
How:
-
Customer creates encryption key (locally, never shared)
-
Agente encrypts data before storing (uses encryption library)
- Example: Customer data → encrypt → store encrypted
- Agente never stores cleartext (only encrypted)
-
When agente needs data: Decrypt on-the-fly
- Example: Load encrypted data → decrypt (in agente memory) → process → forget plaintext
- Plaintext is never stored (only in memory briefly)
-
Keys are not stored with agente
- Customer manages key (doesn't give to agente)
- Agente asks customer for key (customer provides via secure input)
- Agente uses key temporarily (decrypts data, processes, forgets key)
Result:
- If agente is compromised: Attacker gets encrypted data (useless)
- If attacker reads agente memory: Attacker sees plaintext (maybe, if unlucky)
- But: Attacker can't read data from disk (encrypted)
Cost:
- Development: 2-4 weeks (encryption, key management)
- Performance: Some overhead (encryption/decryption takes time)
- UX: Customer must provide encryption key (friction)
Benefit:
- Data is protected (even if agente is compromised)
- Agente can't access plaintext without key (key is customer-controlled)
Target: Agentes that handle sensitive data (payment info, PII, secrets)
Option 2: CODE VERIFICATION (agente verifies it hasn't been modified)
Approach:
- Agente verifies its own code (checks if it's been modified by attacker)
- If modified: Agente refuses to run (alerts customer)
- Attacker can't silently modify agente (agente will notice)
How:
-
You create cryptographic hash of agente code
- Hash = fingerprint of code (any change = different hash)
-
Agente stores hash securely (hardware token, TPM, OS-protected storage)
- Hash is protected (attacker can't easily modify it)
-
On startup: Agente verifies itself
- Calculate: Hash of current code
- Compare: To stored hash
- If different: Code was modified (alert customer, refuse to run)
- If same: Code is unmodified (continue)
-
Customer is alerted (if verification fails)
- Alert: "Agente code has been modified, possible compromise"
- Customer: Take action (shutdown agente, investigate)
Result:
- Attacker can't silently modify agente (modification is detected)
- Customer is alerted (can take protective action)
- Agente can't be weaponized without alerting customer
Cost:
- Development: 1-2 weeks (verification logic, hash storage)
- Performance: Minimal (hash verification is fast)
- UX: Minimal (verification happens in background)
Benefit:
- Attacker can't modify agente silently (modification is detected)
- Early warning system (customer knows if agente is compromised)
Target: All local agentes (should always verify integrity)
Option 3: BEHAVIOR MONITORING (agente monitors for suspicious activity)
Approach:
- Agente monitors itself (detects if behavior changes unexpectedly)
- If behavior is suspicious: Agente alerts customer, stops executing
- Attacker can't modify agente without triggering alert
How:
-
Define normal behavior
- Normal: Agente makes API calls to SaaS server
- Normal: Agente reads customer data files
- Normal: Agente writes logs to disk
-
Define suspicious behavior
- Suspicious: Agente makes API calls to unfamiliar domains
- Suspicious: Agente tries to read system files (passwords, credentials)
- Suspicious: Agente uses excessive network bandwidth
- Suspicious: Agente spawns processes (indicates compromise)
-
Monitor in real-time
- Agente watches its own system calls (via OS hooks, APM)
- Detects: If behavior deviates from normal
- Alerts: If suspicious activity detected
-
Customer is alerted
- Alert: "Agente detected suspicious activity: Trying to read /etc/passwd"
- Customer: Takes action (shutdown, investigate, restore from backup)
Result:
- Attacker modifications are detected (behavior changes = alert)
- Early warning (before attacker can do damage)
- Customer can respond (has time to stop attack)
Cost:
- Development: 2-4 weeks (define behaviors, implement monitoring)
- Performance: Some overhead (monitoring takes resources)
- False positives: May alert on legitimate new features (needs tuning)
Benefit:
- Real-time detection (attacks are detected as they happen)
- Prevents damage (customer can stop attack before data is stolen)
Target: High-risk agentes (payment processing, sensitive data access)
Option 4: ISOLATION (agente runs in sandbox, limited access to device)
Approach:
- Agente runs in restricted environment (sandbox, container, VM)
- Agente can't access: Filesystem, network, processes (without permission)
- Even if agente is compromised: Attacker can't break out of sandbox
How:
-
Deploy agente in sandbox (Docker container, VM, OS-level sandbox)
- Agente is confined (can only access resources granted)
- Can't access: Other files, other processes, network
- Can access: Assigned storage, assigned APIs, assigned network
-
Define minimal permissions
- Agente can read: Customer data files (assigned)
- Agente can write: Logs, temp files (assigned locations)
- Agente can access: Your SaaS API (whitelisted)
- Agente can't access: System files, OS, other apps
-
If agente is compromised: Attacker is confined
- Attacker can use agente (within sandbox)
- But: Can't access system (sandbox prevents escape)
- But: Can't access other data (other files are outside sandbox)
- But: Can't access other apps (other processes are outside sandbox)
-
Damage is limited
- Attacker can only steal: Data inside sandbox (agente-assigned data)
- Attacker can't steal: System files, other customer data, other apps
Result:
- Compromise is contained (attacker can't break out of sandbox)
- Damage is limited (attacker can only access sandbox contents)
- System is protected (other apps, system are safe)
Cost:
- Development: 1-2 weeks (containerize agente, define permissions)
- Performance: Some overhead (sandbox has overhead)
- Deployment: Requires container runtime (Docker, etc.)
Benefit:
- Breach is contained (attacker can't pivot to other systems)
- System is protected (sandbox prevents privilege escalation)
Target: Browser-based agentes (isolate JavaScript in restricted frame), mobile agentes (use OS sandboxing)
Conclusão: Seu agente roda em device (compromised = botnet vector)
O que você precisa saber:
-
17 million devices in botnet is institutional signal (devices CAN be compromised at scale)
- Before: Thought customer devices are secure (customer is responsible)
- Now: 17 million precedent proves devices ARE compromised at scale (regularly)
- Result: Your agente WILL run on compromised devices (statistically inevitable)
-
If agente runs local, agente is only as secure as device
- Before: Thought local agente = private + fast (secure by default)
- Now: Local agente = vulnerable to device compromise (if device is hacked, agente is hacked)
- Result: Local agente = attack vector (attacker weaponizes agente, uses it for data theft, attacks)
-
When agente is weaponized, liability is on you (not on customer)
- Before: Thought you can blame customer ("Their device was compromised")
- Now: Court blames you ("You deployed agente on customer device, you're responsible for security")
- Result: Agente breach = your liability (R$ 1M - R$ 100M+ per incident)
-
You must implement defense in depth (encrypt, verify, monitor, isolate)
- Option 1: Encrypt sensitive data (agente handles encrypted data, keys are separate)
- Option 2: Code verification (agente verifies it hasn't been modified)
- Option 3: Behavior monitoring (agente alerts if suspicious activity detected)
- Option 4: Isolation (agente runs in sandbox, can't access outside resources)
- All options reduce risk (single option is not enough, use combination)
-
Act now (before agente is used in botnet-scale attack)
- Early action: Add defenses = easy + inexpensive
- Late action: After agente is weaponized = expensive + lawsuits + reputation damage
- Best case: Defense in depth (agente is resilient to device compromise)
Na OpenClaw, ajudamos SaaS a:
- ASSESS agente security posture (what's the risk if agente runs on compromised device?)
- DESIGN defense in depth (encryption, verification, monitoring, isolation—which combination is right?)
- IMPLEMENT security controls (add defenses, harden agente against compromise)
- MONITOR for compromise (detect if agente is weaponized, alert customer)
Resultado: Seu agente IA é RESILIENT (survives device compromise) + PROTECTED (encryption, verification, monitoring) + LIABLE-SAFE (can defend against lawsuits).
Seu agente IA roda em device customer?
Você sabe qual % de customer devices são compromised?
Você tem defenses if agente é weaponized?
Assess agente security + design defense in depth + implement controls + monitor for compromise →
Publicado em 1 de junho de 2026