4 points par GN⁺ 2026-02-04 | 1 commentaires | Partager sur WhatsApp
  • Fournit un environnement microVM Linux sécurisé pour exécuter du code non fiable en toute sécurité
  • Pendant l’exécution du code, la protection des clés secrètes et le contrôle de l’accès réseau permettent de bloquer les risques d’exfiltration de données liés au code généré par des LLM ou au code utilisateur
  • La commande sandbox.deploy() permet un déploiement direct vers Deno Deploy depuis l’environnement de développement, sans build ni processus d’authentification séparés
  • Les volumes et snapshots permettent de recréer rapidement des caches, bases de données et environnements de développement
  • Adapté aux environnements d’exécution de code nécessitant de la sécurité comme les agents IA, systèmes de plugins ou runners CI

Présentation de Deno Sandbox

  • Deno Sandbox permet d’exécuter du code non fiable dans des microVM Linux légères sur le cloud Deno Deploy
    • Création possible via les SDK JavaScript ou Python, avec un temps de démarrage inférieur à 1 seconde
    • Interaction directe possible via SSH, HTTP ou VS Code
  • L’objectif est de résoudre les problèmes de sécurité liés aux appels externes incluant des clés API effectués par du code généré par un LLM ou fourni par l’utilisateur
  • Le code exécuté dans le sandbox est protégé par une architecture de l’isolation système et défense en profondeur (Defense-in-depth)

Des secrets impossibles à voler

  • Dans l’environnement sandbox, les clés secrètes ne sont pas exposées comme de vraies variables d’environnement
    • À l’intérieur du code, seules des chaînes de caractères de substitution sont accessibles
    • La vraie clé n’est injectée que pour les requêtes sortantes vers des hôtes approuvés
  • Par exemple, OPENAI_API_KEY n’est activée que pour les requêtes vers api.openai.com, et devient inutilisable si elle est exfiltrée vers un autre domaine
  • Cela permet de bloquer les tentatives de vol de clés via prompt injection ou code malveillant
Publicité

Contrôle du trafic réseau sortant

  • Le sandbox bloque les requêtes réseau en dehors de la liste des hôtes autorisés (allowNet)
    • Exemple : ["api.openai.com", "*.anthropic.com"]
  • Tout le trafic réseau est bloqué à la frontière de la VM, avec application des politiques via un proxy sortant similaire à coder/httpjail
  • Sont prévus à l’avenir : analyse des connexions sortantes et hooks programmables pour inspecter ou modifier les requêtes
  • Combiné avec le flag --allow-net de Deno, il est possible de mettre en place une double couche de sécurité réseau

Du sandbox à la production

  • La commande sandbox.deploy() permet un déploiement direct de Deno Deploy depuis le sandbox
    • Sans build CI séparé ni processus d’authentification, l’environnement de développement peut être transformé immédiatement en production serverless
    • Dans l’exemple de code, my-app est déployé avec l’option production: true, puis l’URL est affichée
  • Cela permet d’effectuer un déploiement serverless auto-scalable en un seul appel

Persistance

  • Par défaut, le sandbox est éphémère (ephemeral), mais les fonctions suivantes sont proposées lorsqu’un stockage d’état est nécessaire
    • Volumes : stockage en lecture/écriture pour les caches, bases de données et données utilisateur
    • Snapshots : images en lecture seule incluant une toolchain ou des volumes de base
  • Si un snapshot est créé après apt-get install, tous les sandboxes suivants peuvent démarrer immédiatement avec un environnement préinstallé
  • Des volumes basés sur des snapshots permettent de créer un nouvel environnement de développement en quelques secondes
Publicité

Détails techniques

  • Régions : Amsterdam, Chicago
  • vCPU : 2
  • Mémoire : 768MB à 4GB
  • Durée de vie : éphémère (ephemeral) ou basée sur un timeout, prolongeable si nécessaire
  • Durée de vie maximale : 30 minutes
  • Temps de démarrage : moins d’1 seconde
  • Cas d’usage adaptés : exécution de code d’agents IA, systèmes de plugins sécurisés, runners CI temporaires, environnements d’exécution de code fourni par l’utilisateur

Tarification

  • Inclus dans la grille tarifaire Deno Deploy avec facturation à l’usage
    • Temps CPU : $0.05/h (40 heures incluses dans l’offre Pro)
    • Mémoire : $0.016/GB-h (1000 GB-h inclus dans l’offre Pro)
    • Stockage des volumes : $0.20/GiB-month (5 GiB inclus dans l’offre Pro)
  • L’offre Enterprise est disponible sur demande

Pour commencer

1 commentaires

 
GN⁺ 2026-02-04
Réactions sur Hacker News
  • Il est intéressant de constater qu’il n’est pas du tout nécessaire d’utiliser Deno ni même JavaScript
    Via le SDK Python deno-sandbox, on peut créer un sandbox, exécuter des commandes, faire des entrées/sorties de fichiers, etc.
    J’ai vérifié que le protocole API fonctionne sur WebSocket

    • Au début, il n’était pas clair que le sandbox s’exécutait dans le cloud et non en local
  • La manière dont Deno Sandbox gère les secrets est impressionnante
    Dans le code, on ne voit que des placeholders au lieu des vraies clés, et la véritable clé n’est injectée qu’au moment des requêtes vers des hôtes autorisés
    Même si un code malveillant tente d’exfiltrer ce placeholder, il ne sert à rien

    • Mais si le proxy ne fait qu’une simple substitution de chaînes, on peut se demander si un attaquant ne pourrait pas pousser l’un des hôtes autorisés à renvoyer la clé telle quelle
      Si le proxy remplace de nouveau la clé dans le sens de la réponse, ce serait plus difficile, mais cela ne semblerait toujours pas être une défense parfaite
      Une injection de secrets via proxy consciente du contexte serait peut-être plus sûre
    • Cela rappelle Tokenizer de Fly
      L’application ne manipule pas directement la clé, et le proxy ajoute lui-même la clé API, ce qui réduit le risque d’exposition côté sécurité
    • Le blog officiel de Deno présente aussi cette idée
      Secrets that can’t be stolen
      Un code malveillant ne peut pas voler durablement les secrets, mais peut toujours envoyer des requêtes malveillantes en utilisant cette clé
      C’est un concept comparable à une XSS qui ne peut pas lire un cookie httpOnly, mais peut quand même envoyer des requêtes avec ce cookie
    • Il s’agit probablement d’un proxy MITM interceptant les requêtes HTTPS
      Dans ce cas, des fonctionnalités comme le certificate pinning pourraient être difficiles à mettre en œuvre
    • Je me demande aussi comment cela est géré pour des connexions DB basées sur TCP, où la substitution dans les en-têtes n’est pas possible
      J’aimerais aussi savoir s’ils prévoient d’ajouter quelque chose de type Vault
  • L’équipe Deno explique que les services de type plateforme qui exécutent directement du code généré par des LLM se multiplient récemment
    Pour que ce code appelle des API externes, il lui faut de vraies informations d’authentification et un accès réseau
    Un simple sandboxing ne suffit pas ; il faut aussi contrôler le réseau et protéger les secrets
    Deno Sandbox fournit les deux, et une fois le code prêt, il peut être déployé directement sur Deno Deploy

    • Chaque fois que je lis la formule « ce n’est pas un simple sandbox de plugin, mais une plateforme d’exécution de code pour l’IA », mon premier réflexe est de penser : « c’est de l’IA »
  • Notre équipe a aussi construit elle-même un environnement sandbox similaire avec Firecracker + Go
    À cause des exigences de souveraineté des données, nous devons opérer uniquement dans l’UE, donc cela peut être déployé partout où la virtualisation matérielle est disponible
    Pour éviter que le LLM ne manipule directement les identifiants, nous générons à la volée un CLI à périmètre restreint que nous lui fournissons
    Le LLM se contente alors de l’appeler comme une commande bash
    Les modèles récents étant entraînés comme assistants de codage, cette approche est bien plus naturelle et efficace

  • La méthode de substitution des secrets est intéressante, mais j’ai l’impression qu’elle risque de casser dans des cas où une transformation de clé est nécessaire, comme avec OAuth 1, JWT ou HMAC
    De plus, si la clé fait partie du payload, la substitution peut provoquer des problèmes HTTP comme un désalignement de Content-Length
    Et ce genre d’approche est de toute façon impuissant face à d’autres attaques comme l’injection SQL
    Au final, cela ressemble davantage à une mesure d’atténuation partielle qu’à une défense complète

  • Il existe une offre gratuite, ce qui donne envie de l’essayer comme Glitch pour faire des expérimentations, mais j’ai souvent vu ce genre de services gratuits être arrêtés en cours de route, donc je reste prudent

  • Le design avec des placeholders pour les secrets semble être un bon choix
    Mais en ce moment, il y a vraiment trop de produits sandbox — Modal, Daytona, Fly, Cloudflare, Deno, etc.
    Je me demande ce qui est réellement utilisé en production

    • En réalité, la plupart de ces services ne sont guère plus que des wrappers autour de VM, donc on pourrait aussi l’implémenter soi-même via EC2 ou les SDK GCP
    • Factory, Nvidia, Perplexity, Manus et d’autres utilisent E2B en production, et celui-ci aurait déjà exécuté plus de 200 millions de sandboxes à ce jour
  • Deno Sandbox indique fournir une microVM Linux légère qui tourne dans le cloud Deno Deploy,
    mais la vraie question est de savoir si cela peut aussi tourner dans un environnement Linux auto-hébergé

    • Mais la plupart des acteurs choisissent une stratégie de verrouillage
      S’ils publiaient tout en open source, AWS ou GCP le recopieraient
      Au fond, on a l’impression de bâtir un château dans le sandbox de quelqu’un d’autre, mais en pratique c’est souvent le seul modèle économique viable
  • Si on utilise Claude Pro ou le plan Max dans un tel environnement, je crains qu’Anthropic ne bloque l’accès en croyant à tort à un usage par plusieurs utilisateurs, puisque la connexion se ferait chaque fois depuis une IP différente
    Je me demande aussi pourquoi la session est limitée à 30 minutes

    • Ils prévoient bientôt d’allonger la durée de vie des sessions. Cela prend du temps car des ajustements techniques internes sont nécessaires
    • Pour référence, j’utilise ce genre de configuration depuis environ 50 IP et je n’ai eu aucun problème
      Anthropic semble simplement utiliser des heuristiques pour déterminer si « c’est bien un humain qui l’utilise directement »
    • Je me demande si l’objectif de ce type d’usage est d’essayer d’obtenir un accès direct à l’API via un abonnement mensuel, ou s’il s’agit d’un autre cas d’usage