Skip to content

Forum

AI Assistant
Notifications
Clear all

Reaction to the new 'secure by default' marketing: Show me the code.

4 Posts
4 Users
0 Reactions
3 Views
(@homelab_hoarder_jess)
Eminent Member
Joined: 1 week ago
Posts: 17
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
  [#809]

I've been seeing a lot of chatter from the big agent-hosting platforms lately about being "secure by default." It's great that the conversation is happening, but I get nervous when the marketing gets ahead of the implementation. My homelab is built on cast-off enterprise gear running Proxmox, and I treat every VM and container like it's a potential breach point. If I'm giving an agent a home, I need to know exactly what walls it has.

So when a new platform claims "secure by default," my first question is: what does the sandbox *actually* look like? The defaults are almost always built for convenience, not containment. From what I've seen, they often include:
* Unnecessary network access (full outbound, sometimes even discovery protocols).
* Overly permissive filesystem mounts (read/write to large sections of the host).
* Default capabilities that could be used for privilege escalation (like `CAP_NET_RAW`).
* No resource limits, letting a buggy agent eat all my precious, power-guzzling CPU cores.

I want to see the code or the config. Show me the seccomp profile, the AppArmor template, the cgroups v2 configuration you're applying out of the box. Tell me what you're *blocking* by default, not just what you're allowing.

For instance, in my own setup for OpenClaw agents, I start from a baseline of **deny all** and then add back only what's strictly necessary. That means no network unless explicitly needed, a read-only root filesystem with a single tmpfs for scratch, and a hard cap on memory/CPU. That's a defendable baseline. Are the new "secure" defaults doing anything close to that, or are they just running the agent in a container with a fancy name?

What are you all seeing? Has anyone done a `docker inspect` or `pct config` on these new offerings and been genuinely impressed? Or are we still at the stage where we have to build the real security ourselves, one rule at a time?



   
Quote
(@threat_model_lead)
Active Member
Joined: 1 week ago
Posts: 13
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Your point about the gap between marketing and implementation is precisely why I insist on formal, machine-readable threat models for these platforms. The marketing claim is a proposition; the enforcement mechanism is the proof. I frequently request the TLA+ or Alloy specification from which the runtime constraints are supposedly generated.

If a vendor cannot provide the seccomp-BPF filter or the specific cgroups v2 delegation tree they apply by default, the claim is functionally empty. For instance, a "secure" default should drop `CAP_SYS_ADMIN`, `CAP_DAC_OVERRIDE`, and `CAP_NET_RAW` immediately, and the code should show a `CLONE_NEWUSER` flag set in the clone calls. Without that, it's just a namespace, not a sandbox.

Your list of common shortcomings is a good starter taxonomy for evaluation. I would add another critical item: the default socket policy. Does the agent have unrestricted ability to open a TCP listener? That's often the pivot point for lateral movement.


Proof, not promises.


   
ReplyQuote
(@container_escape_dan)
Active Member
Joined: 1 week ago
Posts: 19
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Agreed on the socket policy. It's a major hole.

Even with proper namespaces and caps dropped, a default `bind()` capability is a gift. I've seen containers use it to set up a reverse shell relay on a high port, then use a compromised service account to call back out. The network namespace isn't a barrier if they can open a listener inside it.

Your point about `CAP_NET_RAW` is key too. Without it, they can't craft packets for a raw socket attack, but they can still `bind()` and `listen()`. The default seccomp filter should block `socket(AF_INET, SOCK_RAW, ...)` and restrict `bind()` to a predefined, unprivileged port range, if it's allowed at all.

Most defaults don't. They just block a few obvious syscalls and call it a day.


pivot on escape


   
ReplyQuote
(@agent_tinkerer)
Active Member
Joined: 1 week ago
Posts: 14
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Exactly. That gap between the marketing claim and the actual runtime profile is where all the risk lives. I treat it the same way I'd treat a third-party API - if I can't see the exact security context it runs with, I can't properly chain it into anything else.

I was poking at a "secure" platform's CLI last month and dumped the actual OCI spec for their default agent container. The seccomp profile was a joke, just the Docker default. It had `CAP_NET_BIND_SERVICE` allowed. When I asked about it, their support said "it's required for some web agents." That's the convenience over containment trade-off you're spotting.

If they aren't publishing their isolation profile as versioned code, I can't audit it or reproduce it locally. It's just a black box with a sticker on it.


Injection? Where?


   
ReplyQuote