YOLO Mode com segurança: sandboxes de microVM para qualquer agent — Rowan Christmas, Docker
Autoria: AI Engineer · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: YOLO Mode, Safely: MicroVM Sandboxes for Any Agent — Rowan Christmas, Docker · Canal: AI Engineer · 11:11 · Assistir no YouTube
Tópicos: Agentes de IA, Cibersegurança e segurança de software, Governança e regulação de IA, Segurança de IA
Rowan Christmas, da Docker, mostra como um agent pode acessar dados sensíveis do computador mesmo quando o usuário acredita estar protegido pelo harness. Em um teste com Claude Code, cinco prompts bastaram para localizar informações pessoais e financeiras no histórico do navegador. A apresentação defende o uso de microVMs para isolar arquivos, rede e secrets, em vez de depender apenas de instruções para que o agent se comporte com segurança. O palestrante também apresenta o SBX, da Docker, e descreve controles de governança atuais e planejados.
Pontos-chave
Seção intitulada “Pontos-chave”- Um agent pode encontrar dados sensíveis no computador, mesmo quando o usuário não pede diretamente que ele procure informações financeiras.
- Instruções no prompt, como pedir que o agent não faça algo malicioso, não são uma barreira de segurança suficiente.
- MicroVMs isolam o sistema de arquivos e usam um kernel próprio, ajudando a impedir que o agent acesse dados do host.
- O SBX cria uma VM e um sandbox para executar agents, com controles para restringir acesso a arquivos e tráfego de rede.
- O palestrante demonstra que o sandbox bloqueia o acesso ao histórico do navegador e, por padrão, certas conexões de rede.
- Os sandboxes podem fornecer trilhas de auditoria e proteger secrets durante requisições de rede.
- A apresentação menciona planos para rastrear a identidade dos agents e as cadeias de delegação, além de aplicar políticas com Cedar.
- Os controles apresentados incluem regras de rede, pontos de acesso ao sistema de arquivos e configuração do catálogo MCP.
- É possível montar outros sistemas de arquivos como somente leitura para permitir que o agent consulte código sem alterar outros repos.
- O SBX pode executar diferentes ferramentas e cargas de trabalho, incluindo Claude Code, Codex, shell, scripts Python e servidores web.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:12 | O risco de confiar apenas no harness | O palestrante relata como Claude Code encontrou histórico do navegador e dados financeiros após poucos prompts. |
| 03:54 | Isolamento com microVMs e demonstração do SBX | A apresentação explica como microVMs isolam arquivos, rede e secrets, e demonstra a execução de um agent no SBX. |
| 07:00 | Governança, identidade e políticas para agents | O palestrante defende segurança na fronteira da microVM e descreve auditoria, delegação e controles de governança. |
| 09:37 | Execução de ferramentas e acesso a repos | O SBX é apresentado como ambiente para várias ferramentas e cargas de trabalho, com a opção de montar outros sistemas de arquivos como somente leitura. |
Citações
Seção intitulada “Citações”Ele não é seu amigo. — 03:24
Queremos segurança desde o projeto, não apenas torcer, dizer por favor e ver o que acontece. — 04:25
Fazer isso no nível do harness não funciona de verdade. Os agents encontram um jeito de contornar. — 07:00
Quero a garantia de que ele está realmente fazendo o que diz, com a API que especifiquei. — 10:40
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- microVM (conceito): Máquina virtual leve com kernel próprio, usada na apresentação para isolar agents do computador host.
- SBX (ferramenta): Binário da Docker que inicia sandboxes de microVM para executar agents e outras cargas de trabalho.
- Docker (empresa): Empresa responsável pelo produto SBX apresentado na palestra.
- Rowan Christmas (pessoa): Gerente de produto da Docker que apresenta o SBX e seu uso para segurança e governança de agents.
- Claude Code (ferramenta): Ferramenta de programação usada pelo palestrante para demonstrar o acesso a dados locais e a proteção oferecida pelo sandbox.
- CrowdStrike (empresa): Empresa cujo relatório de segurança foi mencionado após o teste de acesso a credenciais no computador.
- Cedar (conceito): Linguagem de políticas citada como base para definir controles sobre as ações dos agents.
- MCP (conceito): Protocolo e ecossistema de servidores cujo catálogo pode ser controlado, segundo a apresentação.
- Claude Code (modelo): Agent de programação citado como exemplo de ferramenta que pode ser executada dentro do sandbox.
- Codex (ferramenta): Ferramenta que o palestrante menciona como outra opção executável dentro do sandbox.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:12 Olá, pessoal. Espero que tenham almoçado bem. Sei que esta é uma das últimas palestras da conferência inteira. Tentei deixá-la um pouco envolvente e divertida. Então, a participação da plateia é incentivada. Vamos ver como vai ser. Estou aqui com a Docker. Sou um dos nossos gerentes de produto que trabalha no nosso novo produto de sandbox. Não sei se vocês já viram. É um novo binário da Docker. Ele se chama SBX. É uma microVM. É muito legal. Venham conhecer. Mas vou contar por que talvez vocês queiram usá-lo no
00:45 contexto de agents, para fazer governança e manter a segurança em geral nas suas necessidades de plataforma com agents. Hoje em dia, todos vocês estão fazendo muito mais com IA do que imaginavam que fariam cinco anos atrás. Pelo menos eu estou. E, em geral, achamos que estamos protegidos pelos nossos harnesses de programação, porque, se tentarmos fazer algo ruim, eles às vezes nos impedem. E, quando vemos histórias assim, pensamos: “Meu Deus, eu jamais cometeria esse erro de deixar minha IA apagar o banco de dados de produção. Sabe, eu
01:17 programo há 30 anos. Não tem como eu fazer uma coisa dessas.” Então, decidi descobrir o que acontece se eu tentar invadir a mim mesmo de verdade e até onde consigo chegar com as nossas ferramentas e com o que nos disseram ser um ambiente seguro. Abri o Claude Code no desktop do meu Mac e pedi que ele procurasse o histórico do meu navegador. Ele encontrou na hora, o que me impressionou bastante. Perguntei o que eu podia fazer com aquilo. E então nós
01:50 começamos a investigar minhas contas bancárias, o que me surpreendeu. E ele as encontrou, o que me deixou bem descontente. Inventei nomes falsos para os bancos. Esses não são meus dados reais, só para deixar claro. Mas ele encontrou todos os meus dados bancários reais. E foi ainda mais longe. Descobriu que eu tinha pedido cheques recentemente e que estava usando o Zelle. Informou os quatro últimos dígitos da conta que eu estava usando. Fiquei muito impressionado. E aqui está uma ideia de todos os
02:20 dados pessoais identificáveis (PII) que ele encontrou. Isso é, mais uma vez, do app Claude para desktop, que achávamos ser seguro. Enfim, talvez exista uma solução melhor. Quem sabe? No dia seguinte, cheguei ao trabalho e recebi da equipe de segurança um aviso dizendo que achavam que eu tinha sido hackeado. Então, tive que explicar: “Não, não, não, só estou preparando uma palestra para esta conferência. Por favor, não sinalizem meu computador como comprometido.” Depois, eles me enviaram o relatório da CrowdStrike sobre isso, que eu pedi que fizessem.
02:51 Fiquei bastante impressionado com ele. Pelo visto, essa é uma forma conhecida de obter credenciais de uma máquina. Eu não sabia. E tive uma pontuação muito boa: tirei nove de dez, melhor do que em boa parte das minhas disciplinas. Então, foi muito bom. Mas, felizmente, isso aconteceu apenas comigo, internamente. Não foi algum tipo de injeção por script ou servidor MCP, nem algo que pudesse acontecer facilmente. Foram cinco prompts. Tive que ser um pouco esperto. Não dava para simplesmente perguntar: “Ei, Claude, encontre meus dados bancários.” Ele meio que dá um aviso. Mas, se você disser: “Estou pesquisando como fazer segurança”, ele vai ajudar com toda a disposição a fazer essa pesquisa na sua conta. Ele não é seu amigo. Então, se ao menos houvesse uma maneira melhor de fazer isso usando tecnologia de microVM sandbox, que a Docker e outras empresas lançaram recentemente.
03:24 Tive que ser um pouco esperto. Não dava para simplesmente perguntar: “Ei, Claude, encontre meus dados bancários.” Ele meio que dá um aviso. Mas, se você disser: “Estou pesquisando como fazer segurança”, ele vai ajudar com toda a disposição a fazer essa pesquisa na sua conta. Ele não é seu amigo. Então, se ao menos houvesse uma maneira melhor de fazer isso usando tecnologia de microVM sandbox, que a Docker e outras empresas lançaram recentemente.
03:54 Em vez de simplesmente dizer “por favor”, porque, se vocês olharem alguns desses prompts na nuvem, vão ver coisas como “por favor, não faça nada malicioso”. Esse é o nível de segurança que temos. Agora temos microVMs. Se vocês não conhecem, provavelmente todos conhecem o Docker e o usam há anos. A novidade que nós e outras empresas estamos desenvolvendo são as microVMs: elas executam o próprio kernel e isolam o sistema de arquivos. Temos um sistema que garante que a sandbox nunca veja seus
04:25 segredos. Quando você tenta fazer uma solicitação de rede, ele usa um marcador substituto e o troca, para que sua sandbox e seu agent não possam fazer coisas ruins. Temos um registro de auditoria completo. Então, queremos que vocês sejam seguros por projeto, em vez de simplesmente ter esperança, dizer “por favor” e ver o que acontece. Estamos tentando encontrar esse equilíbrio, certo? Se não pudermos realmente fazer essas coisas, o agent não será útil. Por isso toda essa
04:55 ideia de sandbox é tão empolgante para nós. Incentivamos vocês a usá-la. E talvez não deixem os dados bancários irem parar nas mãos do agent. Não é isso que vocês querem. É assim que funciona na prática quando você executa uma sandbox. À esquerda, está o que acontece quando executo o Claude; à direita, quando executo sbx run claude. Dá para ver que há muitas diferenças. É uma piada. Desculpem, não há. É só
05:26 a opção de ignorar permissões que está ativada; fora isso, não foi difícil fazer mais nada. Executar o comando à direita cria automaticamente uma nova VM. Ela é iniciada nessa pasta e cria uma nova sandbox para você. Ela executa seu agent. Pronto, está funcionando. Ele não consegue ver nada. Então, se tentarmos o ataque ao histórico do navegador com o Claude normal, ele vai procurar seu histórico de navegador com toda a disposição. Mas, se eu executar na versão sandbox,
05:58 ele nem sequer acha que há um navegador instalado na sua máquina. Bem legal. Não há diferença. Tive que digitar mais sete teclas para chegar a isso, mas acho que vale muito a pena. O mesmo vale para o tráfego de rede de saída e de entrada. Aqui, tentei fazer com que ele procurasse o The Pirate Bay, porque sabia que seria bloqueado. E, de fato, foi bloqueado por padrão. Outra coisa que dá para notar — talvez seja difícil de ver —
06:28 é que o Claude gosta de enviar muitos dados de telemetria para a instância do Datadog deles. Então, se você usa o Claude, está enviando muitos dos seus dados para a Anthropic, a menos que use sandboxes; nesse caso, esse tráfego é bloqueado de forma inteligente. Outra coisa que eu diria sobre sandboxes é que são muito fáceis de usar. Agora, todos os desenvolvedores da Docker escrevem todo o código em sandboxes. Então, usamos isso todos os dias. Estamos escrevendo todo o nosso código nelas. Se não usarmos, levamos uma bronca. Então, vale a pena dedicar nosso tempo a
07:00 configurar esses padrões. Tudo isso é configurável. Agora que falamos sobre por que isso importa: fazer isso no nível do harness não funciona muito bem. Os agents encontram um jeito de contornar. Se chegar à sua máquina host, já é tarde demais. Então, você quer essa proteção na fronteira da microVM. Achamos que é a melhor maneira. Outras pessoas também acham. E é fácil de usar. Se você trabalha com consultoria, se tem um diretor de segurança, se presta serviços para clientes, seja qual for o caso, provavelmente lida com isso no dia a dia.
07:31 Então, você não quer apenas que isso seja útil; também quer fazer coisas e permitir que seus agents façam coisas diferentes, certo? Uma das coisas que nos empolgam bastante é fazer o rastreamento de identidade no nível do agent e das cadeias de delegação. Assim, você pode começar a perguntar: “Ei, como é que isso aconteceu?” E pode voltar e dizer: “Ah, foi porque um agent fez isso, e um humano realmente autorizou esse agent
08:03 para fazer isso. Não aconteceu por mágica. Nós não sabíamos. Não é que não saibamos o que aconteceu. Agora, vamos começar a rastrear isso, contar a vocês sobre isso e deixar que escrevam políticas que realmente façam a degradação do que vocês podem fazer com base em políticas Cedar, com base em coisas novas que forem acontecendo. E talvez vocês pensem: “Meu Deus, isso é muito bom. Eu gostaria de comprar isso agora. Como faço para comprar isso de vocês?” Então, tenho meu slide de marketing.
08:34 Meu time de marketing está muito bravo comigo por ter feito isso, mas acho engraçado e fofo para a governança de IA. Então, com certeza, falem sobre isso. Certo. Como é a governança de IA? Vocês estão fazendo isso — é assim que fica, mais ou menos, numa maquete. No momento, temos controles de rede: vocês podem configurar como permitir ou negar; podem configurar pontos do sistema de arquivos; e também podem decidir como será o catálogo de MCP. Além disso, se estiverem executando nosso servidor MCP, os próprios servidores MCP são executados em um
09:06 sandbox. Portanto, eles também são regidos por todos esses controles diferentes. No futuro, vamos adicionar mais recursos. Uma das coisas que ouvimos de muita gente nesta conferência é que querem controles de rede L7. Também querem controles no nível do sistema de arquivos por repo do GitHub, certo? Tipo, querem que o agent possa ler e gravar em alguns repos e em algumas áreas de certos repos, mas não em outras, certo? Então, tudo isso virá mais adiante, mas
09:37 tudo o que mostrei hoje está funcionando. E vocês deveriam passar no nosso estande para ver como é fácil instalar. Funcionamos no Mac, Windows e Linux, com base no gerenciador de pacotes de sua preferência. E, como podem ver, no fim é só sbx run. Aliás, não é apenas na nuvem. Os sandboxes são máquinas virtuais completas. Então, vocês podem executar um shell, podem executar o Codex, podem executar o que quiserem, podem executar um trabalho em Python,
10:08 podem executar um servidor web, qualquer coisa que quiserem, mas queremos facilitar para vocês começarem a usar e deixarem tudo funcionando. Então, este é mais ou menos o nosso padrão. Assim, vocês podem simplesmente entrar e iniciar uma instância do Claude Code ou do Codex. A sensação é nativa. Funciona exatamente como a que vocês usaram hoje, mas com todas essas proteções em vigor. Além disso, vocês podem montar outros sistemas de arquivos. Então, o que eu faço quando estou trabalhando em um trecho de código relacionado a outros repos é montá-los como somente leitura. Assim, meu agent
10:40 consegue ver o que estou fazendo, consegue ver minha outra base de código, mas sei que não vai fazer commits aleatórios em outros repos só para fazer minha coisa funcionar, certo? Quero a garantia de que ele está realmente fazendo o que diz que está fazendo, usando a API que especifiquei. É isso. Foi bem rápido. Temos um estande. Ainda temos alguns óculos de sol e baterias portáteis para distribuir. Vocês deveriam passar no nosso estande. Depois, vou até lá e faço uma demonstração para vocês, e aí vocês também vão ficar tão estilosos quanto
11:11 Macho Man Randy Savage com esses óculos. Então, é isso. Obrigado.
Transcrição original
[00:12] Hey everybody, I hope you had a good lunch. I know it’s one of the last talks of the entire conference. I tried to make it somewhat engaging and amusing. So, you know, audience participation is is encouraged. We’ll see how it goes. So, I’m here with Docker. Uh, I’m one of our product managers that works on our new sandbox product. I don’t know if you’ve seen it. It’s a new binary for Docker. It’s called SBX. Uh, it’s a microVM. It’s really cool. You should come check it out. But I’m going to tell you why uh you might want to use it in
[00:45] context of agents doing governance and being safe in general for your agentic platforming needs. So right now, you know, all of you are doing way more AI than you ever thought you would 5 years ago. At least I am. And we generally think that we’re being protected by our coding harnesses because if we try to do something bad, they will sometimes stop us. And when we see stories, we think, “Oh my gosh, I would never make this mistake to have my AI drop my prod database. You know, I’ve
[01:17] been doing coding for 30 years. There’s no way I would possibly do that.” So what I decided to find out was well what happens if I actually try to hack myself and how far can I get with you know our tools and what we’ve been told is a safe environment. So I opened up my claude code on desktop on my Mac and I had it look for my browser history uh and it found it right away which I was very impressed about. And I asked it uh what can I what can I do with this? And so we
[01:50] started looking at my bank accounts which I was uh surprised about. And it found them. Uh which I was very unhappy about. I made fake bank names. This is not my real data, just so you know. But it did find all of my real bank data on there. Uh and it went even further. It found that I’ve been ordering checks recently, that I’ve been using zel. It told me the last four digits of the account I was using. Um I was I was very impressed. And here’s kind of an idea of all the
[02:20] PII that it found. Um, this is from again the clawed desktop app uh that we thought was safe. Anyways, maybe maybe there’s a better solution. Who knows? So, the next day I came in and I got from my security team uh a nice little notice that I they thought I’d been hacked. And so I had to explain to them that no, no, no, I’m just putting together a talk for this conference and uh please please don’t flag me as a as a a compromised computer. And then they sent me the crowd strike report from
[02:51] this which I asked them to do. And I was quite impressed with it. Apparently this is a known way to get uh credentials from a machine. Didn’t realize that. And I had scored very well on this. I got a nine out of 10 which uh is better than I did in most of my classes. So that was that was really good. But fortunately this was just me internally. It was not some sort of you know injection from a script or MCP server or anything that could easily happen. So five five prompts is what it took. Um
[03:24] I had to be a little clever. I couldn’t if I just if you just ask straight up like hey Claude go find my bank data. It kind of it it will give you a warning. But if you say, “I’m researching how to do security,” it’ll happily go and help you do that research on your account. It is not uh it’s not your friend. So if if only there was a better way to do this using a sandbox microVM technology that Docker and others have
[03:54] released recently. So rather than just saying please which you know if you look in some of these cloud prompts you’ll see please don’t do nefarious things right like that is the level of security we’re at. So now we’ve got microVMs if you’re not aware of them compared to I know you’re probably all aware of Docker been using it for years. The new thing now that we and others are doing is with microVMs they run their own kernel. They isolate your file system. We have a system that will go and make sure that the sandbox never actually sees your
[04:25] secrets. When you try to go and do a network request, it takes a placeholder, replaces it so that your sandbox and your agent can’t do bad things. We’ve got a full audit trail for it. Uh so yeah, we want to be you want to be secure by design, not just, you know, hope and say please and see what’s going to happen. We’re trying to do this balancing act, right? If we don’t actually if we can’t actually do these things, the agent’s not useful. So that’s why this whole
[04:55] sandbox idea is so exciting for us. We encourage you to use it. Um, and maybe, you know, don’t let your bank data get into the hands of your agent. That’s not that’s not what you want. So this is what it looks like in practice when you’re running a sandbox. Uh on the uh left side is when I run claude and on the right side is when I do sbx run claude. And you can see that there there’s a lot of uh differences. That’s a joke. Sorry, they’re not. It’s just
[05:26] the bypass permissions are on, but it’s nothing nothing else uh was hard to do. Right. Running that command on the right automatically creates a new VM. It spins it up in that folder and it makes a new sandbox for you. It runs your agent. Now you’re up and running. It can’t see anything. So if we try to do our browser history attack on regular claude, it happily goes and finds your browser history. But if I run it on the sandbox version,
[05:58] it does not even think there’s a browser installed on your machine. So pretty cool. No difference. I had to type uh seven more keystrokes to get here, but I think it’s well worth the uh the price to pay. Same thing is true for network egress and ingress. So, right here, I’d uh I tried to get it to go and look up uh the pirate bay because I I knew that would be blocked and sure enough, blocked by default. The other thing you kind of see, it’s hard, maybe it’s hard to see,
[06:28] but like the uh Claude likes to really send back a lot of telemetry data to their data dog instance. So if you’re using Claude, uh you are sending anthropic a lot of your data, unless you’re using sandboxes, in which case you’re cleverly being blocked by that. The other thing I’ll say about sandboxes, they’re so easy to use. Every developer at Docker now writes all of their code in sandboxes. So we are using this every day. Hey, we’re writing all of our code in it. If we don’t use it, we get uh we get yelled at. So, it’s
[07:00] worth our time to to go and do that little defaults on this. All of this is configurable. Um, and so now that we talked about like why this matters, right? So, doing this at the harness level doesn’t really work. Agents find their way around it. If it gets down to your host machine, it’s too late. So, you want to be at that microVM boundary. We think it’s the best way. other people do too. And it’s easy to use. If you’re working in consulting, if
[07:31] you’ve got a, you know, chief security officer, if you do client work, whatever it might be, you’re probably dealing this with this on a day-to-day basis. So, not only do you want this to be useful, but also you want to do things and enable your agents to do different things, right? So, one of the things we’re really excited about is doing like agent level identity tracking and delegation chains. So, when you can start saying, “Hey, how come this thing happened?” And you can go back and say, “Oh, that’s because an agent did it and a human actually authorized that agent
[08:03] to do it. It didn’t just happen by magic. We didn’t know. We don’t it’s not like we don’t know how what happened.” Now, we’re going to start tracing that, tell you tell you about it, and let you write policy that actually goes and does degradation of uh what you can do based on Cedar policies based on new new things happening. And you might say to yourself, “Oh my gosh, this is so good. I would like I would like to buy it now. How do I how do I buy this from you guys?” And so I have my marketing slide
[08:34] that my marketing team is really mad at me that I made this, but I think it’s funny and cute for AI governance. So definitely talk about that. Okay. What does AI governance look like? You’re doing this is what this is what it looks like in kind of a mockup. So right now we’ve do we do network, you can set allow, deny, you can do file system uh points, and you can also decide what your MCP catalog looks like. Also, if you’re running our MCP server, our MCP servers themselves run on a
[09:06] sandbox. So, they are also governed by all of these different controls. In the future, we’re going to be adding more stuff. One of the things we’ve heard from a lot of people at this conference is that they want to do uh L7 networking controls. They want to do uh like per GitHub repo file system level controls, right? like you want your agent to be able to read and write to some repos and some areas of some repos but not others, right? So, all of this is going to be coming down the line, but
[09:37] everything that I’ve showed you today is working. Um, and you should come by our booth and see that it’s easy to install. We run on Mac, Windows, and Linux uh based on your uh package manager of choice. And you can see at the end it’s just sbx run. It’s not just cloud by the way. The the sandboxes are a full VM. So you can run a shell, you can run codeex, you can run whatever, you can run a python job,
[10:08] you can run a web server, anything you want to do, but we want to make it easy for you to get in and up and running. So this is kind of our default. So you can just get in, you can get that cloud code or codeex instance going. It feels native. It works just the same way as your one did today, but you’ve got all these protections in store. Uh, additionally, you can mount other file systems. So, what I do is when I’m working on a, you know, a piece of code with related repositories, I’ll mount those uh, read only. That way, my agent
[10:40] can see what I’m doing, it can see my other codebase, but I know it’s not going to make random commits to other repos just to make my thing work, right? I want the guarantee that it’s actually doing what it says it’s doing with the API that I’ve specified. So that’s it. Pretty short. We have a booth. We have a few sunglasses left and some power banks to give away. You should come by our booth and I’ll walk over there afterwards and give you the demo and then you can look as good as uh
[11:11] Macho Man Randy Savage with those glasses. So there you go. Thank you.