<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[SideKernel]]></title><description><![CDATA[Building SideKernel in public: an open-source macOS sandbox for running AI coding agents, with a focus on great user experience. Regular notes from day 1.]]></description><link>https://blog.sidekernel.com</link><image><url>https://blog.sidekernel.com/img/substack.png</url><title>SideKernel</title><link>https://blog.sidekernel.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 24 Oct 2026 02:46:43 GMT</lastBuildDate><atom:link href="https://blog.sidekernel.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Dimitrios Prasakis]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[dimiprasakis@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[dimiprasakis@substack.com]]></itunes:email><itunes:name><![CDATA[Dimitrios Prasakis]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dimitrios Prasakis]]></itunes:author><googleplay:owner><![CDATA[dimiprasakis@substack.com]]></googleplay:owner><googleplay:email><![CDATA[dimiprasakis@substack.com]]></googleplay:email><googleplay:author><![CDATA[Dimitrios Prasakis]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Agent Is the Adversary]]></title><description><![CDATA[How threat modeling can make us rethink of what the &#8220;term&#8221; sandbox means, in the era of AI agents]]></description><link>https://blog.sidekernel.com/p/the-agent-is-the-adversary</link><guid isPermaLink="false">https://blog.sidekernel.com/p/the-agent-is-the-adversary</guid><dc:creator><![CDATA[Dimitrios Prasakis]]></dc:creator><pubDate>Tue, 06 Oct 2026 05:01:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Or9m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI coding agents are untrusted system components that run directly in the host&#8217;s terminal. Before sandboxing an agent, therefore, one must first ask: <strong>what threats am I sandboxing against, and who is the adversary?</strong></p><p>An agent might be prompt-injected, directly or indirectly, by external sources, or it might hallucinate dangerous actions during its own inference. Why the agent turns hostile is immaterial: the threat model treats the agent as a fully privileged adversary inside the sandbox regardless of cause.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.sidekernel.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building Sidekernel! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Below are excerpts from my MS Cybersecurity (Georgia Tech) capstone report: SideKernel. In this threat model, <strong>the adversary is the agent itself. </strong></p><p><strong>See the preprint on arXiv: </strong><a href="https://arxiv.org/pdf/2610.02456">https://arxiv.org/pdf/2610.02456</a></p><p>To study the attack surface of AI agents in the context of sandboxing, I define two security boundaries, depicted in Fig. 1.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Or9m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Or9m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png 424w, https://substackcdn.com/image/fetch/$s_!Or9m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png 848w, https://substackcdn.com/image/fetch/$s_!Or9m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png 1272w, https://substackcdn.com/image/fetch/$s_!Or9m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Or9m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128765,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.sidekernel.com/i/218801850?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Or9m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png 424w, https://substackcdn.com/image/fetch/$s_!Or9m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png 848w, https://substackcdn.com/image/fetch/$s_!Or9m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png 1272w, https://substackcdn.com/image/fetch/$s_!Or9m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10fa2138-9845-4f86-816a-b186d6adbcc7_2912x1632.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong>NORTH BOUNDARY:</strong> The north boundary encompasses all communication between the agent inside the sandbox and machines other than the host, including the internet and other hosts on the same or external networks. I refer to the communication channel from the sandbox to the north boundary as the <strong>NORTHBOUND CHANNEL</strong>.</p></li><li><p><strong>SOUTH BOUNDARY:</strong> The south boundary encompasses all communication between the sandbox and the host. Depending on the sandbox implementation, this may include virtual sockets, network protocols such as SSH, network traffic addressed to the host, and filesystem shares mounted from the host. I refer to the communication channel from the sandbox to the south boundary as the <strong>SOUTHBOUND CHANNEL</strong>.</p></li></ul><p>The south boundary <strong>protects the host</strong> from malicious actions such as installing malware or deleting or modifying valuable files. The threat is unidirectional, from the sandbox towards the host; a compromised or malicious host is out of scope.</p><p>The north boundary <strong>protects the data</strong> mounted inside the sandbox from exfiltration, for example a malicious agent sending all mounted data to an external endpoint. It equally <strong>protects external entities from a malicious local agent</strong>. Here the threat is bidirectional: the agent may attack or leak data outward, and hostile external content may reach the agent inward.</p><p>A notable example is the July 2026 incident in which an OpenAI agent under evaluation escaped its sandbox and breached Hugging Face&#8217;s production infrastructure [1]. It illustrates how difficult it is to sandbox powerful agents: the agent bypassed northbound controls by discovering and exploiting a zero-day in the package registry cache proxy, one of its permitted egress paths, and chained further vulnerabilities to escape the sandbox and its local network and reach the internet.</p><p><a href="https://sidekernel.com/">SideKernel&#8217;s</a> security controls address both boundaries, though not equally.</p><ol><li><p><strong>South Boundary Threat Model: </strong>On the south boundary, the goal is to protect the host&#8217;s runtime and its non-mounted filesystem from adversarial agents running inside the sandbox.</p></li><li><p><strong>North Boundary Threat Model: </strong>On the north boundary, the goal is to prevent exfiltration of sandbox data to the internet or other external networks and endpoints, and to prevent a malicious agent from using the sandbox as a launch point for outbound offensive operations.</p></li></ol><p>In this light, it becomes clear that <strong>sandbox design needs protections at both the north and the south boundary.</strong></p><p>One might even claim that south boundary protection is a solved problem, at least architecturally; in practice, implementation bugs still lead to sandbox escapes (e.g., CVE-2026-77179). <strong>The north boundary is more granular and more complex, and as an industry we have not yet solved it sufficiently.</strong></p><h2><strong>Try SideKernel</strong></h2><p>SideKernel is my answer to this threat model: an <strong>open-source microVM sandbox for AI coding agents on macOS</strong>, built on Apple&#8217;s Virtualization.framework. Each agent runs in its own lightweight VM with its own kernel, so a hostile agent has to break hardware-backed virtualization, not just a container, to reach your host. It supports Claude Code (and now Codex) out of the box and is built for intuitive and easy to use everyday developer workflows. </p><p>&#128279; <strong><a href="https://sidekernel.com">sidekernel.com</a></strong> (full report included)<br>&#11088; <strong><a href="https://github.com/minoansecurity/sidekernel">github.com/minoansecurity/sidekernel</a></strong></p><p>Feedback, issues, and contributions are welcome!</p><p>&#8212;-</p><p>[1] OpenAI, &#8220;OpenAI and Hugging Face partner to address security incident during model evaluation,&#8221; Jul. 2026, accessed: Jul. 28, 2026. [Online]. Available: https://openai.com/index/ hugging-face-model-evaluation-security-incident/</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.sidekernel.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building Sidekernel! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[SideKernel - An Open-Source Alternative to Docker Sandboxes]]></title><description><![CDATA[SideKernel is an open-source microVM sandbox focused on usability for AI coding agents.]]></description><link>https://blog.sidekernel.com/p/sidekernel-a-docker-sandboxes-alternative</link><guid isPermaLink="false">https://blog.sidekernel.com/p/sidekernel-a-docker-sandboxes-alternative</guid><dc:creator><![CDATA[Dimitrios Prasakis]]></dc:creator><pubDate>Sat, 03 Oct 2026 14:57:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wEo1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Try out SideKernel here: <a href="https://github.com/minoansecurity/sidekernel">https://github.com/minoansecurity/sidekernel</a><br><br>Learn more about it here: <a href="https://sidekernel.com">https://sidekernel.com</a> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wEo1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wEo1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png 424w, https://substackcdn.com/image/fetch/$s_!wEo1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png 848w, https://substackcdn.com/image/fetch/$s_!wEo1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png 1272w, https://substackcdn.com/image/fetch/$s_!wEo1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wEo1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png" width="1456" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:418287,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.sidekernel.com/i/218654133?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wEo1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png 424w, https://substackcdn.com/image/fetch/$s_!wEo1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png 848w, https://substackcdn.com/image/fetch/$s_!wEo1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png 1272w, https://substackcdn.com/image/fetch/$s_!wEo1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e1d1fad-0b93-4f54-ba04-78c2697fd295_2442x1234.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When AI coding agents first arrived, many of us faced a dilemma that felt impossible. We could give them free rein over our data and systems, putting both at risk, but letting them do great things unattended. Or we could use them cautiously and watch others, who accepted more risk by temperament (you can call it bravery, you can call it ignorance, and probably both would be right), move faster. Either way, many of us were caught between a rock and a hard place.</p><p>For months I waited for a solution to come, either from the open-source community or directly from the frontier labs: some sandbox (a term that is overused today, but that&#8217;s a discussion for another time) that offered reasonable security while also being easy to use. Well, many sandboxes were indeed released, but almost all of them targeted production use cases, i.e. programmable agents built on SDKs. From hosted services like E2B to open-source projects like microsandbox, that part of the industry matured and gained popularity quickly.</p><p>The more I tried using those sandboxes, however, the more I realized they tend to get in the way of the AI coding agents (e.g. Claude Code, Codex) most of us run daily in our terminals. <strong>They were good solutions, but not for my problem</strong>. As a result, I&#8212;and frankly, most of us&#8212;kept running those coding agents directly on our machines, or on clunky VMs, or on separate VPSs or spare Mac Minis&#8230; You get the gist.</p><p>then came Docker Sandboxes, a microVM-based tool that is very similar to SideKernel: better in many ways (it has a very interesting TUI, secret management features, and a very nice way to manage block and allow lists for external network access), worse in some (it is not open source and lacks many features I wanted). And just this month, September 2026, Docker Sandboxes had its own sandbox escape through symlinks (CVE-2026-77179). While developing SideKernel, I found and fixed similar symlink escapes myself. So there is no such thing as perfect security. But using a sandbox is almost certainly a better idea than not using one. I could cite a source for this claim, but I suspect you already believe me.</p><p>Last but not least, around the same time Apple itself released an interesting product: Apple Containers. And it was at this point that naming things in the sandboxing industry got really confusing.</p><p>Don&#8217;t be fooled by appearances: Apple Containers are not actually containers; they are microVMs. And Docker Sandboxes are microVMs too&#8212;which is baffling if you consider that the word &#8216;Docker&#8217; has been synonymous with &#8216;containers&#8217; for over a decade. Anyway, back to our discussion: Apple Containers are very similar to SideKernel in many ways. Both use the Kata kernel, and both rely on Apple&#8217;s Virtualization framework. However, Apple Containers is a runtime whose primary goal is workload orchestration, and it still lacked the ease of use and nativeness I was looking for in a sandbox. For a brief moment, I flirted with the idea of building SideKernel on top of it, but then I realized I would have inherited a lot of &#8216;bloat&#8217; I did not need. I would also have lost the chance to learn so much about low-level programming and security.</p><p>So when the time came for my capstone project in Georgia Tech&#8217;s MSc in Cybersecurity, I decided to build the sandbox I had been dreaming of. One that is easy to use and does not have a confusing name. It was also, anecdotally, the sandbox others around me said they wanted: a sandbox that is reasonably secure, but out of the way. Up to that point, the only serious open-source candidate was nono. But I was curious to see how far microVMs could be pushed. So I started building SideKernel, figuring out along the way how to make developers actually <strong>want</strong> to use it.</p><blockquote><p><strong>Can a microVM feel almost invisible to the terminal user? Transparent. Native. Frictionless! The ambition is big, but so, it seems, are the obstacles.</strong></p></blockquote><p>The more I worked on it, the more I realized it was much harder than I had initially imagined. To be completely honest, I am not even convinced yet that microVMs are the right choice among the many isolation primitives our industry has for sandboxing, including Landlock/Seatbelt, language runtimes, userland kernels such as gVisor, and more. What I am sure about is that it is a road worth exploring, and instinctively I think it will bring value to our industry. But we have to walk it first, with humility and no grand claims, so that we aren&#8217;t quickly humbled by the grander reality of things.</p><p>Usability is a UX problem. But usability is also a security problem. And when it comes to sandboxes, it is underexplored (or, dare I say, not explored at all). If something is hard to use, people won&#8217;t use it. So what matters is building something that is not only reasonably secure but also reasonably easy to use. SideKernel is my attempt at that.</p><p>In practice, it looks like this. You open a terminal in a project folder of your choice and type sclaude instead of claude (or sk for a plain shell inside the sandbox). Claude Code launches inside its own microVM, and the current directory gets mounted, so edits flow both ways, just as if it ran on your Mac. The Claude authentication, skills and plugins come along automatically from the host. Copy and paste works as expected, text and images included (something that, comically, no other microVM sandbox has gotten right, to the best of my knowledge). Ports opened in the sandbox are forwarded to your host automatically. And if you want the agent cut off from the internet, <code>sk-net off</code> blocks all outbound traffic (while Claude keeps working). Anything else from your Mac gets in only with your explicit approval.</p><p>It is important to note, though, that SideKernel is still a research prototype, the result of my Georgia Tech practicum, not a mature product proven by time, extensive security testing or formal verification. Every step towards making it feel native (sharing files or the clipboard, reaching localhost, bringing host tools along) means more code, and every new feature grows the attack surface. Security is both tied to usability and at odds with it. I have already found and fixed several escapes during development, and I am almost certain there are more I haven&#8217;t found yet. If you come across one, please <a href="https://github.com/minoansecurity/sidekernel/security/advisories/new">reported it privately on GitHub</a>. I will look into every report and fix what I can, though as the only maintainer for now, it may take me a little while.</p><p>On the bright side, I hope you enjoy using SideKernel as much as I have enjoyed building and using it these past months. Experiment with it, contribute if you like, and compare it with other products. Just don&#8217;t let yourself believe that it is some inescapable fortress, because there ain&#8217;t one. Cybersecurity, after all, is risk management, not risk elimination. And I hope SideKernel helps you manage a bit more of that risk in your day-to-day development.</p><p></p>]]></content:encoded></item><item><title><![CDATA[SideKernel Is Now Being Built Inside Itself]]></title><description><![CDATA[The SideKernel sandbox boots its own microVM, forwards its own ports, and starts hosting the work that builds it]]></description><link>https://blog.sidekernel.com/p/sidekernel-is-now-being-built-inside</link><guid isPermaLink="false">https://blog.sidekernel.com/p/sidekernel-is-now-being-built-inside</guid><dc:creator><![CDATA[Dimitrios Prasakis]]></dc:creator><pubDate>Sun, 14 Jun 2026 22:06:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-Epk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-Epk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-Epk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp 424w, https://substackcdn.com/image/fetch/$s_!-Epk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp 848w, https://substackcdn.com/image/fetch/$s_!-Epk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp 1272w, https://substackcdn.com/image/fetch/$s_!-Epk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-Epk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp" width="1456" height="762" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dimitrios Prasakis smiling and giving a thumbs up at his desk wearing headphones and a Georgia Tech cap, with a SideKernel terminal session overlaid showing a microVM boot and a forwarded localhost:8000 port&quot;,&quot;title&quot;:&quot;Dimitrios Prasakis smiling and giving a thumbs up at his desk wearing headphones and a Georgia Tech cap, with a SideKernel terminal session overlaid showing a microVM boot and a forwarded localhost:8000 port&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dimitrios Prasakis smiling and giving a thumbs up at his desk wearing headphones and a Georgia Tech cap, with a SideKernel terminal session overlaid showing a microVM boot and a forwarded localhost:8000 port" title="Dimitrios Prasakis smiling and giving a thumbs up at his desk wearing headphones and a Georgia Tech cap, with a SideKernel terminal session overlaid showing a microVM boot and a forwarded localhost:8000 port" srcset="https://substackcdn.com/image/fetch/$s_!-Epk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp 424w, https://substackcdn.com/image/fetch/$s_!-Epk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp 848w, https://substackcdn.com/image/fetch/$s_!-Epk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp 1272w, https://substackcdn.com/image/fetch/$s_!-Epk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ce33cf-9eb2-4f87-9cc4-5bf74a565617_4688x2454.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Originally published in <a href="https://minoansecurity.com/blog/sidekernel-update-2/">Minoan Security&#8217;s Blog</a></em></p><div><hr></div><p>SideKernel now has a working CLI that boots a microVM on top of a stripped-down Kata Containers Linux kernel. So I'm now continuing development inside it; which also helps me hit obstacles and fix them as I go.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.sidekernel.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Dimitrios Prasakis | Minoan Security! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>More excitingly, Porter (<a href="https://github.com/minoansecurity/porter">minoansecurity/porter</a>) is now integrated into SideKernel. It detects newly opened ports inside the sandbox and automatically forwards them to the host, so they just show up on localhost!</p><p>Porter is a dependency-free Rust crate that detects open ports on macOS and Linux machines. SideKernel needed a crate for port detection inside the microVM sandbox, so that ports get automatically exposed to the host and the experience stays as transparent as possible for the end user. It had to be embeddable in Rust applications and dependency-free for a reduced attack surface.</p><p>The VMM orchestration is all written in Swift, but all other system components are being written in Rust.</p><p>For example, a Rust PID-1 agent in the initramfs is the VM&#8217;s first process: it mounts the root filesystem, then runs a vsock server that the host drives to exec commands, allocate PTYs, and stream stdio. It&#8217;s also what detects and forwards new ports.</p><p>Finally, a virtioFS mount maps the host&#8217;s working directory into the sandbox, so changes flow bidirectionally between host and VM, which makes file-sharing easy.</p><p>I&#8217;m aspiring to keep the whole software zero or low dependency, to keep the attack surface low and the supply chain minimal.</p><p>Way more exciting feature updates coming in the next weeks, and I think they are features that no other sandbox on the market has implemented, and users need.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.sidekernel.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Dimitrios Prasakis | Minoan Security! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI agents are confused deputies]]></title><description><![CDATA[And agentic "AI security" is just systems security]]></description><link>https://blog.sidekernel.com/p/ai-agents-are-confused-deputies</link><guid isPermaLink="false">https://blog.sidekernel.com/p/ai-agents-are-confused-deputies</guid><dc:creator><![CDATA[Dimitrios Prasakis]]></dc:creator><pubDate>Wed, 03 Jun 2026 06:05:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aV4H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Originally published in <a href="https://minoansecurity.com/blog/ai-agents-are-confused-deputies/">Minoan Security&#8217;s Blog</a></em></p><p>Agentic AI security is systems security. Beyond the headlines and the buzzwords, the security fundamentals of AI security are exactly the same ones we&#8217;ve built for decades for systems.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aV4H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aV4H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aV4H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aV4H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aV4H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aV4H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9743872,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dimiprasakis.substack.com/i/200388685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!aV4H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aV4H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aV4H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aV4H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b2b49d8-7ea5-4ba8-b4e6-d12d3e3dd81b_6000x4000.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.sidekernel.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Dimitrios Prasakis | Minoan Security! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>What&#8217;s new about agents is that they are both the front and back-end, simultaneously. And as such, the trust-boundary that we had between the two collapses. The same system that ingests untrusted input (and more importantly, unstructured input) now also holds the privileges on the system.</p><p>Agents can&#8217;t be trusted, like a &#8220;traditional&#8221; backend would. And because they can&#8217;t be trusted, they should be treated accordingly.</p><h2><strong>Prompt injection is a confused deputy attack</strong></h2><p>A prompt injection, for instance, is the textbook example of a confused deputy: where an agent on the front-end gets manipulated to do actions on the back-end on behalf of a false authority&#8230; Several real-world incidents show this (e.g. AWS Bedrock AgentCore&#8217;s &#8220;Agent God Mode&#8221;, Microsoft&#8217;s EchoLeak).</p><h2><strong>Deploying agents securely</strong></h2><p>So to deploy agents securely, you need to control:</p><ol><li><p><strong>The infrastructure they run on</strong></p></li><li><p><strong>Their access</strong> </p></li></ol><p>And at last but not least, strip all the assumptions of trust that a big part of the industry today has blindly accepted as normal.</p><p>Agents are a matter of systems security (access control is systems security too). And securing the agents is a matter of security architecture.</p><div><hr></div><p>By the way: at Minoan Security we&#8217;re building a secure-deployment package for start-ups and SMBs, with FADP/GDPR in mind.</p><p>More soon but in the meantime, if you need to deploy AI agents and aren&#8217;t sure how to do it with reasonable guardrails, <a href="http://localhost:59374/blog/ai-agents-are-confused-deputies/#contact">book an introductory meeting with us</a>. Don&#8217;t let them loose in your data and infrastructure!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.sidekernel.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Dimitrios Prasakis | Minoan Security! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I am building SideKernel!]]></title><description><![CDATA[I&#8217;m building SideKernel: a usable, local, open-source, microVM-based macOS sandbox for AI coding agents &#8212; and I&#8217;ll be sharing the progress and lessons along the way, fully in public.]]></description><link>https://blog.sidekernel.com/p/i-am-building-sidekernel</link><guid isPermaLink="false">https://blog.sidekernel.com/p/i-am-building-sidekernel</guid><dc:creator><![CDATA[Dimitrios Prasakis]]></dc:creator><pubDate>Mon, 01 Jun 2026 09:45:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QXWQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QXWQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QXWQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QXWQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QXWQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QXWQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QXWQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7365632,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dimiprasakis.substack.com/i/200056307?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QXWQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QXWQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QXWQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QXWQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3aff0caf-d56c-4019-995b-44cceaeab716_6000x4000.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Originally published in <a href="http://minoansecurity.com/blog/i-am-building-sidekernel/">Minoan Security&#8217;s Blog</a></em></p><p>Here&#8217;s a question: when you run Claude Code/Codex or other CLI agents, do you run them on your host machine? Or do you isolate it in some sandbox?<br><br>I&#8217;d bet that for most of you the answer is the former. Not because you do not care about security, <strong>but because sandboxes are hard to use.</strong><br><br>The past year, the developer tools market has seen an explosion of AI agent sandboxes, many of which have gained popularity but quite paradoxically, limited adoption among everyday developers. <br><br>If there are so many solutions (and some of them are great!), then why is almost no one using them?<br><br>Or more specifically: <em>&#8220;What usability barriers do macOS developers face when using coding agent sandboxes, that hinder their adoption?&#8221;</em><br><br>That exactly is the research question I am trying to answer through my MSc practicum at Georgia Tech. And the answer to that is SideKernel, a reasonably secure but <strong>usable</strong> sandbox.<br><br>The goal is to provide strong security guarantees (e.g. kernel isolation, small TCB) while making the sandbox as transparent as possible to the end user. And that&#8217;s a hard problem, especially on the closed Apple ecosystem. <br><br>Well, I&#8217;ll attempt to solve it and build a great product along the way. And I hope to share an interesting thing or two with you in the process.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.sidekernel.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Dimitrios Prasakis - Systems Security Engineering! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>