<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shubham Sharma | CreateOS</title>
    <description>The latest articles on DEV Community by Shubham Sharma | CreateOS (@shubham_sharma_8).</description>
    <link>https://dev.to/shubham_sharma_8</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3988267%2Fb8609603-b7fc-49a5-bd90-7e4bc82b673b.png</url>
      <title>DEV Community: Shubham Sharma | CreateOS</title>
      <link>https://dev.to/shubham_sharma_8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shubham_sharma_8"/>
    <language>en</language>
    <item>
      <title>Governed micro-VMs for untrusted code: isolation, egress control, and fork</title>
      <dc:creator>Shubham Sharma | CreateOS</dc:creator>
      <pubDate>Tue, 07 Jul 2026 13:30:00 +0000</pubDate>
      <link>https://dev.to/shubham_sharma_8/governed-micro-vms-for-untrusted-code-isolation-egress-control-and-fork-1o5f</link>
      <guid>https://dev.to/shubham_sharma_8/governed-micro-vms-for-untrusted-code-isolation-egress-control-and-fork-1o5f</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fude9tax1v0nfcy84oyp1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fude9tax1v0nfcy84oyp1.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI agents are writing and running more code than anyone planned for. Most of it falls into the same category: code the system did not write, has not reviewed, and cannot fully trust.&lt;/p&gt;

&lt;p&gt;Most sandbox stacks were built for a different job. They run snippets, not systems. And they run them with weaker defaults than most teams realize until something goes wrong.&lt;/p&gt;

&lt;p&gt;Three things actually matter once you are running code you do not trust. How contained a failure is. How much the workload can talk to on its way out. How cheaply you can branch and discard experiments instead of rebuilding environments from scratch.&lt;/p&gt;

&lt;p&gt;Isolation: a real kernel, not a shared one&lt;/p&gt;

&lt;p&gt;Most sandbox providers run workloads as containers. Fast, cheap, and fine for a lot of things. But every container on a host shares that host's kernel. A container escape does not just compromise the one workload. It is a path to everything else running there.&lt;/p&gt;

&lt;p&gt;CreateOS Sandbox runs every workload as a Firecracker micro-VM with its own guest kernel. If a sandbox gets exploited, the blast radius is that micro-VM. No shared-kernel escape path to the host or to any other sandbox. This is the default, not a config option you remember to turn on.&lt;/p&gt;

&lt;p&gt;Egress control: allowlist, enforced at the kernel&lt;/p&gt;

&lt;p&gt;Isolation answers whether code can break out. It does not answer what it can talk to while running. For agent workloads, that is the harder question.&lt;/p&gt;

&lt;p&gt;An agent usually needs to call a handful of external APIs. It should never have a path to your internal database or anything else on your network. Most providers give two settings: full internet access or none. Neither fits.&lt;/p&gt;

&lt;p&gt;Sandbox enforces egress at the kernel via eBPF:&lt;/p&gt;

&lt;p&gt;Allowlist-only by host, IP, or CIDR. The first rule locks down everything else by default.&lt;br&gt;
No ingress by default. One-way outbound unless you explicitly open a tunnel or ingress URL.&lt;br&gt;
Bandwidth quotas per sandbox with recharge and an unmetered override when needed.&lt;br&gt;
Enforcing this in the data plane at the same layer that would catch a kernel-level attempt to route around it is a different guarantee than a proxy inspecting traffic after the fact.&lt;/p&gt;

&lt;p&gt;Fork: treating lifecycle as a primitive&lt;/p&gt;

&lt;p&gt;Agent workloads are usually not long-lived servers. You run an experiment to a decision point, branch it into a few variations, evaluate, and throw most of the results away. If lifecycle management is bolted on, every branch means rebuilding from scratch.&lt;/p&gt;

&lt;p&gt;Sandbox treats pause, resume, fork, and kill as first-class primitives. Fork a running sandbox server-side to branch its exact state across N parallel rollouts. Keep the winner. Discard the rest. Pause releases compute while preserving RAM, disk, and process state. Resume brings it back warm or cold. Billing per second, so a paused sandbox costs nothing while it waits.&lt;/p&gt;

&lt;p&gt;Where this stands today&lt;/p&gt;

&lt;p&gt;Sandbox is alpha. No GPU passthrough yet. No live vertical resize once a sandbox is running. Formal compliance certifications are roadmap, not shipped. These are the actual current edges.&lt;/p&gt;

&lt;p&gt;Quickstart here: createos.sh/app/sandbox&lt;/p&gt;

&lt;p&gt;Curious how others are handling the isolation, egress, and lifecycle problem for agent-generated code. What has actually held up in production for you?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>discuss</category>
      <category>devops</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
