Back to Projects

BrowserMania — Navigation web sandboxée à distance

Système de navigation web distant sécurisé via WebRTC, Kubernetes et Rust. Plateforme cloud-native d'isolation pour navigation sécurisée dans des conteneurs éphémères.

Kubernetes Rust WebRTC Docker Sécurité
BrowserMania — Navigation web sandboxée à distance
Table des matières

Why

La navigation web traditionnelle expose les systèmes aux malwares, phishing et vulnérabilités zero-day. Les environnements de test et équipes de sécurité ont besoin d'un accès web véritablement isolé où le contenu malveillant ne touche jamais la machine hôte. Les solutions existantes manquent d'orchestration appropriée et d'isolation par session.

What

BrowserMania est une plateforme cloud-native qui exécute chaque session de navigation dans un conteneur Kubernetes isolé et éphémère. Le navigateur tourne à distance, diffusant vidéo/audio via WebRTC pendant que les interactions utilisateur sont renvoyées au conteneur. Un proxy réseau basé sur Rust applique des politiques de sécurité par session. Après la terminaison de la session, les conteneurs sont détruits sans laisser de traces.

How

Construit avec une architecture microservices : Kubernetes orchestre des pods navigateurs éphémères (Chromium/Firefox dans des conteneurs Docker), WebRTC gère le streaming bidirectionnel en temps réel avec latence minimale, le proxy Rust gère le filtrage réseau et les règles de sécurité par session, mise à l'échelle automatique basée sur la demande. Chaque session est complètement isolée avec des ressources et frontières de sécurité dédiées.

Aperçu

Un système de navigation web distant sécurisé qui fournit des sessions isolées via des conteneurs Kubernetes. Chaque utilisateur obtient un pod éphémère dédié avec un navigateur headless, streamé en temps réel via WebRTC.

Fonctionnalités clés

  • Isolation par session — Chaque session tourne dans son propre pod Kubernetes
  • Streaming WebRTC — Flux vidéo en temps réel du navigateur distant
  • Proxy Rust — Couche de filtrage réseau haute performance
  • Auto-scaling — Kubernetes gère le cycle de vie des pods et les ressources
  • Réseau zero-trust — Chaque session est totalement isolée des autres

Démarrage rapide avec Docker

Vous souhaitez tester un navigateur Chromium sandboxé ? Vous pouvez rapidement l’essayer en utilisant notre image Docker disponible sur Docker Hub.

Lancement du conteneur

Utilisez la commande suivante pour démarrer un conteneur Chromium avec les configurations appropriées :

docker run -d \
  --name=chromium_test \
  --security-opt seccomp=unconfined \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e CHROME_CLI=https://level-sony.fr/en/ \
  -p 3000:3000 \
  -p 3001:3001 \
  -v /path/to/config:/config \
  --shm-size="1gb" \
  --restart unless-stopped \
  dilanek/docker_chromiun:test

Options de configuration

  • --name=chromium_test — Nom du conteneur
  • --security-opt seccomp=unconfined — (Optionnel) Désactive les restrictions de sécurité seccomp
  • -e PUID=1000 et -e PGID=1000 — Définit l’utilisateur et le groupe pour éviter les problèmes de permissions sur les fichiers
  • -e TZ=Etc/UTC — Définit le fuseau horaire du conteneur
  • -e CHROME_CLI=https://level-sony.fr/en/ — (Optionnel) URL à ouvrir automatiquement au démarrage
  • -p 3000:3000 -p 3001:3001 — Expose les ports 3000 et 3001
  • -v /path/to/config:/config — Monte un volume pour stocker les configurations de manière persistante (remplacez /path/to/config par le chemin souhaité)
  • --shm-size="1gb" — Alloue 1 Go de mémoire partagée pour Chromium
  • --restart unless-stopped — Redémarre automatiquement le conteneur sauf si arrêté manuellement

Remarque importante : Évolution du conteneur

Ce conteneur est actuellement en cours de développement actif. L’objectif principal est d’atteindre une compatibilité WebRTC à 100%, en particulier pour la gestion de l’audio.

Le but est d’assurer une compatibilité complète avec WebRTC, en garantissant une gestion fluide et optimisée des flux audio et vidéo. Cette fonctionnalité est encore en développement et pourrait subir des ajustements dans les futures versions.

Cette évolution vise à offrir une solution WebRTC performante et complète, adaptée à des cas d’utilisation avancés, notamment pour les applications de vidéoconférence et de streaming en direct.

Pour aller plus loin

Lisez l’article technique complet Repenser la navigation web avec un vrai bac à sable pour découvrir les décisions d’architecture détaillées, les défis d’implémentation et l’analyse de sécurité.

Technologies & Tools

Commentaires