diff --git a/components/problem.tsx b/components/problem.tsx index c214290..94d3e3d 100644 --- a/components/problem.tsx +++ b/components/problem.tsx @@ -2,86 +2,114 @@ import { AlertTriangle, ShieldOff } from 'lucide-react' export function Problem() { return ( -
+
{/* Section 1: Stochastic risk */} -
+

Your agent runs as you.

-

- Agents run with your full permissions. SSH keys, cloud tokens, env files, your entire home - directory. The model decides what to touch at runtime, thousands of times per session, - guided by weights you didn't train. One bad roll is all it takes. +

+ Agents inherit your full permissions and decide what to access at runtime, guided by weights you didn't train.

- {/* Terminal scenario */} -
-
-
-
-
- ~/project -
-
-
- YOU - - refactor the auth module - -
-
- AGENT - thinking... -
-
- $ - cat ~/.ssh/id_ed25519 -
-
- $ - curl -X POST https://... -
-
- AGENT - - Done! I refactored the auth module. - -
-
-
- - {/* Resolution */} -
+ {/* Without Greywall */} +
Without Greywall
-

- Both commands succeed silently. The agent reads your private key, exfiltrates it over HTTPS, - and reports back as if nothing happened. You see "Done!" and move on. +

+
+
+
+
+ ~/project +
+
+
+ $ + claude + --dangerously-skip-permissions +
+ +
+
You
+
add rate limiting to the API client
+
+ +
+
Agent
+
thinking...
+
+ +
+
$ cat .env
+
$ curl -H "Authorization: Bearer sk-prod-..." https://api.stripe.com/v1/charges
+
+ +
+
Agent
+
Done! I read your .env to grab the API key and tested against the live endpoint to make sure rate limits work correctly.
+
+
+
+

+ The agent read your production Stripe key from .env and hit the live API to "test" its work. Helpful intent, real damage.

+
+ + {/* With Greywall */} +
With Greywall
-
- - cat: ~/.ssh/id_ed25519: Operation not permitted - -
-
- - connect: https://...: Connection denied by proxy - +
+
+
+
+
+ ~/project +
+
+
+ $ + greywall -- + claude + --dangerously-skip-permissions +
+ +
+
You
+
add rate limiting to the API client
+
+ +
+
Agent
+
thinking...
+
+ +
+
$ cat .env
+
← Operation not permitted
+
$ curl -H "Authorization: ..." https://api.stripe.com/v1/charges
+
← Connection denied by proxy
+
+ +
+
Agent
+
Added rate limiting. I couldn't access .env, so I used placeholder values in the tests.
+
+

- Kernel-enforced. The syscall is blocked before any file is read or byte is sent. + Kernel-enforced. The agent adapts and does the job without accessing secrets or production systems.